CATEGORII DOCUMENTE |
Java
Aparut in mai 1995, dezvoltat de Sun Microsystems si lansat de o inteligenta campanie de marketing, Java a facut inconjurul lumii ca fiind viitorul in programare. Java a fost prezentat ca un limbaj orientat obiect ce poate fi utilizat pe World Wide Web, oferind facilitati nemaiintalnite la alte limbaje.
Desi pare dezvoltat din C/C++, Java prezinta nu numai numeroase diferente (o parte din ele enumerate si aici) ci introduce si concepte noi ce vor reusi sau nu sa-si dovedeasca in timp utilitatea. Java animeaza paginile Web si face posibila includerea in acestea a aplicatiilor interactive complexe. Folosind ca purtator o pagina de HTML, un cod executabil de Java permite interactiune cu utilizatorul in sensul unor calcule, grafica sau obtinere de informatii de la un URL. In felul acesta executia se poate distribui intr-o retea. Interpretarea codului Java este realizata de browserul de Internet (Netscape, Explorer, HotJava). HotJava poate in plus si interpreta si afisa codul executabil Java. Un browser care nu recunoaste Java poate interpreta doar specificatiile MIME (Multiporpose Internet Mail Extensions), care includ o multime de formate de documente multimedia (imagini, sunet, video). Diferenta pentru un browser care stie sa interpreteze cod Java este recunoasterea unui element special hipertext
<CODE> APP </CODE>
Cand se incarca din retea o pagina de Web care contine codul APP, browserul stie ca un program Java numit applet este asociat paginii HTML. Browserul va prelua un fisier de informatii ce descrie modul de executie al appletului respectiv. Fisierul de informatii este compus din bytecodes (stream de bytes). Astfel, se poate vedea nu numai continutul unei pagini dar si executa o secventa de cod odata cu ea, care poate produce animatie, comunicare sau stabileste un protocol. Deci, se poate spune pe drept cuvant ca Java sporeste interactivitatea retelei Web, mai mult decat programele CGI, creand actiune si nu numai surfing in Web.
Limbajul Java si mediul sau de dezvoltare si executie au fost proiecate pentru a rezolva o parte dintre problemele actuale ale programarii. Proiectul Java a pornit cu scopul declarat de a dezvolta un software performant pentru aparatele electronice de larg consum. Aceste echipamente se definesc ca: mici, portabile, distribuite si trebuie sa lucreze in timp real. Limbajul luat initial in considerare a fost C++, dar o serie de trasaturi ale acestuia s-au dovedit a fi incompatibile cu necesitatile aplicatiei. De aceea a pornit proiectarea unui nou limbaj, Java, un limbaj asemanator cu C++ dar mult mai flexibil.
Java incearca sa ramana un limbaj simplu de folosit chiar si de catre programatori neprofesionisti, programatori care doresc sa se concentreze asupra aplicatiilor in principal si abia apoi asupra tehnicilor de implementare a acestora. Aceasta trasatura poate fi considerata ca o reactie directa la complexitatea considerabila a limbajului C++. Au fost indepartate din Java supraincarcarea operatorilor si mostenirea multipla. A fost introdus un colector automat de gunoaie care sa rezolve problema dealocarii memoriei in mod uniform, fara interventia programatorului. Colectorul de gunoaie nu este o trasatura noua, dar implementarea acestuia in Java este facuta folosind un fir separat de executie, pentru ca Java are incorporate facilitati de executie multifir. Astfel, colectarea gunoaielor se face de obicei in timp ce un alt fir asteapta o operatie de intrare-iesire. In plus, interpretorul Java este gandit sa lucreze pe masini mici. Interpretorul de baza are doar 40Kocteti iar interpretorul complet (cu multifir si biblioteci standard, practic un nucleu independent) are 175Kocteti. Java este orientat obiect. Cu el se pot crea clase si instante ale acestora, se pot mosteni date sau metode, etc. Singura trasatura specifica limbajelor orientate obiect care lipseste este mostenirea multipla, dar unii spun ca nici n-ar fi nevoie de asa ceva. In Java orice este un obiect, in afara de datele elementare. In plus, in Java lipsesc functiile. Ne raman desigur metodele.
Java este distribuit, avand implementate biblioteci pentru TCP/IP, HTTP si FTP. Aplicatiile Java pot accesa liber reteaua, folosindu-se de apelurile catre un set standard de clase. Java este robust. In Java legarea codului se face in timpul executiei si informatiile de compilare sunt disponibile pana in acel moment. Acest lucru implica faptul ca sistemul poate determina in orice moment pointerii declarati catre un anumit tip de obiect si care refera alte tipuri de obiecte. La fel, Java detecteaza pointerii zero care sunt folositi in operatii de acces. Indicii in tablourile Java sunt verificati permanent si tablourile nu se pot parcurge prin incrementarea unui pointer. De altfel, pointerii lipsesc aproape de tot din limbajul Java, ei fiind sursa unei mari parti dintre erorile obisnuite.
Java este un limbaj cu securitate ridicata. El verifica la fiecare incarcare codul prin mecanisme de CRC si prin verificarea operatiilor disponibile pentru fiecare set de obiecte. De altfel, limita dintre robustete si securitate este destul de fragila. La un al doilea nivel, Java are incorporate facilitati de protectie a obiectelor din sistem la scriere si/sau citire. Datele protejate intr-un obiect Java nu pot fi accesate, verificarea fiind facuta in timpul executiei.
O principala caracteristica a codului Java este independenta de platforma. Astfel, avand ca suport browserul care il executa, codul Java este independent de sistemul de operare de pe o anumita masina, sau mai mult, de caracteristicile hardware ale sale si deci foarte portabil. Compilatorul Java genereaza o secventa de instructiuni simple, definite pentru o masina virtuala Java. La executie interpretorul este cel care intelege si executa aceste instructiuni. Singura parte din Java care trebuie portata de pe o arhitectura pe alta este mediul de executie. In acest fel, aplicatii compilate pe SPARC de exemplu, pot fi rulate fara modificare pe Intel. Daca nu suntem multumiti de viteza de executie a unei aplicatii interpretate, putem cere interpretorului sa genereze automat codul specific masinii pe care lucreaza, obtinandu-se astfel un executabil adevarat care poate rula la viteza maxima. De obicei insa, se compileaza doar acele parti ale programului mari consumatoare de timp, pentru a nu se pierde flexibilitatea. Mediul de rulare insusi este scris in C si POSIX ceea ce il face extrem de portabil.
Java are inclus suportul pentru aplicatii multifir, inclusiv primitive de sincronizare intre firele de executie. Acest suport este independent de sistemul de operare, dar poate fi legat la facilitatile sistemului daca acestea exista.
Java este dinamic. Bibliotecile de clase in Java pot fi reutilizate cu mult mai mare usurinta. Cunoscuta problema a fragilitatii superclasei este rezolvata mai bine decat in C++. Acolo, daca o superclasa este modificata, trebuie recompilate si subclasele acesteia. Aceasta pentru ca obiectele noii clase au alta structura in memorie. In Java aceasta problema este rezolvata prin legarea tarzie a variabilelor (la executie). Asta inseamna ca regasirea se face prin nume si nu prin adresa fixa. Daca superclasa nu a sters o parte dintre vechile variabile si metode, ea va putea fi refolosita fara sa fie necesara recompilarea subclaselor acesteia. Aceasta elimina necesitatea actualizarii aplicatiilor generate de aparitia unei noi versiuni de biblioteca asa cum se intampla de exemplu cu MFC-ul Microsoft (si toate celelalte ierarhii C++).
JavaScript seamana cu Java in aceea ca suporta sintaxa expresiilor Java si poseda aproape toate trasaturile de control al fluxului insa, spre deosebire de Java care este un limbaj compilat, JavaScript este executat de interpretorul navigatorului. Java este de regula folosit de programatori pentru crearea de noi obiecte si appleturi, iar JavaScript este utilizat de autorii paginilor HTML pentru scrierea scenariilor care descriu comportarea acestor obiecte in functie de evenimentele utilizator. Limbajul JavaScript este asemanator cu applet-urile Java, fara tipurile statice si verificarea puternica a tipurilor oferite de appleturi. JavaScript a preluat majoritatea expresiilor sintactice si a constructiilor de control de baza. In contrast cu sistemul de clase Java (compilate pe server inainte de executare), scripturile Java sunt interpretate de catre client (Netscape), fiind bazate pe un numar mic de tipuri de date, reprezentand valori numerice, booleene si string. JavaScript are un model de obiecte, bazat pe instante simple, oferind si el capacitati semnificative. Scripturile Java ofera posibilitatea folosirii de functii fara cerinte speciale de declaratii. Functiile pot fi proprietatile obiectelor si se executa ca metode. Scripturile Java complementeaza appleturile Java prin expunerea proprietatilor folosite de appleturi. Folosind scripturi Java se pot obtine si stabili proprietati expuse pentru a interoga starea sau a schimba perfomanta unui applet sau plug-in. Programele Java sunt alcatuite exclusiv din clase si metodele lor. In cazul appleturilor, declararea claselor, scrierea metodelor fac programarea mai complexa decat in cazul scripturilor.
Spre deosebire de Java, in care programele exista numai in interiorul structurii unei clase (clasa fiind reprezentarea Java a unui obiect), JavaScript are functii si declaratii de sine statatoare.
Desi JavaScript are posibilitatea de a crea si a utiliza obiecte, implementarea obiectelor nu este considerata deplina deoarece nu ofera toate functiile de baza ale limbajelor orientate obiect, cum ar fi abstractia, mostenirea si incapsularea. Din cauza acestor limitari, limbajul JavaScript nu este capabil sa creeze obiecte de tipul celor disponibile in Java. A fost insa numit limbaj orientat obiect deoarece are posibilitatea sa utilizeze obiecte create cu limbaje de programare orientate obiect. Implementarea completa a paradigmei 'orientat-obiect' ar fi sacrificat insasi caracteristica principala a limbajului: simplitatea programelor scrise direct in paginile HTML si puterea de a interconecta obiecte care exista in mediul navigatorului. O sesiune JavaScript este initiata prin tagul:
<SCRIPT SRC='nume_script.js'> sau
<SCRIPT LANGUAGE='JavaScript'>
Programul este evaluat dupa ce pagina este incarcata. Functiile, declarate de regula direct in headerul documentului (<HEAD>) sunt stocate in memorie permitand executarea lor repetata atunci cand sunt declansate de evenimente utilizator. Declararea in header se face pentru a avea certitudinea ca programul este disponibil inainte ca utilizatorul sa declanseze vreun eveniment.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1693
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved