C++ vs. Java
#1
Posted 01 June 2010 - 20:30
În curând se termină sesiunea, se termină primul an și ar cam trebui să mă pun și eu să învăț ceva POO pe la vară. N-am eu de gând să încep decât peste vreo lună, o lună jumate, dar ar trebui să știu de ce să mă apuc până atunci.
1.Java Avantaje: - îl voi studia destul de mult la facultate; - sunt mai multe locuri de muncă în domeniu; - aplicațiile realizate au o securitate mai mare; Dezavantaje: - n-are pointeri. 2.C++ Avantaje: - tinde să îmi placă mai mult la o primă vedere; - știu C; - are pointeri, deci pot lucra cum vreau cu memoria. - este mai rapid; Dezavantaje: - nu cred că-l voi studia deloc la facultate. Desigur există mai multe avantaje/dezavantaje. Ideea ar fi să aleg în ce voi lucra în viitori 5 ani, să zicem. Ar fi destul de important C# astfel încât să-l iau în considerare? Voi ce ați alege, și cel mai important de ce? În care se învață mai ușor POO? L.E.: Sper să nu mai fie topicuri de genu' că, n-am căutat. Edited by m3th0dman, 01 June 2010 - 20:40. |
#3
Posted 01 June 2010 - 20:39
eu o sa le invat pe amandoua, nu strica, oricum mai am pana ajung la facultate
|
#4
Posted 01 June 2010 - 20:40
Okay; Care să-l învăț primul?
În care se învață mai ușor POO? |
#5
Posted 01 June 2010 - 20:41
Eu zic sa incepi cu C++, dupa ce vei stapani bine oop din c++, java va parea foarte usor.
In timp ce inveti OOP in C++ te-as sfatui sa inveti si un framework gen Qt sa vezi cum au gandit ei clasele. Edited by dani.user, 01 June 2010 - 20:42. |
#6
Posted 01 June 2010 - 20:48
m3th0dman, on 1st June 2010, 21:30, said: Desigur există mai multe avantaje/dezavantaje. Ideea ar fi să aleg în ce voi lucra în viitori 5 ani, să zicem. Oricum, un limbaj nu e un scop in sine - mai mult dureaza sa devii productiv cand e vorba de un framework/API/SDK, nu limbajul in sine e problema. |
#7
Posted 01 June 2010 - 21:05
Ce numesti "sa invat java" ? Crezi ca daca ai trecut peste cursurile profului de la facultate ai invatat limbajul? La nivel foarte basic, ambele sunt la fel. Un for va merge in ambele limbaje, ce conteaza mai mult e sa stii particularitatile limbajului. Cat de 'adanc' ai intrat in C daca spui ca il stii? Cat de adanc esti dispus sa mergi in C++? Destul cat sa nu ti se mai para atat de usor lucrul cu pointeri si alocari/dealocari de memorie? :D
Daca nu ma insel, esti la FII? Daca da, invata intai cartea lui Frasinaru si apoi daca o stii pe toata aia foarte bine, abia apoi invata alte chestii pe care le poti face cu Java. |
#8
Posted 01 June 2010 - 21:40
Mie mi se pare că într-un fel deja ești înclinat spre C++. Poate ar trebui să mergi unde te trage inima, altfel lucrezi cînd îți face plăcere ceea ce faci.
Sînt cam echivalente dpdv "valoric", n-o să pierzi nimic mergînd spre unul sau spre celălalt. Ca viabilitate, lui Java i se mai pune la îndoială viitorul ocazional însă lui C/C++ foarte rar. Deține cea mai mare masă de cod de pe planetă și este un limbaj foarte flexibil. Material de lectură: C++ criticism, Java vs C++ (wikipedia), Java vs C++ (c2). |
#9
Posted 01 June 2010 - 23:09
Chiar nu mă așteptam ca majoritatea să recomande C++.
Este ceva carte de referință a limbajului Java, ca și The C++ Programming Language de Stroustrup sau bine-cunoscuta The C Programming Language de K&R? Nu că m-aș apuca să învăț Java de-acolo, dar ar fi utilă. dani.user, on 1st June 2010, 21:41, said: Eu zic sa incepi cu C++, dupa ce vei stapani bine oop din c++, java va parea foarte usor. In timp ce inveti OOP in C++ te-as sfatui sa inveti si un framework gen Qt sa vezi cum au gandit ei clasele. errai, on 1st June 2010, 21:39, said: eu o sa le invat pe amandoua, nu strica, oricum mai am pana ajung la facultate Acum desigur trebuie să învăț și Java, să-mi iau examenle (ceea ce înseamnă că voi ști și ceva Java). Nenea Zap, on 1st June 2010, 22:05, said: Ce numesti "sa invat java" ? Crezi ca daca ai trecut peste cursurile profului de la facultate ai invatat limbajul? La nivel foarte basic, ambele sunt la fel. Un for va merge in ambele limbaje, ce conteaza mai mult e sa stii particularitatile limbajului. Cat de 'adanc' ai intrat in C daca spui ca il stii? Cat de adanc esti dispus sa mergi in C++? Destul cat sa nu ti se mai para atat de usor lucrul cu pointeri si alocari/dealocari de memorie? :D Daca nu ma insel, esti la FII? Daca da, invata intai cartea lui Frasinaru si apoi daca o stii pe toata aia foarte bine, abia apoi invata alte chestii pe care le poti face cu Java. Dacă iei examenul și-ți livrezi proiectele, cred că știi cât de cât limbajul. Eu nu vreau să rămân la nivel foarte de bază astfel încât să nu conteze diferențele. N-am scris cod low-level în C. Mare lucru nu știu despre compilatorul C. Deci per-total nu-l prea știu. Cât de adânc se poate. (presupun că până în a te "juca" cu codul din compilator) Nu sunt la FII presupun (presupun că Facultatea de Informatica Iași (nu știam ce-i cu doi de i inițial)). Sunt la calculatoare. Să fim serioși; sunt cărți mult mai bune în limba engleză ale unor autori consacrați; la o căutare pe google autorul respectiv nici n-are doctorat. wirespot, on 1st June 2010, 22:40, said: Mie mi se pare că într-un fel deja ești înclinat spre C++. Poate ar trebui să mergi unde te trage inima, altfel lucrezi cînd îți face plăcere ceea ce faci. Sînt cam echivalente dpdv "valoric", n-o să pierzi nimic mergînd spre unul sau spre celălalt. Ca viabilitate, lui Java i se mai pune la îndoială viitorul ocazional însă lui C/C++ foarte rar. Deține cea mai mare masă de cod de pe planetă și este un limbaj foarte flexibil. Material de lectură: C++ criticism, Java vs C++ (wikipedia), Java vs C++ (c2). Standardul C++0x trebuie să apară în curând, și-i va mai rezolva din probleme; și partea bună e că va fi aproape 100% compatibil cu actualele standarde. Pe wiki m-am uitat și înainte. Trebuie să învăț conceptele POO să pot să-mi dau seama de multe din diferențe. tudor_turcu, on 1st June 2010, 21:48, said: Cum au zis si altii - daca esti inca in facultate, ai timp si merita sa inveti ambele limbaje (si nu numai - poti sa arunci o privire si peste C# si Delphi, cel putin). Oricum, un limbaj nu e un scop in sine - mai mult dureaza sa devii productiv cand e vorba de un framework/API/SDK, nu limbajul in sine e problema. |
#10
Posted 01 June 2010 - 23:29
m3th0dman, on 2nd June 2010, 00:09, said: aveam dubii că C++ este dead technology, sau va fi în curând (cel puțin pe piața din Ro) Eu as merge numai pe cross-platform. Asa ca ambele intra. Edited by neagu_laurentiu, 01 June 2010 - 23:31. |
|
#11
Posted 01 June 2010 - 23:43
WinAPI e procedural, rar te ajuta cu ceva in ziua de azi. Utilizarea Qt e mult mai rapida, frumoasa si e un framework cross-platform (si ai si RAD pentru GUI sa-l faci cu drag&drop)
|
#12
Posted 02 June 2010 - 01:07
neagu_laurentiu, on 2nd June 2010, 00:29, said: Si cu cine-l inlocuiesti ? Nu ai astazi cu ce si nici in viitorul previzibil (adica sa fie si imbratisat de lumea larga). wirespot, on 1st June 2010, 22:40, said: Sînt cam echivalente dpdv "valoric", n-o să pierzi nimic mergînd spre unul sau spre celălalt. Oricum, aveam dubii. dani.user, on 2nd June 2010, 00:43, said: WinAPI e procedural, rar te ajuta cu ceva in ziua de azi. Utilizarea Qt e mult mai rapida, frumoasa si e un framework cross-platform (si ai si RAD pentru GUI sa-l faci cu drag&drop) |
#13
Posted 02 June 2010 - 01:17
Exemplu care trateaza si partea de cross-platform: [ https://www.youtube-nocookie.com/embed/Rb43gnZI1A0?feature=oembed - Pentru incarcare in pagina (embed) Click aici ] Vezi partea de inceput deocamdata.
|
#14
Posted 02 June 2010 - 06:16
m3th0dman, on 2nd June 2010, 02:07, said: ... Legat de OOP, in C++ o sa gasesti notiuni ceva mai flexibile decat in Java. |
#15
Posted 02 June 2010 - 11:45
Presupun ca vrei sa inveti un limbaj de programare pentru a urma o cariera in domeniu. Alegerea limbajului pe care sa il inveti trebuie sa o faci in functie de domeniul programarii spre care vrei sa te indrepti. Daca vrei sa faci aplicatii web, C++ cam iese din discutie. Daca vrei sa lucrezi pe partea de antivirusi/securitate/sisteme de operare/drivere, Java si C# se vor dovedi inutile. In domeniul enterprise Java e pe cai mari. Acuma probabil ca o sa vina unii care or sa imi dea contraexemple (da, se pot face si site-uri web si in C++), dar presupun ca o sa vrei sa te angajezi si sa faci si ceva bani din asta, nu sa fii tu calaretul singuratic care face site-uri web in C++ si pe care nu-l angajeaza practic nimeni. Asa ca dilemele de genul "are pointeri", "e mai rapid", "e cross platform", "e mai cu mot in frunte" sunt defapt false probleme, pentru ca in firma in care lucrezi nu tu o sa stabilesti limbajul in care se implementeaza un proiect sau altul, ci seful de proiect, arhitectul sau chiar clientul. Si chiar daca ajungi sa fii tu sef de proiect, tot ai mainile legate, fiindca daca tu in firma ai disponibili oameni care stiu doar limbajul X, ghici in ce o sa implementezi? Toate anunturile de angajare sunt de forma "Angajam programatori in limbajul X". Sa-l vad eu pe ala care merge la interviu cu un text de genul "da, dar eu stiu limbajul Y, care e mai tare fiindca e mai rapid, e cross platform, permite mostenire multipla are closures si permite si AOP!!!" si e angajat :D
In ceea ce priveste intrebarea ta "in ce se invata cel mai usor OOP", eu zic ca in Java. Sunt ok si celelalte, dar C++ te lasa sa trisezi si s-o iei pe aratura procedurala. C# ca si limbaj e extrem de asemanator cu Java, dar parca Visual Studio te ajuta prea mult si nu ajungi sa experimentezi suficient. In Java totul trebuie sa fie in clase, sintaxa e foarte stricta, si trebuie sa scrii o tona de cod cu mana, iar experienta din asa ceva se acumuleaza. Pe de alta parte, dpdv. didactic eu zic ca e foarte bine sa abordezi la un moment dat limbajele unmanaged (C/C++). Nu sa fii expert in ele (adica sa stii nustiuce API-uri sau framework-uri), ci daca ai avut de a face cu managementul memoriei eu zic ca e suficient. Daca te-ai jucat cu asa ceva in C, cred ca e ok si ca poti trece la limbaje managed :) m3th0dman, on 2nd June 2010, 00:09, said: Este ceva carte de referință a limbajului Java, ca și The C++ Programming Language de Stroustrup sau bine-cunoscuta The C Programming Language de K&R? Edited by andrei_0, 02 June 2010 - 11:33. |
|
#16
Posted 03 June 2010 - 11:47
Interesant topic. Si eu sunt oarecum in aceasi situatie. Insa intrebarea mea ar fi: cum stiu cand trebuie sa trec la POO. Altfel spus cum imi dau seama ca m-am jucat destul cu pointerii si memoria ? Unde gasesc si eu niste exercitii dupa care sa spun : gata cu pointerii, hai sa incep POO.
Multumesc. |
#17
Posted 03 June 2010 - 11:48
Daca treci la OOP nu inseamna ca nu te mai joci cu pointerii si memoria (in C++).
Edited by dani.user, 03 June 2010 - 11:49. |
#18
Posted 04 June 2010 - 18:22
Aham..deci ma apuc de POO si daca imi prind urechile in pointeri ma intorc la ei si ii studiez mai bine. Gresesc sau e bine?
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users