Sunt clasa a 11-a mate info iar la scoala invat c++ dar merge cam incet(momentan facem doar tablouri dimensionale cu numere si text).Vreau sa avansez si sa invat cum sa creez aplicatii (cu grafica),nu doar chestii in consola.Ce librarii de C++ ar trebui sa invat/ce altceva ar trebui sa invat(OpenGl etc)?Pentru a crea diverse aplicatii(ex:calculatorul de pe windows 7 sau o chestie din asta).De unde sa incep?
Am invatat si am facut niste practica cu javascript respectiv jquery cateva luni dar m-am plictisit(nu prea ma atrage designul,vreau ceva cu mai multa matematica),vreau sa ma orientez pe partea astea de software.Una dintre aplicatiile(daca o pot numi asa) facute cu jquery este asta.Nustiu cat de utila ar putea fi cuiva dar am facuto doar pentru practica.
Din javascript am invatat cum sta treaba cu tipurile de date,array-urile,functiile etc.
Prin grafica banuiesc ca intelegi GUI, nu 3D. Îţi sugerez să începi cu QT, este un framework crossplatform (Windows, Linux, MacOSX, alte *nix-uri, chiar si Android) extrem de capabil. Eu in tinereţile mele am realizat cu el QFaxReader (cand fax-ul mai era la moda ).
Majoritatea aplicatiilor C++ folosesc Chromium Embedded Framework sau CEF pentru interfete (chiar si Qt trece usor pe el). Iar pentru jocuri se foloseste in general Unreal Engine 4 sau Cocos2d-x.
Eu personal nu folosesc C++ dar acum lucrez la ceva scris in C++ care integreaza CEF si node.js ca limbaj de scripting,
Ce inveti la scoala e C cu cout si cin. C++ -ul standard de azi e C++ 11 si C++14 (C++17).
De exemplu nu cred ca initializati variabilele cu { } in loc de = ca sa fie respectate tipurile la compilare, nu folositi auto in loc de tipuri ca sa nu aveti probleme cu alocarea memoriei. Sa nu mai zic nimic de int i = (int) x; in loc de int i = static_cast<int>(x);…
Deci prima data invata C++, treci peste asta rapid : (daca nu intelegi ceva -> Google)
Xamarin e imens, .NET Core e din ce in ce mai bun, nu as zice ca esti captiv pe o singura platforma.
Chiar o sa zic ca Microsoft ofera suport pentru linux cu .NET Core cel putin la fel de bun ca Qt. Poti dezvolta pe linux de pe windows. (invers e mai greu)
Poate sunt eu de modă veche, dar prefer ca aplicatiile mele sa fie lightweight Cu toate ca masinile actuale au RAM si putere de procesare din belşug, sunt sigur ca utilizatorii prefera aplicatiile foarte sprintene. Mi se pare total exagerat ca o aplicatie sa vina cu zeci sau sute de megabytes de biblioteci…
+1 pentru C++/Qt. E mai mult decat GUI, o sa te ajute enorm sa intelegi si sa aprofundezi mai mult concepte legate de OOP, arhitectura MVC. Tot in liceu am inceput si eu cu el si sansele sunt sa ti se potriveasca ca o manusa.
Daca tot a deviat @isti37 discutia … Intr-adevar C# cu .NET este inca destul de limitat in ceea ce priveste platformele pe care pot rula, asta pentru ca nu a fost gandit de la inceput sa ruleze in mai multe ecosisteme, dar este mai cautat la noi in tara pentru ca e putin mai accesibil deja ai Microsoft peste tot, so why bother? am I right? ).
Totusi, pentru chestiile serioase, o sa se foloseasca C++/Qt in continuare … Automotive, Embedded, IoT. Interfetele in Qt merg bine peste tot, iar sansele sunt ca tu sa ai Qt/Qml in bordul masinii.
Dar cam tot ce tine de windows desktop development e pe duca. Aplicatii de business s-au mutat toate pe web. Iar multe dintre cele care inca mai sunt native pentru o platforma sau alta sunt construite pe Electron sau pe vre-un framework urias gen Qt. “Aplicatii” in sensul non-web se fac pentru Android si iOS daca chiar ai nevoie de 100%-ul platformei. Iar daca nu, sunt de multe ori aplicatii web impachetate ca o aplicatie normala.
Știu că a trecut o grămadă de vreme, dar am dat din întâmplare peste thread și aș avea de adăugat (sper că ceva util).
Cred că e bine să te gândești și la ce vrei mai exact. Dacă vrei să dezvolți un GUI atunci da, clar Qt e cea mai bună alegere pentru C++. Dar poate vrei să experimentezi cu concepte de grafică la nivel mai fundamental. Atunci poți, de exemplu, să înveți OpenGL modern: https://learnopengl.com/. Chiar dacă e un API vechi și urât te introduce în conceptele API-urilor moderne.
L-am folosit, SFML e foarte, foarte bun. E perfect pentru quick prototyping.
Qt cu siguranță nu va „trece” pe CEF, Qt se folosește de CEF pentru QtWebEngine. Dar e doar un feature, implementările pentru QtWidgets și QML nu au treabă cu chromium și nici nu vor avea. De fapt cam asta e special la Qt, are implementare custom și o optimizează pentru ce e nevoie, cam de asta e și posibil să ai Qt pe embedded.