Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cartelul din Carpati - mafia PNL ...

Trecut: Europa versus S.U.A. la c...

Garantie apartament dezvoltator

Aplicație GPS cu zoom automa...
 Ipad Pro & Air 2024

Service si revizii reprezentanta

Ati returnat produse pe aliexpres...

Certificate de nastere digitale
 Fitbit sau huawei band ?

Tatuator handpoke

Plaja de nudisti in Grecia?

Mufa microusb a telefonului mobil...
 "Ciudatenii" control pasa...

Impamantare

Apple maps pe Windows 10

Sfarsitul woke-ismului si al core...
 

C++ vs. Java

- - - - -
  • Please log in to reply
32 replies to this topic

Poll: Ce să aleg? (62 member(s) have cast votes)

Care l-ați alege?

  1. C++ (35 votes [56.45%])

    Percentage of vote: 56.45%

  2. Java (20 votes [32.26%])

    Percentage of vote: 32.26%

  3. Altul (7 votes [11.29%])

    Percentage of vote: 11.29%

Vote Guests cannot vote

#19
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Nu sunt un fanboy Java, dar cu Java am inteles cel mai bine OOP. Probabil nu mi-au picat mie in mana cartile corecte la timpul potrivit :-)

Oricum ideea e ca C++ sau Java, chiar nu conteaza. Pune-ti problema asa: in ce limbaj pot invata principiul X de programare? Dupa ce ai inteles principiile si conceptele, toate limbajele sunt la fel.

Iar in acest punct presupun ca ti-ai dat seama ca una e limbajul, alta sunt librariile (partea deja scrisa care iti pune la dispozitie functionalitati deja existente). Deci nu te fixa prea mult pe toceala de functii, clase, etc. Invata principiile, insusesteti-le si apoi jongleaza cu ele (indiferent de limbaj). A jongla implica ca poti lucra, modifica si adapta ca si cum acele concepte ar fi fost inventate de tine.

Uita-te cum e structura claselor prin unele biblioteci java, vezi ce e prin Qt, fa paralele cu boost. Sintetizeaza cat de mult poti, si obisnuieste-te sa citesti documentatii (abstracte, ale API-urilor framework-urilor / bibliotecilor care-ti apar prin cale).

Asa, la sfarsitul facultatii o sa fii in stare sa te adaptezi la orice noi cerinte, limbaje, biblioteci sau framework-uri. Fa totusi cateva proiecte cu unele biblioteci sau framework-uri, ca sa vezi cum functioneaza.

Deci eu as zice sa incepi cu Java, e frumos, dar sa nu te concentrezi numai pe el. Mai fa un excurs si prin STL-ul din C++ (si templates in general), apoi mai arunca un ochi deci si pe templates, apoi revino si pe la groovy. Uita-te prin jur si vezi ce e posibil.

La un moment dat vei vedea ca toate drumurile se unesc, vei putea folosi Qt in Java, sau vei putea folosi JNI. Granitele dintre ce inveti sunt chiar fuzzy. Bottom line, din nou: alege ceva (limbaj/framework) ca sa inveti concepte cu el, nu ca sa inveti limbajul efectiv.

Ah, si arunca un ochi si pe un limbaj functional precum erlang. Din nou, de dragul de a face cunostinta cu concepte noi.

Addendum

Si inca ceva: la marile X. vs. Y. raspunsul e mereu: depinde. Fiecare are puterile si slabiciunile sale, si depinde mereu de prioritatile proiectului.

Nu stiu ce inseamna pentru tine "a alege", dar daca inveti sa zicem ce e o clasa si un obiect in Java, cat crezi iti va lua sa inveti sintaxa si-n C++? Eu zic ca cateva ore. Deci nu stiu in ce masura putem vorbi despre o alegere.

#20
Tom_Cat

Tom_Cat

    Aproape acolo

  • Grup: Senior Members
  • Posts: 4,159
  • Înscris: 01.01.2007
Eu recomand orice limbaj de programare ca sa inveti cum se gandeste in acest mediu. Este bine sa incepi cu proceduralele pentru ca la un moment dat, metodele obiectelor instantiate reprezinta acest lucru, doar modul de adresare si de alocare a unei proprietati sau functii se face diferit.
In legatura cu cele doua limbaje, depinde foarte mult ce vrei sa faci mai departe, experienta o sa capeti cand o sa lucrezi intr-o companie, la scoala o sa ai numai lucrari sintetice, demostrative. Oricum, daca urmaresti o cariera spre programare embedded iti recomand sa aprofundezi C, cu pointeri, operatii la nivel de bit si altele. Daca vrei sa lucrezi in comerical, aplicatii mobile, etc, iti recomand Java.

