De ce JavaScript?

Software-ul modern migrează masiv către platforma web. Dar, în timp ce tendința e aceeași în toată lumea, implementările variază substanțial. Pe partea de server, există cele nai diverse framework-uri și o serie de limbaje de programare precum PHP, Java, .NET. Pe partea de client, lucrurile sunt ceva mai simple, cu framework-uri ce manipulează un mediu similar DOM al browser-elor web.
O aplicație web se bazează pe interfața (GUI) browser-ului și pe motorul de procesare al acestuia pentru a-și rula partea client. Aceste interacțiuni au fost standardizat ca Modelul Document Obiect (DOM) 2 sau 3. Pentru a implementa partea client, este necesară cunoașterea limbajului de markup HTML pentru structură, a limbajului de stiluri CSS pentru aspect și a limbajului JavaScript pentru comportament la client. Dar, în timp ce cunoașterea acestor trei domenii este obligatorie pentru asigurarea unei experiențe complete utilizator, mecanismele ce le susțin vin toate dintr-un singur model pe componente.

JavaScript – limbajul DOM

Dezvoltatorii de browser-e au adoptat conceptul de GUI orientat pe evenimente din munca anterioară la sistemele de operare GUI. Nu-i astfel de mirare că și implementarea dezvoltării de browser-e partajează o serie de concepte de programare cunoscute anterior precum OOP, COM, RPC, cozi de evenimente, propagarea la suprafață a evenimentelor (event bubbling) și așa mai departe. Dacă luăm de exemplu un browser generic scris în Java, motoarele de structură, stil și comportament vizează aceleași componente runtime GUI scrise în Java OOP. Aceasta înseamnă că toate aspectele unei componente pot fi controlate complet utilizând limbajul de dezvoltare (adică Java). Dar din punct de vederea al browser-ului web suntem constrânși la a utiliza limbaje standard de markup, de stil și de comportament. Analog cu cazul interfețelor COM, acestea sunt diverse limbaje care accesează aceleași componente runtime – GUI-ul browser-ului. Luate separat, HTML, CSS și JavaScript au un grad de acces la componenta runtime limitat și, s-ar părea că este nevoie de toate trei pentru a controla în întregime partea client a unei aplicații web. Dar asta nu e adevărat …
În lumea aplicațiilor web, HTML joacă rolul unui limbaj de structurare a datelor precum XML. El descrie mai ales layout-ul componentelor aplicației și, cu grad limitat de succes, proprietățile lor runtime. În lumina modelului de dezvoltare a browser-ului prezentat anterior, acesta se manifestă ca limbajul de scripting “al omului sărac” folosit pentru a accesa motoarele de structură și de desenare ale browser-ului.
CSS este un limbaj de stil global cu utilizare extinsă și în afara platformei web. În cazul browser-ului, acesta accesează motoarele de structură și de desenare cu și mai puțin control decât HTML. Dar este esențial pentru a asigura modelul de scară largă al separării preocupărilor, în care sarcinile de designer și de programator sunt clar separate.
În vreme ce HTML și CSS pot fi considerate limbaje de scripting cu un anume nivel de control asupra GUI-ului browser, JavaScript este limbajul de scripting cel mai apropiat de limbajul implementării GUI și joacă un rol similar cu cel al limbajelor de scripting pentru interfețele COM. Toate trei aspectele de structură, stilizare și comportament pot fi controlate folosind JavaScript. Aceasta se întâmplă deoarece JavaScript urmărește în modul cel mai apropiat modelul bazat pe evenimente al implementării browser-ului. La o ptivire mai atentă, se poate genera o întreagă aplicație folosind javaScruot sau cu un framework de nivel ridicat precum GWT care la rândul său generează JavaScript-ul necesar.

JavaScript înseamnă putere în paranteze

Limbajele moderne de programare oferă biblioteci cu grad înalt de abstractizare precum STL pentru utilizarea structurilor de date, iteratorilor, algoritmilor și așa mai departe. O sarcină uzuală este aceea de a organiza și de a accesa colecții eterogene de obiecte. Aceasta se realizează în general folosind perechi identificabile prin nume de tip cheie-valoare denumite hash-uri. Chiar și membrii clasici ai structurilor sau ai claselor pot fi priviți ca proprietăți cu nume ce indică spre anumite valori. Domeniul hash-urilor este unul din câmpurile la care JavaScript excelează. Implementarea este cât mai simplă, orice obiect putând fi considerat un hash al proprietăților sale. În JavaScript, orice obiect care nu este o variabilă locală poate fi accesat utilizând obiectul rădăcină (window) și p serie de șiruri de caractere sau de numere întregi.
Exemplu:

// stocarea unei configurații
window.myConfig = {
	title: 'Sample app',
	layout: {
		align: ['left', 'top'],
		coordinates: [0, 0, 500, 200],
		doubleFrame: true
	}
};
// accesarea celei de-a patra coordonate folosind doar notația paranteză
var nForth = window['myConfig']['layout']['coordinates'][3];
// această proprietate poate fi stocată în și citită dintr-un fișier text ex.
// myConfig.layout.coordinates.3 = 200

Aceasta oferă limbajului o putere imensă pentru generarea și manevrarea secvențelor de cod plecând de la structuri de date. Pentru majoritatea cazurilor de generare de cod, cu ajutorul notației de tip paranteză dreaptă, poate fi complet evitată folosirea funcției eval().
JavaScript are și construcția for .. in ce iterează peste proprietăți cu sau fără nume cum o fac și iteratorii altor limbaje. Pentru momentul la care JavaScript a fost dezvoltat. Facilitățile limbajului erau revoluționare. Pentru zilele noaste, cu puțină atenție, JavaScript poate funcționa la paritate cu limbajele moderne OOP.

ECMA, eliberează JavaScript!

În comparație cu limbajele moderne OOP de scripting precum Python sau PHP5, lui JavaScript îi lipsesc câteva trăsături care fac ciclul de dezvoltare pregătit pentru scară largă. Prima chestiune cunoscută este lipsa unui model de moștenire bazat pe clase, adresată de ECMA prin draft-uri ca Harmony, dar surprinzător nu încă standardizat. P altă cerință de maturitate este implementarea algoritmilor standard și a bibliotecilor de bază cum are de ex. PHP. Dar am observat în topicul anterior cum notația paranteză facilitează lucrul cu hash-uri și iterearea colecțiilor. O altă facilitate cerută de mediile prezente este p formă compilată a limbajului independentă de arhitectură cum au Java sau .NET. Dar în toate browser-ele majore sunt implementate Compilatoare JIT pentru JavaScript și e doar o problemă de coordonare politică până când echipele de dezvoltare vor propune un draft privind această facilitate. Deși din rațiuni de securitate, codul sursă JavaScript trebuie să fie disponibil pentru clienții web, o formă standard compilată va aduce JavaScript la maturitatea limbajelor preferate în business-ul software. Metodele curente de compresare sau obfuscare a codului sursă JavaScript sunt doar un mod de a pretinde această cerință necesară. O formă standard compilată adaigă un nivel superior de protecție a dreptului de autor în comparație cu simpla semnare a codului sursă original și ca fi mult mai rapid de descărcat și de executat.
Acestea sunt doar câteva cerințe ce fac JavaScript să treneze față de alte platforme de dezvoltare. Dar motivul întârzierii ar trebui identificat în interesele corporatiste ale jucătorilor majori din lumea dezvoltatorilor. Doar prin vocea unită a comunității poate fi depășită opacitatea comisiei de standardizare și să se impună până la urmă aceste cerințe populare. Și, dacă ECMA nu poate rezolva problema, putem crea noi standardul concret și util în locul lor. Priviți doar la multitudinea implementărilor de sisteme de clase pentru acest util limbaj prototipal.

JavaScript poate servi!

O aplicație web modernă are o parte pe server care asigură stabilitatea și securitatea procesării datelor. Cele mai folosite platforme pentru partea de server sunt PHP, Java și .NET. Toate sunt framework-uri mature cu limbaj de programare la zi și o suită puternică de biblioteci. Între acestea, PHP și-a câștigat popularitatea datorită bibliotecilor integrate de tip “bun la toate” ce par să fie rețeta de succes pentru o suită de server utilă.
Până în anii recenți, JavaScript era limitat la emisfera părții client din cauza absenței unei suite de server utile. Aceasta nu mai este o problemă de la recuperarea rapidă de teren de către Node.js care urmărește să aducă o popularitate ca cea a PHP pentru JavaScript pe partea de server. Când acest proiect reușește, JavaScript poate fi folosit unitar atât pe partea client câr și pe cea de server. Dezvoltatorii se pot concentra pe logica de business în locul învățării unor limbaje diferite doar pentru a putea să realizeze o aplicație.

Concluzie

JavaScript a fost inventat ca un limbaj web evoluționar cu colectarea memoriei alocate, manipulare de nivel înalt a șirurilor de caractere și a hash-urilor, motor de expresii refulare și o serie de trăsături utile ce nu se limitează la programarea web.
Este doar contextul jucătorilor majori ce a prejudiciat drumul său ca limbaj de programare global, dar capturarea de către aceștia la platforme proprietare nu mai poate continua în epoca actuală.
Folosiți JavaScript și susțineți-l ca limbaj universal de programare și lumea va adera la indeniabil!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Copyright © 2012 - ZB Constructorul Zonal
Frontier Theme