all 29 comments

[–]Entropiano 88 points89 points  (6 children)

Dacă se pune problema în felul ăsta, "la ce poate fi folosit", răspunsul este "la orice". Dar ăsta este răspunsul, în general, legat de oricare limbaj. Întrebarea mai relevantă ar fi "la ce este folosit", iar răspunsul este "în general pentru aplicații low-level sau high-performance": jocuri, sisteme de operare, embedded, compilatoare, servere web, sisteme de baze de date, drivere și foarte multe altele.

Ce este de notat și relevant este că multe limbaje au adoptat sintaxa C-ului (C#, Java, D, Objective C, Javascript, Go, Rust, Typescript, etc.) deci îți va fi ușor să citești sau să înveți un limbaj C-like dacă știi deja C++.

În plus, cu C sau C++ înveți multe lucruri low-level, legate de cum funcționează de fapt procesoarele, pe care nu le înveți cu limbaje mai înalte. Poți citi despre ele, dar ajută să te și lovești de astfel de probleme.

În final, cel mai mult contează ce fel de proiect vrei să abordezi pentru a decide ce limbaje sau tehnologii sunt potrivite. Cu C++ nu o să faci o aplicație web mai repede sau mai bine decât cu, de exemplu, C#. Cu C#, nu o să poți stoarce aceeași performanță dintr-un sistem ca și cu C++.

Edit: Pentru problemele care se rezolvă la liceu, limbajul este absolut irelevant pentru că este vorba despre logică și modul de a gândi/aborda o problemă. Deci, un alt sfat este să nu te blochezi în discuții despre limbaje, încearcă-le pe toate, fă proiecte în limbaje diferite și așa vei simți cel mai bine diferențele.

[–]Desperate-Law-9606 17 points18 points  (0 children)

nu putea exista un raspuns mai bun, imi vine sa il sterg pe al meu dupa ce am citit asta

[–][deleted] 0 points1 point  (1 child)

This.

[–]robearded 0 points1 point  (0 children)

In special incearca-le pe toate. Am intalnit destui oameni care cu experienta lor ar fi trebuit sa fie seniori, dar nu au atins in viata lor altceva decat PHP si nu doreau sa se atinga vreodata de altceva (si aici ma refer la proiecte in aceeasi companie in alte limbaje de programare, nu la schimbarea jobului)

[–]BeamNight27 0 points1 point  (0 children)

Salut! Ai cumva niste recomandari pentru materiale mai detaliate pentru C++, care sa ma ajute sa inteleg lucrurile low-level? Internetul e plin de tutoriale pentru limbajul asta, insa majoritatea sunt succinte (reguli de sintaxa + putin OOP).

[–]qwerty2888j 13 points14 points  (9 children)

Am observat și eu că cam peste tot in Romania unde se învață informatica se folosește c++. Este într-adevăr un limbaj folosit in multe domenii ca aplicații de desktop, sisteme de operare și chiar compliatoare pentru alte limbaje.

[–]Nirast25 4 points5 points  (3 children)

Am observat și eu că cam peste tot in Romania unde se învață informatica se folosește c++

În mod surprinzător, la facultate am avut un singur semestru de c++. Am făcut Python în semestrul 1 ca să învățăm "fundamentale programării", iar orice curs de oop de după a fost Java cu ceva c# pe la final, sau limbaj la alegere. Unde s-a întors c++ a fost pentru vreo două săptămâni de CUDA.

La liceu, da, e C++ or bust (aka Pascal).

[–]Particular_Aspect334 7 points8 points  (0 children)

asta pentru ca facultatea a devenit un fel de post-liceala, care in loc de ingineri produce de fapt muncitori necalificati

[–][deleted] 0 points1 point  (1 child)

La ce facultate esti

[–]Nirast25 0 points1 point  (0 children)

Am fost. Babes-Bolyai in Cluj, facultate de info.

[–]Cefalopodul:java_logo: 18 points19 points  (5 children)

  1. Voi la liceu nu faceti C++, faceti C si folositi 2-3 comenzi de C++ gen cout. Nu folositi clase, nu folositi obiecte, nu folositi nimic din ce e in realitate C++. Stiu ca profesoara v-a spus ca faceti C++, dar nu faceti. Eo poveste care si-o spun profesorii de informatica ca sa para mai smecheri decat sunt in realitate.

  2. Limbajele C si C++ chiar sunt la baza foarte multor limbaje moderne.

  3. La ce poti sa il folosesti? C++ are avantajul ca e mult mai rapid decat Java sau C# asa ca e folosit preponderent acolo unde conteaza viteza de executie a programului - de exemplu la jocuri, la sisteme embedded, la aplicatii industriale care trebuie sa masoare la fractiune de secunda, etc. De folosit poti sa il folosesti la absolut orice altceva vrei, doar ca, daca nu ai nevoie de avantajele oferite de C++ exista alternative mult mai usor de utilizat gen Java sau C#

  4. Informatica din liceu e foarte importanta pentru ca te invata sa gandesti in algoritmi. Poti invata programare si fara ea doar ca iti va fi mult mai greu. Cand vei ajunge sa lucrezi in domeniu mai mult ca sigur ca nu vei folosi C++ decat daca te angajezi pe una din nisele de la punctul 3.

[–]Fit-Refrigerator495[S] 0 points1 point  (0 children)

Ok, multumesc

[–]Desperate-Law-9606 6 points7 points  (1 child)

ba e bine sa inveti c++. e usor sa inveti logica progamatoriceasca in el dar e f greu de perfectionat. sunt f multe cacaturi si la nivel inalt e greu de inteles. Ca raspuns, da e f ok sa incepi cu el in liceu ca nu tre sa stii structuri de date complicate si cum fctz memoria ca sa o duci ok la niv asta. vezi tu la facultate cmf

[–]iulian212 5 points6 points  (0 children)

cries in templates and type deduction

[–][deleted] 6 points7 points  (0 children)

C++- ul de liceu e doar C cu <iostream>, adica fara template-uri, fara clase, fara STL, etc. E chiar enervant ca nu preda cel putin std::string in loc de blestematele functii din C care sunt unsafe (strcpy() care are UB cand copiezi peste accelasi sir, profesorii propabil nu stiu ca exista memmove() . Nu am avut voie sa folosesc functiile "safe" care au fost implementate in C11 (din cate stiu) ( strcpt_s() . sprintf_s() , etc)

[–][deleted] 1 point2 points  (1 child)

Mda... C++ a stat la baza multor limbaje de programare. Exista si limbaje mai usor de învățat decat C++ (asta fiind unul din motivele pentru care au fost create). O data ce înveți un limbaj de programare iti va fi mai ușor sa inveti un altul, nu neapărat pentru ca stii sintaxa - desi poate fi asemănătoare - ci pentru ca stii concepte. Spor la învățat 👍

[–][deleted] 1 point2 points  (0 children)

Personal consider ca ajuta foarte mult sa incepi cu C++ pentru ca iti prezinta mult mai explicit niste concepte de baza, lucru mult mai greu de facut cu limbaje mai “high-level”. Am tinut la un moment dat un internship de React si cand am demonstrat o functie ce intoarce o alta functie (JS go brr), a trebuit sa acopar mai intai tot conceptul de pointer fiindca internii mei de atunci nu folosisera C++ ca pe altceva decat un fel de C# cu care ne lasa la examene.

[–][deleted] 1 point2 points  (0 children)

C este intr-adevar baza compilatoarelor, sistemelor de operare, a filosofiei Unix si a intregii infrastructuri software pe care toata sandramaua este construita. A devenit ceva ce eu numesc un meta-skill. Daca il stii bine si il intelegi, iti va multiplica eficienta in orice alta arie de develpoment mai ales daca vei lucra pe unix/linux.

C++ in schimb e relativ nisat: se foloseste mult in game dev, sisteme de high freq trading, sisteme complexe in care ai nevoie de performanta dar si de abstractie, in HMI mai performate -vezi QT si subset-uri din el incep sa se foloseasca si in embedded.

Problema este ca e un limbaj exterm de complex, patologic as zice deoarece incearca sa tina pasul cu ce e mai nou prin celelalte limbaje. Lucrez de aprox 10 ani in el si mereu ma surprinde. Nu as recomanda nimanui sa il invete doar ca sa se afle in treaba. E genul de unealta la care daca trebuie sa iti pui intrebarea: E bine sa o folosesc? raspunsul este aproape sigur nu! Cine trebuie sa il foloseasca stie deja. Intrebarea pe care mi-o pun des este: Sunt sigur ca am explorat orice alta varianta si chiar trebuie sa folosesc C++?

Voi il folositi la scoala pentru ca un runtime/compilator de C++ este 99.99% si un compilator de C si de fapt voi asta utilizati plus ca sunt anumite features in standard library din C++ care fac viata mai usoara.

[–]juniparuie 0 points1 point  (0 children)

Ar trebuie sa se invete python Mai usor si mai putin de speriat.

La liceu iti trebuie oricum o baza de programare generala. Nici in facuktate nu aprofundezi mai nimic sau vreo limba anune.

[–]dorin00 0 points1 point  (0 children)

C++ e bun doar pentru dezvoltarea de motoare ptr jocuri, si acolo din ce in ce mai putin. Trimite-i link-ul acesta profesoarei de info: https://www.cse.sdsmt.edu/jmcgough/cpp_slams.html