Sunteți pe pagina 1din 12

Istoria si evolutia programarii Web

de Horea Mihut, grupa 934

Daca vorbim despre programarea Web, atunci putem incepe discutia de la 6 august 1991 cand
CERN, o organizatie europeana pentru cercetarea particulelor a publicat noul proiect World Wide Web.
Webul a fost inventat de Tim Berners-Lee in 1989.

· Ce a fost inainte de Internet

Desi aplicatiile si strategiile de baza care fac posibila existenta Internetului existau de 2 decenii,
reteaua nu a capatat o fata publica pana in 1990. Doua decenii care au inceput cu proiectul american
ARPA in 1958 - acesta lega in retea mai multe radare de pe teritoriul statelor unite - cercetari pornite si
urgentate de lansarea Sputnik. In 1965 Lawrence Roberts a inceput sa construiasca o retea conform
studiului sau pentru United States Air Force in care recomanda folosirea "packet switching" in loc de
"circuit switching" pentru a ajunge la o robustete si rezistenta la dezastre. Profesorul Leonard Kleinrock
de la UCLA a realizat fundatiile teoretice a unei retele bazata pe transfer de pachete in 1962, iar mai
tarziu in 1970 pentru rutare ierarhica, concepte care au stat la baza dezvoltarii Internetului din ziua de
astazi. Dupa multa munca, pe 29 octombrie 1969 au fost conectate primele doua noduri ale ARPANET, ce
legau UCLA de sistemul NLS din California. La sfarsitul anului 1971, deja erau legate 15 locatii din SUA la
ARPANET. Vazand ca "packet switching" functioneaza in ARPANET, Oficiul Postal Britanic, Telenet, Datapac
si Transpac au colaborat la crearea primului serviciu de retele international. In 1978 in UK acesta se
numea International Packet Switched Service (IPSS). Deja totul lua amploare, astfel incat Vinton Cerf si
Robert Kahn au creat prima descriere a protocolului TCP de astazi intr-o lucrare publicata in mai 1974.
Termenul de "Internet" a fost folosit pentru a descrie o singura retea TCP/IP globala a aparut prima data
intr-o publicatie scrisa de Yogen Dalal si Carl Sunshine de la Universitatea Stanford.

Primul "programator web" a fost chiar inventatorul www-ului, Tim Berners Lee, care a publicat
primul site din istorie în anul 1991. Pe 25 decembrie 1990, cu ajutorul lui Robert Cailliau la CERN (cel
mnai mare nod de Internet din Europa), a implementat prima comunicare reusita intre un client HTTP
(Hypertext Transfer Protocol) si un server prin intermediul Internetului.

· Primul website

http://info.cern.ch/hypertext/WWW/TheProject.html a fost adresa primului site Web si server


Web din istorie, si centraliza informatii privind proiectul WWW. Vizitatorii puteau invata mai multe
despre hypertext, detalii tehnice pentru crearea propriei lor pagini, si chiar explicatii despre cum puteau
cauta informatii pe web. Exista o copie mai recenta a paginii (1992) pe siteul Consortiului World Wide
Web. Asa ca, desi Web-ul a fost creat ca o unealta care sa ajute fizicienii sa raspunda unor intrebari grele
despre Univers, astazi este o parte importanta din comunitatea globala si ne afecteaza viata din fiecare
zi.

· Primul browser

Vizitatorii paginii CERN din 1990 aveau sa vada asta cand accesau siteul. Arata mult mai primitiv
decat primul browser/editor NeXT, si asa si era! Dar acesta era primul browser universal care garanta
oricui de pe planeta acces la Web, indiferent de ce sistem informatic folosea.

Acest sistem tocmai iesea din teste in vara 1991. A fost conceput sa functioneze doar tiparind
comenzi la tastatura. Nu exista mouse, grafica, doar text simplu, dar permitea oricui cu conexiune
Internet sa acceseze informatiile de pe Web.

· Protocoale

Infrastructura complexa a Internetului este formata din componentele hardware si un sistem de


layere software care controleaza diverse aspecte ale arhitecturii. In timp ce hardwareul poate fi folosit
des pentru a sustine alte sisteme software, designul si procesul riguros de standardizare a software-ului
arhitecturii caracterizeaza Internetul si constituie fundatia pentru succesul si scalabilitatea acestuia.
Responsabilitatea pentru designul arhitectural a sistemelor software in internet a fost delegata IETF
(Internet Engineering Task Force). Aceasta contine standarde de lucru, open source, cu privire la
diferitele aspecte ale arhitecturii Internet. Rezultatele finale vor fi facute publice intr-o serie de publicatii,
fiecare numita RFC - Request for COmments, diponibile gratuit pe siteul IETF. Principalele protocoale de
retea ce permit Internet sunt cuprinse in RFC - Intenret Standards. Celelalte documente sunt mai putin
riguroase si sunt simplu informative, experimentale, sau istorice, sau documenteaza cele mai bune
practici curente cand vine vorba de implementat tehnologii Internet.
Standardele Internet descriu un framework cunoscut ca Internet Protocol Suite. Acest este un model
arhitectural care imparte metodele intr-un sistem de protocoale pe straturi (layere). Primul strat este
Application Layer, spatiu destinat aplicatiilor web browser. Sub acest strat, este Transport Layer, stratul de
transport care conecteaza diferite aplicatii sau hosturi intr-o retea. Sub acestea, exista doua straturi, care
formeaza nucleul tehnologiei de comunicatie: Internet Layer, care permite calculatoarelor sa se gaseasca
si identifice prin protocolul adresele IP si sa se conecteze unele la altele prin retele de tranzit
(intermediare). In partea de jos a arhitecturii exista un ultim strat software Link Layer, care faciliteaza
comunicarea si conectarea intre hosturi ale aceleasi retele, cum ar fi un LAN sau o conexiune dial-up.
Modelul, cunoscut ca si TCP/IP este creat ca sa fie independent de hardwareul pe care este implementat,
asa ca modelul unui router de exemplu nu conteaza.

· Structura

Structura Internetului alaturi de caracteristicile sale au fost studiate in mod progresiv, de cand
acesta a fost inventat. A fost determinat faptul ca rutarea IP si legaturile hypertext din World Wide Web
sunt exemple de retele scale-free. Internetul este extrem de eterogen, astfel ca multi oameni de stiinta
au descris Internetul ca un prim exemplu de sistem extrem de complex care creste organic extrem de
rapid.

Inainte sa putem discuta despre limbaje de programare web, sa stabilim metodele prin care se
face accesul la Internet si cum putem ajunge sa folosim aceste limbaje:

· Accesul la World Wide Web


Inca de la inceput limba prevalenta in Internet a fost engleza. Asta poate fi rezultatul originii
Internetului, sau a rolului de lingua franca pe care il joaca engleza.

Metodele comune de acces la Internet includ dial-up, broadband (prin cablu coaxial, fibra optica,
copper wires), wi-fi, satelit, si tehnologiile 3G/4G inglobate in terminalele mobile (telefoane). Exista de
asemenea Internet Access Points in majoritatea locurilor publice cum ar fi terminalele din aeroporturi,
gari, cafenele, restaurante.

· Programare WEB

Asa cum exista o diversitate uriasa de limbaje de programare disponibile pentru taskurile
conventionale de programare, exista o diversitate de limbaje de programare pentru Web. Nu avem
motive sa credem ca un singur limbaj va monopoliza scena programarii Web, desi varietatea si
posibilitatile din acest moment ne poate face sa credem asta. Java este valabil si pentru programarea
normala si pentru programarea Web, dar nu toti dezvolatorii de aplicatii prefera Java in fata altor
limbaje. Esential este ca avem nevoie de o varietate de limbaje de programare pentru Web, la fel cum
avem nevoie pentru programarea in orice alt domeniu.

Dar Webul, totusi, pune in joc unele constrangeri in ceea ce priveste alegerile/preferintele
noastre asupra unui limbaj de programare Web sau altul: posibilitatea de a te ocupa de o varietate de
protocoale, formate si taskuri de programare, performanta (viteza si marime), siguranta datelor (implicit
a persoanelor reale), independenta data de diferite platforme, protectia proprietatii intelectuale
(copyright), si abilitatea de a te ocupa de alte tooluri si limbaje Web. Aceste probleme nu sunt
independente unele de altele. O alegere poate fi potrivita pentru una din categorii, in schimb sa fie cea
mai proasta alegere in cazul alteia.

· HTML (HyperText Markup Language)

Este limbajul de baza inteles de toti utilizatorii WWW (World Wide Web). Un cod HTML
nemodificat poate fi executat pe un PC cu sistem de operare Windows, pe un Mac, sau pe un
workstation Unix. HTML este indeajuns de simplu incat oricine sa poate scrie un document HTML, si se
pare ca lumea profita din plin de asta: toti o fac deja.

HTML este un limbaj markup mai degraba decat un limbaj complet de programare. Un document
HTML (program) este format din text ASCII impreuna cu instructiuni (markups) care afecteaza felul in
care textul este afisat (formatarea textului). Modelul de baza pentru executia unui document HTML este
preluarea unui document dupa nume (exemplu URL), interpretarea HTMLului si afisarea documentului, si
probabil preluarea inca catorva documente HTML implicate in proces. Aplicatiile HTML, sau ce am putea
considera similar cu o aplicatie, sunt constituite din o colectie de pagini web cu legaturi intre ele, ce sunt
gestionate de un singur server HTTP (HTTP este protocolul TCP/IP care defineste interactiunea dintre
clientii WWW si servere). Aceasta este viziunea de ansamblu, dar totusi limbajul este extrem de simplu,
modelul la fel, iar asta este unul din atuurile limbajului HTML.

Puterea de calcul a limbajului HTML este limitata. Acest lucru este intentionat in design,
deoarece previne executia programelor periculoase pe calculatoarele clientilor. Cu toate astea,
programatorii Web se simt tot mai constransi de aceste limitari in timp ce aplicatiile si cerintele pentru
aplicatii sunt tot mai mari si mai complexe. Cerintele ce nu pot fi codate in HTML trebuie sa fie executate
pe server in alt limbaj de programare, sau sa fie executate pe masina locala downlodat de pe un server.

Din cauza functionalitatii limitate a HTML, unele tipuri specifice de aplicatii se prezinta foarte
slab, mai ales in contextul in care multi clienti se conecteaza la Internet prin o retea dial-up de viteza
mica (sub 28.8 kbps). Problemele legate de performanta se ridica din doua surse: o aplicatie care este
foarte interactiva are nevoie de comunicare constanta cu serverul pe aceste linii de viteza mica, lucru
care scade dramatic performantele vizibile ale unei aplicatii; cererea ca toate calculele sa fie rulate pe
server mareste timpul de incarcare pe server si deci va reduce performanta vizibila de clienti.

In ziua de azi majoritatea clientilor au calculatoare competente, astfel incat sunt capabile sa
accepte o mare parte din nevoile de calcul pe care le permite limbajul HTML. De exemplu, un joc
interactiv bazat pe Internet poate fi o experienta frustranta pentru utilizatorii cu viteze de conexiune
mici, si pot supraincarca serverul pe care acestea se afla. Daca tu ai fi creatorul unui astfel de joc, ai fi
inclinat spre functionalitatea jocului spre client, dar, din moment ce capacitatile HTML sunt limitate,
trebuie gasita alta cale de a suporta calculele pe calculatoarele clientului. Programatorul poate face un
program client executabil pentru clienti, care sa fie executat prin intermediul browserului HTML, dar
utilizatorii vor putea accepta asa ceva doar in cazul in care au incredere in sursa (cum ar fi yahoo, google,
facebook), si aceste programe sunt o sursa clara in ceea ce priveste securitatea sistemelor utilizatorilor.

Atunci cand un cod este executat pe calculatorul unui client, trebuie luate in considerate doua
lucruri: ce este trimis si ce este executat. Exista trei alternative pentur fiecare din acestea: cod sursa, un
format intermediar compilat partial, si cod binar. Deoarece compilarile pot avea loc pe masina clientului,
ce este trimis (shipped) nu este neaparat ce este executat.

Codul Byte, in functie de masuratorile prezentate in cadrul conferintei JavaOne, poate fi de 2-3
ori mai mici decat codurile binare comparabile, asa ca transferul acestora poate fi considerabil mai rapid,
mai ales peste liniile de viteza mica. Deoarece timpul de transfer este semnificativ in Web, acesta este un
avantaj major. Codul sursa, este de asemenea, compact. Executiile de performanta favorizeaza in mod
clar codul binar in detrimentul codului byte, iar codul byte in detrimentul codului sursa. In general, codul
binar se executa de 1-10 ori mai repede decat codul octet. Majoritatea dezvoltatorilor Java VM sunt in
curs de dezvoltare de compilatoare JST (Just In Time) pentru a obtine beneficii de dimensiune si viteza a
bytecodurilor binare. Liniile de cod byte Java sunt downlodate de pe Internet si compilate in binar nativ
pe platformele locale ale utilizatorilor. Codul binar este mai apoi executat, si eventual salvat in memoria
cache, pentru executii ulterioare.

Ar trebuie sa fie clar ca orice combinatie a acestor strategii ar putea fi folosita in punerea in
aplicare a oricarui limbaj special de programare Web, si exista de fapt, variatii mari intre sistemele de
fapt chestionate.

· Independenta platformei
In timp ce independenta platformei a fost mult timp un obiectiv intre dezvoltatorii de limbaje,
nevoie de a stoarce fiecare gram de performanta de la software a facut acest lucru imposibil de mentinut
de multe ori, cel putin la nivel de cod executabil. Cu toate acestea, in Web aceasta preocupare devine
mai putin importanta, deoarece timpul de transfer este acum o componenta semnificativa de
performanta si poate domina timpul de executie.

Independenta de platforma poate fi obtinuta prin transportul fie a byte code sau a cod sursa. Un
avantaj al livrarii de byte code in detrimentul codului sursa este faptul ca o multitudine de limbaje sursa
ar necesita ca calculatoarele utilizatorilor sa poata sa mentina mai multe compilatoare sau interpretoare
pentru limbajele sursa, in timp ce coduri mai mici vor necesita mai putine masini virtuale.

· Proprietate intelectuala (copyright)

Conservarea proprietatii intelectuale. Desi nu este discutata in prezent ca o problema, abilitatea


de a descarca appleturi in conditii de siguranta este un avantaj suplimentar pentru dezvoltatorii care
doresc sa-si protejeze proprietatea intelectuala. Uitandu-va la scriptul altcuiva sau la codul sursa pentru a
vedea cum face ceva, si apoi a modifica putin, nu se simte ca a fura ceva. Pentru marea majoritate a
oamenilor onesti de pe Web, acest minor exemplu este destul. Dar pentru restul, efortul implicat in
ingineria inversa poate servi ca un efect disuasiv eficient.

· Siguranta

Virusii au dovedit ca executia de cod binar dintr-o sursa ce nu este de incredere, sau chiar
moderata ca fiind de incredere, este periculor. Codul care este downlodat sau uplodat de pe diverste
siteuri de pe Web nu ar trebui sa i se permita sa dauneze masinii pe care ruleaza. Downlodarea de cod
binar compilat din limbajele conventionale de programare este clar nesigur, dat fiind puterea acestor
limbaje. Chiar daca aceste limbaje sunt sau ar fi constranse la un nivel de siguranta, nu exista nici o
modalitate de a verifica faptul ca acesta se va desfasura fara a dauna calculatorului utilizatorilor.

HTML a dovedit ca descarcarea de cod sursa intr-un limbaj in conditii de siguranta si executandu-
l cu un interpretor de incredere/cunoscut se face in conditii de siguranta. Un client nu poate fi infectat cu
un virus doar prin solicitarea si afisarea unui document HTML (desi cu siguranta se poate aduce un
document infectat cu un virus, care sa poata fi activat la deschiderea/executarea fisierului). Desi HTML
are putere limitata, ideea generala din spatele HTML - un limbaj oarecum limitat interpretat de un client,
a fost adoptat pe scara larga cu mai multe limbaje si interpretoare.

Unele limbaje ating siguranta relativa prin executarea de programe compilate byte-code intr-un
mediu de lucru relativ sigur (o masina virtuala). Cu toate acestea, alte limbaje sunt interpretate la client
de un interpretor furnizat de dezvoltatorul limbajului (flash standalone player, adobe flash player). In
oricare din cazuri siguranta relativa poate fi atinsa datorita masinii virtuale care pot face static verificare
dar imposibile de facut in momentul compilarii/rularii.

