Cred ca deja stiti ca programarea face parte din viata de zi cu zi a fiecaruia dintre noi, indiferent in ce domeniu am lucra: de la mecanica pana la ingineri astronomici sau nu mai stiu eu ce, informatica si programarea propriu-zisa si-au gasit un loc destul de bine clasat in algoritmul care face ca lumea moderna sa functioneze.
Si cum numarul de calculatoare, de solutii mobile, de echipamente tehnice a explodat in ultimii 20 de ani, s-au inventat multiple limbaje de programare, care sa vina in ajutorul utilizatorului de rand.
Potrivit IEEE Spectrum 2014, cel mai popular limbaj de programare este Java, care este urmat indeaproape de C si C++. In lista de mai jos puteti observa care sunt limbajele de programare preferate, in functie de tipul de dispozitiv care foloseste un anumit tip de soft, care corespunde unui anumit tip de limbaj de programare.
Ma asteptam la mai multe informatii avand in vedere titlul dat in mail.
Dar hai ca adaug eu, pentru cei interesati.
Java este cel mai raspandit limbaj in momentul de fata si este util in dezvoltarea de aplicatii cross-platform si pentru Android. Fiind un limbaj managed (gestionat), necesita un runtime/framework pentru ca aplicatiile sa poata rula, ceea ce creste considerabil consumul de resurse. Din pacate, JRE (Java Runtime Environment) cat si modul de gestiune al memoriei par gandite mai de graba pentru mediul Linux, motiv pentru care pe celelalte platforme (OXS/Windows) aplicatiile Java vor rula greoi iar uneori absolut execrabil.
C/C++ este unul din cele mai longevive limbaje native (spre deosebire de cele gestionate, nu necesita un runtime/framework) si este utilizat in dezvoltarea de aplicatii pentru care consumul de resurse este esential, din cauza faptului ca C/C++ nu ofera gestiune automata si permite astfel optimizarea manuala si foarte eficienta a aplicatiilor. Totodata, acest lucru il face greu de invatat iar dezvoltatorii de C sunt predispusi la erori destul de des.
C/C++ este folosit si in dezvoltarea de aplicatii mobile pentru Android, desi suportul nativ pentru acest OS este inca limitat si experimental.
C/C++este de asemenea unul din limbajele in care pot fi dezvoltate aplicatii pentru Windows Phone.
Un derivat de C este si Objective C, destinat dezvoltarii de aplicatii pentru OS X si iOS. Objective C suporta si librarii specifice limbajulelor C si C++.
.NET este un framework, dezvoltat de Microsoft si care ofera un set de librarii pe care limbajele dezvoltate de Microsoft.
.NET sta la baza dezvoltarii aplicatiilor Windows Phone/Windows 8 Modern UI Apps, alaturi de C++, HTML5, CSS si Java Script (a nu se confunda cu Java).
ASP/ASPX este un limbaj de programare web, bazat pe tehnologia .NET, dezvoltat ca o alternativa la Php + JavaScript.
Si o mica paranteza, aplicatiile pentru Windows Phone si ModernUI pot fi dezvoltate utilizand o multitudine de limbaje, native, managed si web, spre deosebire de Android si Objective C.
C++ .NET este implementare Microsoft a limbajului C++. Avantajul major consta in faptul ca, pe langa librariile limbajului clasic C/C++, ofera acces la librariile .NET, ceea ce ofera un plus de functionalitate si productivitate crescuta. Dezavantajul in cazul asta consta in faptul ca, odata ce sunt folosite acele librarii .NET, limbajul nu mai este unul stanadrd si nativ ci necesita .NET framework pentru a putea rula pe Windows. Exista o implementare open-source a tehnologiei .NET, Mono, care are acordul Microsoft, dar sincer sa fiu nu stiu daca pot fi rulate aplicatii dezvoltate in C++ .NET pe alte platforme prin acesta.
C# este tot un limbaj dezvoltat de Microsoft si este bazat exclusiv pe .NET framework. Ceea ce face acest limbaj oarecum diferit este faptul ca desi este derivat din C++, este un limbaj gestionat orientat pe obiect, ceea ce il face o alternativa ideala atat pentru C/C++ cat si pentru Java.
Tehnologia .NET, prin intermediul frameworkului Mono, si limbajul C#, sunt utilizate de catre engineul de jocuri Unity, fiind ideale pentru dezvoltarea de jocuri pentru absolut toate platformele (mobile, desktop, web, console etc.).
Php este un limbaj de programare (desi initial a fost dezvoltat ca limbaj de scripting), destinat aplicatiilor web si a site-urilor. Not much to say here.
JavaScript este tot un limbaj de programare web, destinat implementarii de functii pentru a caror dezvoltare nu se poate utiliza Php, datorita limitarilor impuse de acesta.
Despre restul nu zic nimic ca nu am folosit. Sa completeze altcineva.
Foarte bun comment-ul.
eu ti-am citit comentariul !
De precizat:
Java este pe primul loc din mai multe motive, nu doar ca in ultimii 6 ani a inceput sa fie util pentru crearea de aplicatii pe android..
Un exemplu simplu, majoritatea ATM-urilor ruleaza cu aplicatii create in JAVA, Marile institutii folosesc JAVA ( nu pentru ca ar fi cel mai bun limbaj de programare, dar ca si windows xp 🙂 , e destul de greu si de scump sa treci la altul )
Cat despre PHP, isi merita locul acolo, este departe de a fi un limbaj de programare foarte bun, dar in ultimii 5 ani s-au facut progrese foarte mari.
Mai nou au aparut:
Go C
D C++
Dart Javascript (+ typescript, coffeescript dar nu sunt lb separate)
== vrea sa inlocuiasca (sau sa ofere o alternativa)
Toata lb din tabel, mai putin c/c++, ruleaza intr-o masina virtuala (dar implementarea e diferita in functie de lb, pentru unele (python, ruby) existand mai multe masini virtuale in care pot rula). Managementul memorie este automat (si aici difera implementarea, de ex la un moment dat masina virtuala creaza o lista cu toate variabilele existente si le sterge pe cele pe care nu le mai poate accesa (nu mai apar in cod)) dar acest lucru scade si viteza de rulare a programelor (dar creste viteza de dezvoltate a proiectelor, scade numarul de bugguri, etc). Daca e cineva interesat poate continui.
As adauga si eu in la lista aia Swift, noul limbaj de la Apple, care va inlocui in viitor Objective-C. La o prima vedere se observa influenta Java/C# asupra sintaxei. Dar e posibil sa ma insel.
Si intradevar, managementul automat are avantaje si dezavantaje. Tocmai de asta am vazut mereu Java ca pe o solutie buna atunci cand vorbim de proiecte mari care de obicei ruleaza pe hardware puternic (server/mainframe etc.).
Mie mi se pare ca Swift seamana mai mult cu javascript. Oricum Swift nu e inca implementat complet.
In general apar multe lb in ultimii ani (vala, rust, cele care ruleaza in jvm – scala, groovy, ceylon ) Plus cele „vechi” dar folosite doar in anumite sectoare (haskell, R, …).
Daca citeste cineva comentariile poate o sa fie mai putini care cred ca se poate scrie un kernel in php.
@ValsiS
Banuiesc ca e greu sa treci de la un limbaj la altul in general cand vine vorba de insitutii, companii etc. Asta ar insemna adaptarea sistemelor informatice (in functie de scopul pentru care sunt folosite respectivele sisteme pe care le rescrii in alt limbaj) iar asta costa enorm.
Php e bun pentru ceea ce se vrea a fi si e versatil si usor de utilizat. Sincer nu stiu daca ar trebui extins dincolo de scopul sau actual (evident inovatia trebuie sa existe, mai ales in cazul asta) pentru ca ar deveni prea greoi. Dar asta e doar parea mea.
daydr3am3r, superba completare! A avut o singura hiba: bibliotecile limbajelor de programare.
Mersi dar nu imi dau seama unde am gresit. Can you please point it out?:D
A, ca le-am zis librarii in loc de biblioteci? My bad.
Multumim mult pt comentarii, asa mai aflam si noi cate ceva 🙂
Exact, in rest, fain!
Un sfat prietenesc. Pe langa oricare limbaj de programare de mai sus invatati si SQL. Integrarea cu bazele de date este esentiala in ziua de azi. Dar trebuie grupat tipul de SQL cu limbajul de programare ca de obicei serverele de aplicatii vin la pachet cu bazele de date: Java cu Oracle, C# cu SQL Server, PHP cu MySQL etc. 95% din aplicatiile moderne lucreaza cu o baza de date, fie si Lite SQL pe Android.