Sunteți pe pagina 1din 3

S ncercm s rspundem pentru nceput (fr a da un rspuns exact sau definitiv) la

cteva
ntrebri:
1 ) n primul rnd la ce este bun un limbaj de programare n general?
2)
Cum
putem
clasifica
limbajele
de
programare?
3
)
De
ce
apar
noi
limbaje
de
programare?
4) De ce cineva i-ar propune s nvee un limbaj de programare?
5) Care ar fi primele limbaje de programare pe care un tnr ar trebui s le nvee?
1) La acest ntrebare se poate rspunde cu alta: ce aport au sistemele de calcul n
zilele
de
astzi?
Un limbaj de programare ar fi un set de instrumente prin care se poate rezolva o
anumit mulime de probleme concrete. Dac punem n aa fel problema avem o
definiie pragmatic asupra limbajelor de programare. Bineneles c fr existena
noiunii de limbaj de programare nu ar mai avea sens noiunea de sistem de calcul,
astfel explicndu-se apariia primelor limbaje de programare odat cu cea a
computerelor electronice. Dac ne referim la primele sisteme de calcul (care erau
mecanice, cum ar fi calculatorul lui Pascal sau alte maini simple de socotit) ideea de
program nu era bine definit, identificndu-se cu construcia mainii. Totui, dac
reflectm puin asupra mainii proiectate de Ada Lovelace, se poate observa o
separare destul de clar a noiunii de program (entitate software) de noiunea de
construcie dedicat abordrii unei familii mari de probleme. Dac ne uitm un pic pe
Wikipedia, gsim c la ora actual exist multiple abordri a acestui subiect. Oricum,
se pare c numrul limbajelor de programare depsete la ora actual cifra de 400.
2) Criteriile dup care poate fi clasificat un limbaj de programare n raport cu altul ar
fi
urmtoarele
:
- flexibilitatea - caracteristic creia i-ar corespunde unui anumit limbaj de
programare de a fi aplicat unei ct mai mare varieti de arhitecturi hardware (ceea ce
poate fi rezumat la portabilitatea pe diverse arhitecturi hardware). Haide s ne punem
ntrebarea ce limbaje de programare vor fi utilizate n cazul calculatoarelor cuantice?
(la ora actual exist cteva n faz experimental, cum ar fi QCL, qGCL i cteva
axate pe programare funcional, de exemplu, QFC, QPL i QML). O alt perspectiv
a flexibilitii ar fi dat de capacitatea de a rezolva o anumit problem prin mai
multe ci distincte. Putem aprecia flexibilitatea prin capacitiatea unui limbaj de
programare de a conlucra cu alte limbaje de programe. De exemplu Java conine
biblioteca JNI ce permite apelarea de funcii scrise ntr-un alt limbaj de programare,
de pild limbajul C sau ASM, sau cazul limbajului Python ce poate fi extins prin
funcii scrise n C sau poate servi ca suport de legare a diverselor alte programe n
alte limbaje, i un alt exemplu-limbajul HTML, ce poate fi descris ca o platform
standard de dezvoltare a paginilor Web pe care pot fi utilizate alte limbaje de script,
de
exemplu
JavaScript,
PHP,
Perl,
etc.
- familia de algoritmi ce pot fi implementai - aceasta fiind practic una din cele mai
importante caracteristici ale unui limbaj de programare. n zilele noastre limbajele de
programare ce au devenit cele mai populare sunt capabilile s implementeze structuri
de
date
de
complexitate
foarte
ridicat.

- popularitatea - cu ct un limbaj de programare este mai popular n momentul de


fa, cu ct avem mai muli developeri dedicai utilizrii unui anumit limbaj de
programare cu att programul pe care l vom crea va avea un ciclu de via mai
dinamic. Dac reflectm de exemplu la dezvoltarea n timp a kernel-ului sistemului
de operare Linux (dezvoltat de regul n C), vom constata c acesta reprezint unul
din cele mai dinamice i de amploare proiecte din lumea opensource. Cu ct limbajul
de programare va avea o popularitate mai ridicat cu att vom gsi mai multe resurse
de informare i de colaborare cu ali programatori. Deasemeni, dac ne oprim la un
anumit limbaj de programare vom vedea cte IDE-uri (Medii de Dezvoltare Integrate)
exist pe pia (la disputa C versus Java, C dispune de mai multe IDE-uri, i poate
asta c C a dispus de mai mult timp de cnd exist). Oricum, gradul de popularitate a
unui limbaj este o chestiune variabil, ce ine de dezvoltarea tehnologic a
platformelor hardware a sistemelor de calcul i de apariiile concurente a altor
limbaje
de
programare.
- simplitatea sau expresivitatea - n raport cu limbajul uman obinuit i fa de
numrul de caractere ce ar trebui introdus n codul surs nct acest limbaj s poat
rezolva o anumit problem. De exemplu, un atu al limbajului de script Python este
capacitatea unui program scris n acest limbaj de a rezolva o anumit sarcin printrun program cruia i corespunde un numr mic de instruciuni (dei la partea grafic
se
pare
c
nu
st
aa
de
bine).
- apropierea de componenta hardware aceast caracteristic marcnd dac n
lmbajul de programare exist funcii ce pot apela diverse componente ale
calculatorului i cum acestea trateaz respectivele componente. Aceast caracteristic
poate fi corelat cu flexibilitatea respectivului limbaj de programare.
- disponibilitatea tehnologic i aici a sugera s v gndii la dezvoltarea
tehnologiilor opensource. Unix, i mai trziu Linux, au reprezentat medii de creare i
dezvoltare a multor limbaje. Multe din companiile cu tradiie n software comercial
prefer s prezinte limbajele de programare ca nite produse free sau liber deschise
spre dezvoltare, crecnd astfel ratingul asociat acestor produse precum i ansa lor de
a
evolua.
-paradigmele de programare disponibile Exist mai multe paradigme de
programare, cum ar fi paradigma programrii imperative, funcionale, etc. n cazul
limbajelor de nivel nalt actuale putem discuta despre paradigma programrii
procedurale sau de paradigma programrii orientate pe obiecte. n cazul limbajelor
low-level (ASM) nu se poate discuta despre programare orientat pe obiect. Oricum,
exist limbaje axate exclusiv pe paradigma programrii procedurale (de exemplu
limbajul C sau BASIC), alte orientate pe programare pur pe obiecte (limbajul Java),
ct i limbaje n care se pot utiliza ambele paradigme (limbajul PHP).
- rapiditatea cu care ruleaz codul scris Pentru nceput vom spune c am putea
deosebi dou mari familii de limbaje de programe: prima ar fi cea a limbajelor de
script, pentru care codul surs este rulabil printr-o aplicaie suplimentar, adugat
sistemului de operare, iar a doua categorie ar fi limbajele destinate producerii de cod
binar. La rndul su, cea de-a doua categorie, se ramific n limbaje de programare a
cror cod surs este interpretat de ctre un interpretor, i a limbajelor ce sunt
compilate. Ultima clasificare nu este rigid i nici definitiv i cel mai bun

exemplu ar fi cel al limbajului Java (codul surs este compilat apoi interpretat de
maina virtual Java). Se pare c limbajele de script sunt cele mai puin rapide, i de
aceea multe din scripturile realizate nu sunt deosebit de complexe. Interpretoarele
asigur o portabilitate a codului scris, ns viteza codului produs va fi n principiu mai
mic
dect
n
cazul
programelor
compilate.
- securitatea programelor scrise- i aici ne gndim dac la un anumit program scris ar
putea fi adugat o procedur, nct acesta s schimbe ntr-un mod nedorit i neplcut
funcionarea respectivului program. Trebuie spus c limbajele de script stau cel mai
prost
la
acest
capitol.
3) Limbaje de programare apar datorit factorilor descrii la ncercarea de clasificare
de mai sus. ntotdeauna vor exista idei noi care vin s mbunteasc unii dintre
aceti parametri. i ca exemplu, primul care mi vine n minte, este limbajul C++00X.
Acesta, de fapt o extensie a binecunoscutului limbaj C++, vine ca un nou standard,
aducnd faciliti mai ridicate n ceea ce privete expresivitatea, apropierea de
probleme reale i mbuntirea productivitii de creare a noilor biblioteci. n
contrast,
cine
i
mai
amintete
despre
Algol
sau
COBOL?
4) Rspunsul, dei poate fi dat n mai multe feluri, este formulat la acelai nivel de
simplitate ca i ntrebarea. n primul rnd, fiindc are o problem sau o clas de
probleme pe care le vrea s le rezolve cu ajutorul calculatorului. Un alt rspuns ar fi
c
este
curios
despre
cum
ar
funciona
respectiva
tehnologie.
5) n primul rnd prin atributul de tnr nu m refer neaprat la vrsta biologic,
putnd fi vorba despre contactul unui individ cu un anumit tip de sistem de calcul sau
cu anumite probleme. Oricum, rspunsul la ntrebare l vei gsi cnd o s fii fa n
fa cu situaia respectiv, i dac nu o s l gsii singuri ntr-un timp rezonabil o sa
v
ajute
alii.

i acum o mic ideea despre ce vom discuta n acest blog. Pentru nceput despre
limbajele cele mai populare (C++ i Java), apoi despre altele...
http://manufactoryprogramming.blogspot.ro