| andreisergiu123456789 a întrebat:

Salutare care este limbajul de programare cu cele mai multe paradigme(de programare)?

Răspuns Câştigător
suntserios
| suntserios a răspuns:

Paradigmele sunt niste metode de rezolvare a unor probleme sau un mod de a scrie cod. Ele se aplica la majoritatea limbajelor... c++ sau Java fiind cele mai complexe probabil pot implementa cele.mai multe paradigme

5 răspunsuri:
| NLS a răspuns:

Pascal sau C++ te ajuta cel mai bine ca incepator, si tot in acestea gasesti cele mai multe culegeri cu probleme rezolvate, sau exemple pe net.
Nu degeaba se studiaza in licee. (Bine, Pascal e limbaj mort, dar pentru uz didactic, e foarte indicat, sintaxa e usor de invatat).
Doar ca urmand calea Pascalului, esti oarecum mai limitat, singurul limbaj care e construit pe el, e Delphi. Visual Basic seamana si el putin (dar nu rasare...).
Pentru toate celelalte, e mai bine sa stii C++.

| JackR a răspuns (pentru NLS):

Nu ai inteles intrebarea! Se referea la paradigme de programare, nu la usurinta in invatare.

Discutia este complexa si implica timp si spatiu. Site-ul si modul de comunicare nu sunt cele mai potrivite, dar sa incerc sa-ti dau cateva idei.

Cu cat limbajul de programare este mai "evoluat", cu atat mai multe paradigme poate "contine". As zice ca, undeva in familia C++/C# - Java - PHP gasesti cele mai multe paradigme folosite. Poti dezvolta aplicatii in oricare din aceste limbaje, folosind paradigma declarativa, paradigma procedurala, paradigma orientata-obiect, paradigma recursiva sau orice combinatie intre ele. Sunt situatii cand ai nevoie si de altceva, de genul paradigmei functionale, si atunci apelezi la apeluri catre biblioteci de functii sau bucati de cod scrise in Haskell. De aici ghilimelele pe care le-am pus la "contine". Folosesti numai paradigma de care ai nevoie, pentru scopul urmarit, putand ignora complet toate celelalte.

Exista si o notabila exceptie (sau un paradox, daca vrei): "batranul" FORTRAN. Putin folosit in zilele noastre, in special din cauza sintaxei absolut naucitoare, pentru cei obisnuiti cu programarea structurata (gen Pascal sau C), dar imbatabil pentru tot ce inseamna calcul numeric intensiv, stiintific sau ingineresc (gen operatiuni cu matrici de milioane de elemente, functii BLUP/BLUE, simulari etc.). FORTRAN a fost creat, de la inceput, ca un limbaj multi-paradigma si orice aplicatie dezvoltata, care are un grad mediu de complexitate, te obliga sa folosesti mai multe paradigme.

| NLS a răspuns (pentru JackR):

"Poti dezvolta aplicatii in oricare din aceste limbaje, folosind paradigma declarativa, paradigma procedurala, paradigma orientata-obiect, paradigma recursiva sau orice combinatie intre ele. Sunt situatii cand ai nevoie si de altceva, de genul paradigmei functionale, si atunci apelezi la apeluri catre biblioteci de functii sau bucati de cod scrise in Haskell. De aici ghilimelele pe care le-am pus la "contine". Folosesti numai paradigma de care ai nevoie, pentru scopul urmarit, putand ignora complet toate celelalte."

Ma cam depaseste, stiu doar Pascal binisor, si am fost inceput sa invat prin 2013 putin Delphi pe cont propriu, mai mult ca sa nu uit de tot sintaxa Pascalului, care mi-a placut mult in liceu. Sunt constient ca nu-mi ajuta la nimic nici Delphi, chiar daca as sta de el. (Am fost la liceu mate-info, apoi am ales drumul ingineriei mecanice).

Dar din ce spui tu acolo, acum inteleg altceva. Paradigme declarative, procedurala, functionala, orientata obiect, recursiva, facand analogie cu ce exista in Pascal si C, imi suna a proceduri si functii, plus metode gen backtracking, recursivitate si pointeri, care sunt share-uite intre mai multe programe (o familie de programe construite pe un schelet partial comun).
Bineinteles la alt nivel, mult mai avansat, de aceea se poate opera cu matrici uriase.

| JackR a răspuns (pentru NLS):

Nu-i chiar asa! Daca vrei o definitie simpla, "paradigma de programare" este un set de reguli care precizeaza modul in care se construieste un program, intr-un anume limbaj de programare.

De exemplu, in C++ poti folosi paradigma procedurala (imparti problema in bucati mici, scrii proceduri care rezolva fiecare problema mica, le pui laolalta) sau paradigma orientata obiect (definesti clasele/obiectele/metodele necesare scopului programului, scrii bucata de cod care apeleaza respectivele clase, obiecte si metodele). Asa cum spuneam, poti folosi o combinatie a celor doua sau poti adauga "savoarea" paradigmei recursive, incluzand functii si proceduri recursive in paradigma procedurala, pe care o folosesti intr-un program pe care l-ai gandit ca folosing pradigma orientata obiect.

Nu exista un scenariu "fix", totul depinde de talentul programatorului si de calea pe care o alege in rezolvarea problemei. Peste asta intervine optimizarea codului, eficienta in exploatarea resurselor hardware, costurile de dezvoltare, intretinere si upgrade. Se poate ca lucrurile sa se schimbe "din mers", in sensul ca se pleaca prin folosirea unei paradigme si se ajunge la utilizarea alteia sau a unei combinatii, asa cum am scris mai sus. Sau se poate ca paradigma aleasa initial sa fie cea corecta/eficienta/economica si folosirea celorlate posibile sa nu fie necesara.

| Raileanu_Olguta_2000 a răspuns:

Caute pe google) de ce sa chinnui oamenii la ora 0.05 cu scoala?