Cine ar fi crezut ca Limbajul JavaScript sa cucereasca lumea ?
Totul pare rupt dintr-un film SF.
Sa ne intoarcem putin in trecut si sa vedem pasii prin care au trecut limbajele de programare.
Initial era ASM - limbajul de asamblare, dependent de arhitectura hard si foarte greoi (La scris).
Sigur aveai in mana toata puterea masinii dar prea multe POP, PUSH … nu prea dadeau bine.
Nu era de ajuns, trebuia ceva mai mult trebuia ceva portabil independent de hard si raspunsul a fost Limbajul C.
Probabil limbajul C ramane cel mai mare pas facut in aceasta evolutie restul palind prin zorzonele si floricele.
Ce face limbajul C ? Aduce portabilitate la nivel de arhitectura si odata cu UNIX aveai practic un mod unitar de tratare a perifericelor si access la hardware.
Prima abstractizare a fost facuta, nu mai conta hard-ul conta doar sistemul de operare.
A fost de ajuns ? NU!
UNIX a palit in fata Windows si ca sa scrii un program pentru atatea sisteme de operare e prea mult.
A urmat Java, “scrie o data si ruleaza oriunde” care sigur la nivel declarativ suna bine dar cred ca a avut nevoie de 10 ani ca sa se vada rezultatele.
Totul ruleaza in masina virtuala care este dependenta de sistemul de operare dar care asigura programelor
portabilitatea de la o platforma la alta.
A fost de ajuns ? …
Odata cu explozia internetului, totul se muta in browser, browser care acum devine un sistem de operare.
Ce avem ?
Hard peste care sta Sistemul de operare si pe care sta un Browser, iar in browser avem aplicatii. Care aplicatii ?
Intrebare: In ce limbaj sa scriem acest program ?
Java, Dar avem nevoie de masina virtuala Java pe toate sistemele de operare.
Flash, Dar avem nevoie de plug-un de Flash in toate browserele.
C#, e o gluma
Si la urma urmei ce aplicatii pot scrie eu in Browser ? Nu va egala niciodata una de pe desktop! Oare ?
Hai sa vedem ce cuvinte cheie avem noi aici:
1) Hardware
2) SO Sistemul de Operare
3) Browser-ul
4) Limbajul de programare (hai sa-l impart)
4a) Limbaj de nivel inalt, strong type
4b) Limbaj de nivel jos (Un fel de cod masina in browser)
5) Access nativ la hardware din browser (DIN BROWSER! Ce tampenie mai e si asta ?)
Gata e de ajuns, sa dam cheia problemei:
1) Hardware
Telefonul mobil, PC-ul, ce importanta mai are ?
2) SO Sistemul de Operare
E Android si e bazat pe Linux
3) Browser-ul
Oricare vrei IE, Safari, Opera, Firefox dar important e ca exista un “push” si acesta este “chrome”
4) Limbajul de programare
4a) Limbaj de nivel inalt, strong type
Acesta este Java
4b) Limbaj de nivel jos
Acesta este JavaScript
Nu intelegi nimic ? E simplu, scrii programul in Java si compilezi in JavaScript, asa cum scriai in C si compilai in limbaj masina.
Asa cum era scris in Java si compilai in BiteCode.
GWT e raspunsul ( e tot de la Google)
5) Access nativ la hardware din browser
http://code.google.com/p/nativeclient/
In toata povestea asta exista un “Calcaiul lui Ahile”, ceva ce va face ca toata povestea asta sa dea roade:
Se chiama “Gears” si e un plug-in ce va face din browser ce vrea “muschiul lor” sa faca.
Toate au un nume in spate si se cheama Google.
Asta e frumos la ei au un plan pe care-l urmeaza.
Restul sunt mici bucati din puzle mai mult sau mai putin relevante.
De ce toata povestea asta ?
Simplu, pentru-ca lumea se schimba, nu mai este ce a fost si devine altceva.
E criza, dupa orice criza lumea se schimba, regulile jocului se schimba si ele.
Concluzia e simpla: Profita de oportunitatea asta.
Tica2TM
Tags: Android, Chrome, Gears, Google, GWT, Java, JavaScript, Tica2
January 13th, 2009 at 6:34 pm
Foarte frumos structurat. Chiar mi-a placut.
Am doua observatii:
-sintagma “Calcaiul lui Ahile” este folosita pentru a sugera o vunerabilitate intr-un sistem foarte solid in rest. Vulnerabilitate care poate fi critica si care poate compromite intreg sistemul.
-unde sunt datele stocate? Datele pe care le folosesc aplicatiile scrise in acele metalimbaje. Ce motor de gestionare a bazelor de date e folosit si unde il plasezi in ecuatia asta? Sa nu imi spui de fisiere XML independente. Trebuie un motor si inca unul performant. Acela (inca) nu este browserul. Partea de aplicatie propriuzisa (pentru majoritatea aplicatiilor) este un layer destul de subtire in comparatie cu partea scrisa pentru serverul de baze de date.
January 14th, 2009 at 12:28 am
@Gigi Contra: “Calcaiul lui Ahile” e dupa mine acel punct slab al celorlalte browsere pe care Google le va controla. In sensul asta am atins subiectul.
Datele sunt pe server sau offline pe computer.
“motor de gestionare a bazelor de date” pe server e ce vrei tu (mySql, Oracle, etc.) Pe partea de browser este SQLITE
Tica2TM