Construirea unei masini virtuale sigure este o sarcina non triviala. Nu este nevoie de multe
masini virtuale, deoarece o masina virtuala poate fi gazda mai multor limbaje de programare.
HTML se dovedeste a fi insuficient pentru a dezvolta aplicatiile Web visate singur. Fiind extinsa
de servere si de programele downlodate de clienti, acest task este acum mai tangibil. Abilitatea de a
dezvolta cu usurinta aplicatii sofisticate bazate pe Web, aplicatii segmentate optimal intre client si server
in contextul unui environment eterogen si dinamic de pe Web, in timp ce nu compromite siguranta,
performantele, sau proprietatea intelectuala - acesta este scopul eforturilor actuale. Primul rezultat
semnificativ al acestor eforturi este Java, un limbaj derivat din C++ cu capacitati specializate pentru
dezvoltarea de aplicatii bazate pe Web. Java este compilat de catre dezvoltator la un format cod byte, cu
coduri byte downlodate prin browser pe calculatoarele clientilor, si interpretat de o masina virtuala, care
poate garanta utlizatorilor siguranta. Sun lucreaza la imbunatatirea sigurantei, performantei,
exhaustivitatii si omniprezentei Java, iar industria se pare ca accepta aceasta abordare. Altii, mai ales
dezvoltatorii de limbaje de programare si utilizatorii iau masuri similare pentru dezvoltarea de aplicatii
bazate pe Web in limbajele lor, sprijinind in continuare siguranta rularii de cod pe masinile client.

In ziua de azi siguranta ramane cea mai mare problema. Siguranta unui program este o functie a
nivelului de siguranta pe care un mediu il ofera atunci cand un program este executat. La un anumit
nivel, utilizatorul trebuie sa achizitioneze un program nesigur dintr-o sursa de incredere. In momentul de
fata, acceptam Google, Yahoo, Facebook ca fiind surse sigure de la care avem incredere sa
rulam/instalam/downlodam un program pe calculatoarele personale oricand. Pentru ca trebuie sa exista
un mediu de incredere in care programele sa poata fi executate, iar utilizatorii sunt de asa natura ca vor
accepta doar un numar limitat de companii/siteuri de incredere, au existat speculatii ca diversitatea,
inclusiv a diversitatii in limbajul de programare ales, ar fi redusa. In timp ce acest lucru ar putea deveni
general valabil, acum pare putin probabil, deoarece dezvoltatorii de limbaje se lauda ca pot schimba
destinatia unui cod pentru a fi rulat pe un total alt mediu de lucru, dezvoltat de altcineva. In prezent, cele
mai mari eforturi sunt orientate spre Java Virtual Machine, in principal deoarece este distribuit impreuna
cu Netscape si licentiat de catre furnizorii de alte browsere Web.

· Limbaje de programare Web si interfete

Limbajele si interfetele prezentate mai jos reprezinta mai multe tentative de a crea limbajul de
programare "ideal", de obicei prin extinderea sau restrangerea unur limbaje existente. Limbajele de
programare Web au o mare varietate de stramosi: limbajele de scripting, limbajele shell, limbajele mark-
up si limbaje conventionale de programare. Limbajele de programare Web rezultate arata ascendenta
din acestea in sintaxa lor, modelul de date si de calcul, stilul de punere in aplicare (sub rezerva
constrangerilor impuse de proiectare discutate in sectiunea anterioara) si, ca rezultat, exista un numar
destul de abordari distincte ale acestora. Cu toate acestea, este bine de constatat ca principalele
categorii de limbaje originale se estompeaza in timp ce dezvoltarea progreseaza.

Limbajele expuse mai jos sunt in ordine alfabetica. Daca intentionati sa cititi despre toate, va
recomand sa incepeti cu Java, Perl, Tcl, Python, deoarece multe din celelalte limbaje sunt comparate cu
ele.

Inclusa in descriere este si un exemplu de programare in fiecare limbaj: banala afisare pe ecran a
sintaxei "hello world".
· Ada95

Ada95 este cea mai recenta versiune a limbajului de programare Ada, care suporta acum si
programare orientata pe obiecte. Ada este utilizat pe scara larga in guvern si industrie. Ada si WWW/Java
compara Ada95 cu C++ si Java, si discuta capacitatea sa de programare pentru Internet.

with Ada.Text_IO; use Ada.Text_IO;


procedure Hello is
begin
Put_Line("Hello, world!");
end Hello;

· Apple Script

Apple Script este limbajul de programare orientata pe obiect al Apple, asemanator cu limba
engleza, limbaj de scripting si mediu de dezvoltare, realizat pentru Macintosh. Acesta este livrat cu
MacOS, si este folosit pe scara larga pentru toate varietatile de cerinte de pe Mac. Recent, acesta a fost
aplicata la cerintele programarii Web. WebRunner permite executarea de scripturi AppleScript
incorporate in fisiere HTML, pentru a putea fi executate pe un client care ruleaza Netscape. Serverele
cele mai utilizate pe scara larga HTTP pentru Macintosh, MacHTTP, un produs shareware, si WebStar,
fratele sau comercial, ambele folosind AppleScript pentru inregistrare si scripting CGI.

<<hello_world.scpt>>=
tell application "Finder"
"Hello World"
end tell

· A (Awe)

· BEF

BEF este un limbaj orientat obiect, asemanator cu Pascal, limbaj de scripting utilizat pentru a
descrie ocmportamentul in VRML.

· CCI (Common Client Interface)

NCSA Mosaic CCI (Common Client Interface) este specificare de interfata (protocol si API) care
permite aplicatiilor client sa comunice cu NCSA Mosaic, browserul web original, si sa controleze Mosaic
sau sa obtina informatii de pe Web prin intermediul Mosaic. Acesta nu este pentru invocarea de aplicatii
client-side de la Mozaic, ci pentru a controla Mosaic din aplicatie. Odata ce cererea ruleaza, poate
comunica cu browserul prin CCI. CCI nu este singura interfata definita in acest scop, caci se pare ca Tcl si
Pers o suporta acum de asemenea.

· CGI (Common Gateway Interface)


Un daemon Web executa un program CGI pe server si intoarce rezultatele la client (un query
asupra unui server cu baze de date), in loc sa returneze simplu o copie a fisierului mentionat, asa cum se
intampla cu o referinta HTML (pagina Web de exemplu). Parametrii sunt transmisi de la server la
programul CGI ca variabile de mediu. Programul este uneori scrin in C, C++, sau un alt limbaj de
programare compilat, dar de obicei este scris in limbaj de scripting (ex Perl, Tcl, sh). Pentru a preveni
deteriorarea serverului, in general, programele CGI sunt stocate intr-un director protejat sub control
exclusiv a webmasterului.

#!/usr/local/bin/perl
# hello.pl -- my first perl script!
print "Content-type: text/html\n\n";
print <<"EOF";
<HTML>
<HEAD>
<TITLE>Hello, world!</TITLE>
</HEAD>
<BODY>
<H1>Hello, world!</H1>
</BODY>
</HTML>
EOF

· CMM

CMM, acum redenumit ScriptEase: WebServer Edition, este o versiunea simplificate a limbajului
de programare C. C si Cmm difera intr-un domeniu major: mangamentul memoriei. Cu Cmm tot
managementul memoriei este facut automat, deci nu este necesara folosirea de buffere, de a declara
variabile, sau de a exprima tipurile de date.

Cu aceasta exceptie majora, Cmm si C sunt practic identice. Cmm suporta toate functiile
standard C si operatori (inclusiv structuri si matrici), si sunt folosite in acelasi mod ca si in C. Pentru
utilizarea cu programare CGI, Cmm ofera functii specializate pentru a obtine cu usurinta datele din
formulate si pentru a crea pagini HTML rapid.

· Dylan

Dylan este un limbaj dinamic de programare orientata obiect cu o sintaxa asemanatoare cu


Pascal, si o semantica asemanatoare cu Lisp. Acesta a fost proiectat in laboratorul Apple Cambridge in
colaborare cu Universitatea Canegie-Mellon si Harlequin Inc si revizuite de catre comunitatea
potentioalilor utilizatori, cea mai mare parte fiind fosti utilizatori de Common Lisp, dezamagiti de C++.
Scopul designerilor a fost de a crea un limbaj cu sintaxa, de performanta.

module: hello
format-out("Hello, world!\n");

· Eiffel

· GEL (Gain Extension Language)

· Glyphic Script

· Guile

Guile este extensia librariei de limbaj GNU. Include o masina virtuala, un sistem run-time, si o
interfata pentru multiple limbaje (ex Scheme, Ctax(Scheme cu sintaxa C), Emacs Lisp). Guile
interactioneaza pe mai multe niveluri cu Tcl/Tk. VM poate apela programe Tcl, si deci, limbajele pot apela
programe Tcl. Libraria Tk este accesibila tot in acest mod. Guile este implementat intr-un amestec de
Scheme si C, iar librariile C si Scheme sunt discponibile programatorilor utilizand extensiile de limbaje.

(define do-hello
(lambda ()
(display "Hello world.")
(newline)))

· Hyper Talk

HyperTalk este limbajul de programare in engleza pentru HyperCard-ul celor de la Apple. Este
descris de fani ca si similar cu AppleScript, dar mai simplu si mai iertator. Dat fiind numarul mare de
programatori HyperTalk din lumea Mac, HyperTalk poate fi preferat de majoritatea in detrimentul
oricarui alt AppleScript.

· Icon

Icon este un limbaj de programare Web dezvoltat de Universitatea din Arizona cu o sintaxa
asemanatoare C si elemente din ptrimoniu SNOBOL, facandu-l potrivit pentru procesare de stringuri, si
prin urmare, in mod similal altor limbaje de programare, facand din acesta un limbaj potrivit pentru
programarea Web.

· Java

Java este candidatul ideal pentru un limbaj de programare complet creat si orientat spre
aplicatiile Internet. Aceste avantaje sunt: familiaritate (derivat din C++), independenta de platforma (va
rula pe orice platforma care pun in aplicare Java Virtual Machine), performanta (codul byte compilat mai
rapid decat daca este interpretat in totalitate) si siguranta (appleturile downlodate au integritatea
verificata, si sunt interpretate ca fiind de incredere doar de Java Virtual Machine). Java este distribuit si
promovat agresiv de Sun Microsystems, care l-au dezvoltat si, evident, este vazut ca o oportunitate ca
Microsoft si Intel sa piarda putin controlul de la conducere.
Cu toate acestea, nu toata lumea este de acord ca Java conduce lumea limbajelor de programare
Web. Cea mai frecventa plangere este ca Java nu este un limbaj simplu, fiind de fapt un C++ mai curat, cu
o mare librarie GUI. Programarea C++ nu este descrisa ca simpla, iar programarea Java nici atat, mai ales
comparata cu HTML, sau alte limbaje cu care se afla in competitie.

public class HelloWorld


{
public static void main (String[] args) {
System.out.println("Hello, world!\n");
}
}

· JavaScript

JavaScript este limbajul de scripting Netscape pentru integrare HTML, pluginuri Netscape si
appleturi Java. El se bazeaza pe Java, si este in mare parte compatibil sintactic, dar difera de Java prin
faptul ca este interpretat, mai degraba decat compilat. JavaScript este menit sa extinda HTML intr-un
limbaj de programare complet, dar pastrand usurinta de utilizare a HTML.

<script type="text/javascript">
<!-- to hide script contents from old browsers
document.write("Hello World!")
// end hiding contents from old browsers -->
</script>

· Linda

WWWinda: un orchestration service pentru browsere WWW descrie o arhitectura web browser
extensibila care utilizeaza Linda ca si extensie pentru limbaj.

· Lisp

Lisp este un limbaj de procesare lisp creat pentru cercetarea inteligentei artificiale de John
McCarthy la MIT la sfarsitul anilor 50.

(DEFUN HELLO ()
"HELLO WORLD"
)

· Perl
Perl este descris ca un limbaj de scripting compilat. Combina elementele C cu unele elemente
din Unix scripting, si manipularea textului (exemplu sh, awk, sed) intr-un limbaj mai complet care
subsumeaza functionalitatea all into one, si este prin urmare mai rapid decat inaintasii sai.

#!/usr/local/bin/perl
print "Hello, world!\n";

· VBScript (Visual Basic Script)

VBScript este candidatul planificat al Microsoft pentru un limbaj de scripting Internet. Este
asptetat la mijlocul anului 1996, fiind un subset al Visual Basic, limbajul popular de programare vizuala,
fara capacitati de cladire GUI, cu operatiuni nesigure indepartate, si cu acces la alte aplicatii prin
intermediul OLE. VBScript are codul sursa incorporat in HTML, in cazul in care acesta este compilar si
executat in asociere cu bibliotecile runtime ale sale.

· VRML ( Virtual Reality Modeling Language)

VRML este un limbaj specializat pentru descrierea de lumi 3D prin intermediul lor. VRML este un
limbaj standard pentru a descrie astfel de scene in contextul Internet si World Wide Web. Cum tot mai
multe siteuri includ simulari 3D, VRML va deveni omniprezent.

Surse: Wikipedia, Google Images, Google.

S-ar putea să vă placă și