Ca si medii, eu lucrez pe cele de la Microsoft (Visual C si Visual J##), NetBeans, IAR, PICC. Deasemenea iti recomand sa tragi un ochi si peste UML.

#21
mafy

mafy

    Member

  • Grup: Banned
  • Posts: 951
  • Înscris: 22.12.2006
Imi recomandati va rog niste carti bune de OOP in C++?

#22
m3th0dman

m3th0dman

    Senior Member

  • Grup: Senior Members
  • Posts: 9,269
  • Înscris: 03.01.2007
@OriginalCopy & Tom_Cat: Thanks for the info.

Aș mai fi și eu curios de alte cărți recomandate.

View Postmafy, on 5th June 2010, 18:23, said:

Imi recomandati va rog niste carti bune de OOP in C++?
Una dintre cele mai bune cărți de C++ (Modern C++ Design: Generic Programming and Design Patterns Applied) este scrisă de un român, Andrei Alexandrescu. Este pentru avansați

Ce-am selectat eu:
The C++ Programming Language de Stroustrup. (de referință mai mult decât de învățat)
Effective C++ de Scott Meyers
C++ Complete Reference de Herbert Schildt
Thinking in C++ de Bruce Eckel
Data Structures and Program Design in C++ de Robert L. Kruse, Alexander J. Ryba

și cartea pe care tre' s-o aibă orice programator
Introduction to Algorithms (e în pseudocod) de CLRS

Edited by m3th0dman, 05 June 2010 - 23:46.


#23
dmxghost

dmxghost

    Junior Member

  • Grup: Members
  • Posts: 42
  • Înscris: 06.10.2008
Dau si eu un plus mare pentru "Introduction to Algorithms" de CLRS. Orice inginer software care se respecta ar trebui sa cunoasca macar 50% din conceptele prezentate acolo.

#24
wirespot

wirespot

    Senior Member

  • Grup: Senior Members
  • Posts: 6,654
  • Înscris: 23.09.2002
O găsești și în română.

#25
m3th0dman

m3th0dman

    Senior Member

  • Grup: Senior Members
  • Posts: 9,269
  • Înscris: 03.01.2007
Și e chiar ieftină; atât numai că nu-i ultima ediție.

Originala, ultima ediție: http://www.okian.ro/...duct_id=1457620
Pe siteul respectiv găsești cam orice carte vrei (în engleză).

#26
wirespot

wirespot

    Senior Member

  • Grup: Senior Members
  • Posts: 6,654
  • Înscris: 23.09.2002
Hm, prețurile de acolo mi se par foarte mari... Cartea aia de exemplu e 160 de lei pe Amazon.co.uk. La care se adaugă ~15 lei per carte și ~25 per livrare. La ei este 240 de lei (plus livrarea). :(

Dacă vrei să iei 3-4 cărți deja e o diferență. Alea cu care am încercat eu la Amazon veneau 240 de lei + 4x15 + 25 = 325 de lei. La Okian vin 495 (fără livrare).

E vreo taxă de care nu știu eu?

LE: Acum am văzut și termenul de livrare: 2-4 săptămîni. Ha. Cred că ceva nu miroase bine.

Edited by wirespot, 08 June 2010 - 21:13.


#27
Pac_Man

Pac_Man

    Senior Member

  • Grup: Senior Members
  • Posts: 2,258
  • Înscris: 10.12.2001
Daca le iei de pe Amazon uk nu se adauga nici o taxa in plus. Tot ce am comandat pana acum a ajuns in fix o saptamana. Baietii aia de la Okian cred ca le comanda de pe amazon si le vand mai departe :lol:

#28
Taw

Taw

    Senior Member

  • Grup: Senior Members
  • Posts: 2,084
  • Înscris: 14.11.2003

View Postm3th0dman, on 1st June 2010, 22:09, said:

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)

Atunci avantajele si dezavantajele tale cu pointerii sunt practic nule.
Intai gandeste-te CE-TI PLACE SA FACI, ma refer la tipuri de proiecte, cum spunea si andrei_0.

Oricum practica este cel mai bun profesor.Eu terminasem facultatea si aveam impresia ca stiu C/C++, desi facusem o groaza de aplicatii si proiecte in facultate.
Baietii de la prima firma unde m-am angajat mi-au demonstrat contrariul.

Cat despre carti, cele propuse de methodman sunt pentru avansati.
Cel putin cartea lui Andrei Alexandrescu, desi foarte buna, necesita cunostinte avansate si se axeaza foarte mult pe template-uri.
Scott Meyers are 2 carti numite "Effective", foarte bune,dar tot asa, pentru avansati, iar Thinking in C++ mie nu mi-a placut niciodata.

Eu nu am invatat doar dintr-o carte, ci din mai multe. Iar tutorialele de pe net sunt EXTREM de utile + google, care face minuni.
Am citit carti bune de incepator, dar care nu explicau raspunsuri la intrebari simple, ca aceasta.

Repet un lucru: daca nu lucrezi cu tehnologiile pe care le cunosti, le uiti cat ai zice "peste", deci invata-le "din mers" si culege ce-i mai bun din fiecare.Daca un proiect se face mai repede cu Python, de ce sa creezi o ditai aplicatia cu Java sau VC++?

Edited by Taw, 11 June 2010 - 16:02.


#29
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,631
  • Înscris: 30.07.2003

View PostTaw, on 11th June 2010, 16:52, said:

Daca un proiect se face mai repede cu Python, de ce sa creezi o ditai aplicatia cu Java sau VC++?
Da-mi un exemplu pt. cazul de mai sus.

Edited by neagu_laurentiu, 11 June 2010 - 16:12.


#30
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Exemplu: screen scraping se face mai repede cu mechanize + beautifulsoup. Nu e un avantaj inerent limbajului python, ci tine de bibliotecile deja existente, da. Si totusi in C/C++ sau Java ai avea mai mult de munca, pe cand python (de data asta limbajul python) vine cu list comprehension out of the box.

Edited by OriginalCopy, 11 June 2010 - 19:00.


#31
Taw

Taw

    Senior Member

  • Grup: Senior Members
  • Posts: 2,084
  • Înscris: 14.11.2003

View Postneagu_laurentiu, on 11th June 2010, 16:12, said:

Da-mi un exemplu pt. cazul de mai sus.

Multe parti ale unui joc de exemplu se fac in limbaje high-level (GUI, AI, etc), lasand doar engine-ul in seama C/C++-ului.

Edited by Taw, 11 June 2010 - 19:30.


#32
m3th0dman

m3th0dman

    Senior Member

  • Grup: Senior Members
  • Posts: 9,269
  • Înscris: 03.01.2007

View PostTaw, on 11th June 2010, 16:52, said:

Atunci avantajele si dezavantajele tale cu pointerii sunt practic nule.
Intai gandeste-te CE-TI PLACE SA FACI, ma refer la tipuri de proiecte, cum spunea si andrei_0.

Eu nu am invatat doar dintr-o carte, ci din mai multe. Iar tutorialele de pe net sunt EXTREM de utile + google, care face minuni.

Am citit carti bune de incepator, dar care nu explicau raspunsuri la intrebari simple, ca aceasta.
Prin low-level în C înțeleg aplicații care să folosească operatorii &, |, ^,  >>, << de exepmlu, nu aplicații care folosesc pointeri.
Chestia-i că eu nu lucrez într-o firmă, să-mi dau seama de tipuri de proiecte. Iar cele de la facultatea până acum au fost exclusiv C deci n-am ce compara (am mai avut și în VHDL, dar asta n-are legătură).

Asta-i fără îndoială așa.

Cea mai recomandată/folosită carte pentru începători în C, dă răspuns la întrebările respective.

Edited by m3th0dman, 11 June 2010 - 20:47.


#33
GigiMaciuca

GigiMaciuca

    Member

  • Grup: Members
  • Posts: 940
  • Înscris: 27.01.2010
Daca faci abia in anul urmator POO, o sa fii surprins cat de putina programare faci la materia aia... Noi cel putin la curs si examen am avut doar diagrame UML. Important e sa stapanesti conceptele POO (proprietati si metode private/publice/statice, mostenire, polimorfism etc), limbajul de programare se invata relativ repede cand iti propui sa faci un proiect concret :)

O idee buna ar fi sa iei o carte cu "Design patterns" (C++ sau Java - care o gasesti sau care iti place mai mult), ca pe de o parte sunt explicate foarte bine conceptele POO, pe de alta parte iti arata concret cum se lucreaza cu ele.

Have fun!

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate