Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • OS
  • De ce aveți nevoie de Java pe un computer sau laptop? Am auzit termenii „Java Virtual Machine” și JVM

De ce aveți nevoie de Java pe un computer sau laptop? Am auzit termenii „Java Virtual Machine” și JVM

  • Traducere

Este ușor să uiți de semnificația unei tehnologii odată ce trece ca o cometă prin conștiința colectivă și moare de o moarte de foc dincolo de orizont. De exemplu, Cobol - cândva acest limbaj a fost iconic pentru o întreagă epocă, dar acum poate fi comparat doar cu peștele putrezit. În aceste zile, orice programator hipster îți va spune că Cobol este e nasol, o limbă veche și inutilă. Java poate fi următoarea victimă a judecăților „de actualitate”.

Vânzările de vârf ale cărților pe Java sunt departe în trecut. Utilitarele Java experimentate nu mai sunt suficient de sexy pentru coperțile revistelor. Java are deja 19 ani, iar dezvoltatorii progresivi sunt pasionați de astfel de modă și cele mai noi tehnologii precum Node.js, Objective-C, Dart, Go etc., întrebându-se: „Java? Mai este în viață acest artefact Web 1.0?

O căutare rapidă pe Dice.com arată că munca Java este abundentă. Dacă pentru iOS există aproximativ 2500 de oferte, pentru Java sunt peste 17000. Desigur, nu te poți baza în întregime pe aceste cifre. Dar faptul că pe Dice.com piața muncii în Java este potențial de șapte ori mai mare decât cea pentru cel mai recent iOS sugerează că „vechiul Java” se descurcă destul de bine.

Poate pentru că Java oferă un plan de afaceri mai bun decât să predea peste 30% din veniturile Apple și să vă încrucișați degetele și să sperați că aplicația dvs. se află în Top 25. În cele mai multe cazuri, Java rezolvă probleme care sunt mai utile decât a ajuta păsările furioase să se răzbune pe porci la fel de răi. Java este baza unui număr de platforme de dezvoltare software care oferă munca eficienta pe sisteme cu arhitecturi de cip diferite. Java ajută la rezolvarea problemelor dezvoltatorilor de sisteme server, client și încorporate.

Înainte de a uita contribuția enormă a Java la industria IT și rolul său astăzi, aș dori să vă împărtășesc 12 motive convingătoare pentru care Java nu doar supraviețuiește, ci prosperă în zilele noastre.

Nu-i spune revenire; Java nu a mers nicăieri, domină aici și peste tot.

Motivul nr. 1: de nescufundat în lumea politicii (adesea murdar)

Lumea tehnologiei nu a oferit Java nicio zi de odihnă; dușmanii săi erau numeroși și bine înarmați. În ciuda acestui fapt, limba a înflorit. Mulți dintre detractorii săi sunt surprinși că Java este încă în stare bună de sănătate. Ei au ascultat prea des opiniile celor care urăsc Java și nu au încercat să înțeleagă motivele succesului său.

Primul mare inamic al lui Java a fost Microsoft. Această companie a văzut în Java cel mai demn succesor al unității pe care la acea vreme doar o oferea MS-DOS. Redmond a criticat și a luptat împotriva Java încă de la început. Java nu a avut succes pentru dezvoltarea aplicațiilor desktop, în parte din cauza virtualului magic mașină java a început prea încet. În ciuda încetinirilor minore, în general, aplicațiile Java de pe Windows sunt destul de utilizabile.

Dintr-un motiv inexplicabil, Steve Jobs Nu mi-a plăcut niciodată Java. Chiar și atunci când Mac a fost în mare parte ignorat de toată lumea, cu excepția Adobe, Java nu a avut nicio șansă. Compatibilitatea Java ar putea stimula dezvoltarea Mac, dar pentru Apple, Java a fost întotdeauna un jucător de sprijin. (În general, telefoanele iOS funcționează mai bine decât Androidul meu, așa că poate Steve avea dreptate)

Java a suferit și de numeroase lupte interne interne. IBM a iubit limba, dar s-a luptat întotdeauna cu Sun. Decizia IBM de a numi minunatul său IDE „Eclipse” a fost primită destul de rece de oamenii Sun (băieții Sun nu au înțeles niciodată afacerile la fel de bine ca IBM).

În ciuda tuturor greșelilor creatorilor săi, Java și-a consolidat rapid poziția pe servere și a devenit potrivit pentru utilizare în segmentul desktop. Fiecare tehnologie trebuie să înoate împotriva curentului politic, iar în cazul Java, ea a perseverat, dovedindu-se a fi un instrument excelent pentru rezolvarea problemelor.

Motivul #2: Magia fluxurilor

Unul dintre punctele forte Mașina virtuală Java a fost întotdeauna capacitatea sa de a jongla mai multe fire cu ușurință. JVM-ul este optimizat pentru mașini mari multi-core și poate gestiona sute de fire fără probleme. Datorită acestei abilități, pe JVM-ul au apărut și alte limbi - se creează compilatoare și emulatori încrucișați care rulează pe JVM.

Aceste puteri magice sunt folosite de multe site-uri web cu trafic mare. Dezvoltatorii scriu cod pe laptopul lor și apoi implementează aplicația server puternic, unde valorifică puterea multi-core la întregul său potențial.

Ruby este unul dintre concurenții moderni ai Java. Are un aspect mai curat, mai real Limba engleză, sintaxă. Dar totuși, atunci când iubitorii de Ruby au nevoie de performanță înaltă, apelează la JRuby. Aceasta este o versiune de Ruby care rulează pe JVM, oferind mult mai mult performanta ridicata sub sarcini grele cu fire multiple. După ce au investit mult efort pentru a lucra în mod fiabil cu fire, inginerii Sun au luat decizia corectă.

Motivul #3: Java ca prim limbaj de programare

Java este limbajul principal pentru Advanced Placement Computer Science (AP) - program de antrenamentși examene pentru studenți liceuîn SUA). Aceasta înseamnă că Java este adesea primul limbaj de programare al studenților. Astfel, Java continuă să fie alături de ei „din gros și subțire”. Când studenții învață mai târziu noi limbaje de programare, le compară cu ceea ce este disponibil în Java. Chiar dacă schimbă Java cu altceva, opinia lor se bazează în continuare pe ceea ce au învățat „în clasa întâi”.

Java are multe avantaje pentru învățarea informaticii. Unii programatori urăsc specificarea tipurilor de date, deseori numind-o „rețea de siguranță” în programare. Poate suna ciudat, dar este metodă grozavă pentru începători să înțeleagă cum funcționează un computer. Cerința de a specifica tipuri de date îi obligă să se gândească structura interna sisteme.

Unele dintre cele mai noi limbi nu folosesc acolade deoarece este enervant pentru dezvoltatori să le formateze corect. Acest lucru poate fi adevărat în unele cazuri, dar aceleași acolade pot fi utile pentru programatorii noi pentru a înțelege imbricarea blocurilor de cod.

Cineva încearcă să-și promoveze propriul limbaj și, în majoritatea cazurilor, creează un limbaj cu o sintaxă mai puțin strictă decât Java. Acest lucru este grozav, dar sintaxa mai simplă și mai curată vine cu propriile sale pericole care apar mai târziu. Unii oameni simt că airbag-urile le limitează libertatea de programare, dar Java le insuflă obiceiuri bune încă de la început. În viitor, după ce au câștigat experiență, foștii „începători” vor putea să îmblânzească modele mai elegante și mai periculoase.

Motivul #4: (aproape) compatibilitate între platforme

Java nu a fost primul limbaj pentru scrierea aplicațiilor multiplatforme, dar a devenit cel mai popular. Acest lucru nu înseamnă compatibilitate deplină activată platforme diferite- biblioteci lipsă sau versiuni incompatibile bibliotecile vă vor îngropa cu ușurință codul. Nu puteți lua codul aplicației desktop compilat sub JRE 1.7 și îl rulați pe un telefon în Java ME. Nu se va întâmpla un miracol.

Sun și acum Oracle profită la maximum de multiplatformă. Când codul nu funcționează, de obicei este clar care este problema. Dacă utilizați versiuni corecte Java și ai suficientă memorie, codul tău va funcționa. Dezvoltatorii Java pot dezvolta o aplicație pe computerul lor și apoi o pot implementa pe platforma țintă, fie că este un telefon sau un server. Dacă este disponibil pentru compilator bibliotecile necesare, codul va funcționa. Este neprețuit.

Motivul #5: Succesul continuu al Java pe cipuri

Java nu a fost niciodată un instrument popular pentru dezvoltarea aplicațiilor desktop, dar a înflorit pe segmentul mobil al pieței, care a explodat recent. Platforma Android construit în Java până la capăt dispozitive Android se vinde mai bine decât iPhone.

Această dominație nu este nimic nou. O versiune redusă a limbajului și a mașinii virtuale cunoscută sub numele de Java ME a fost utilizată pe scară largă în multe așa-numite telefoane cu funcții, care se numără în milioane în întreaga lume.

Când puneți totul împreună, dominația Java este uluitoare.

Motivul #6: Blu-Ray

Limbajul Java, numit cândva „Oak”, era destinat receptorilor TV, unde Sun dorea să domine. Nu a fost posibil să se țină exact de plan, dar Java a reușit totuși să găsească un loc confortabil în sufragerie. Standardul Blu-Ray este construit în jurul Java și a oricui dorește să adauge continut suplimentar pe Blu-Ray va trebui să utilizați compilatorul Javac.

Discuri Blu-ray– acesta nu este doar un videoclip brut. Folosind codul Java, puteți modifica/adăuga funcții suplimentareși interactivitate. Discurile Blu-Ray sunt un amestec de video comprimat și bytecode Java.

Motivul #7: Bretele funcționează

Fanii limbajelor de lux precum Ruby, Python sau CoffeeScript privesc cu condescendență cum Java (și C) îi obligă pe programatori să introducă acolade pentru a marca în mod explicit începutul și sfârșitul fiecărui bloc de cod. Rotund, cret și uniform paranteza patrata- toate acestea sunt un blestem pentru acești dezvoltatori progresivi. (Nu îmi plac parantezele și încă sunt nostalgic pentru modul în care în unele versiuni de Lisp puteți închide toate parantezele deschise cu o paranteză pătrată)

Dar schimbarea punctuației nu elimină complexitatea, ci o ascunde. Utilizarea spațiului alb pentru a indica atașamentele vă obligă să vedeți intuitiv ceea ce nu puteți vedea. Indicarea imbricației cu spații funcționează excelent dacă expresia dvs. se potrivește pe o singură linie, dar devine groaznică dacă aveți mai multe niveluri de imbricare. Când scriu în Python, observ că număr și recalculez indentările. Doar pentru că codul arată ca limba engleză nu înseamnă că este la fel de ușor de înțeles ca o propoziție în engleză.

Motivul #8: Groovy

Dacă programatorii Java au nevoie de o sintaxă mai curată și mai simplă, tastare dinamică, acesta nu este un motiv pentru a rula în limbaje noi. Ei pot folosi Groovy, un hack Java cu un preprocesor care produce bytecode JVM. Limbajul este complet integrat cu Java - puteți apela în siguranță biblioteci Java din codul Groovy. E ca Java cu niște clopote și fluiere.

Această flexibilitate permite programatorilor să proiecteze independent soluții pentru problemele lor. Când Groovy este mai lent (acest lucru se întâmplă adesea când se utilizează apeluri de metodă dinamice), programatorul poate oricând rescrie bucăți de cod critice pentru performanță în Java de bază.

Motivul #9: JVM

JVM-ul a fost construit și optimizat pentru codul tastat cu un context static generat de compilatorul javac, dar de-a lungul timpului dezvoltatorii de limbaje și-au dat seama că JVM-ul poate rula cod scris în alte limbi decât Java. Dacă compilatorul produce bytecode Java corect, JVM-ului nu îi pasă în ce limbă a fost scris. Dezvoltatorii lui Haskell, Scala, Clojure și au sărit în vagonul „puternicei locomotive electrice Java” creându-și propriile compilatoare.

Apelul este evident. Sun/Oracle își face partea pentru a crea un mediu multiplatformă, iar toți ceilalți profită de el. Inginerii Sun/Oracle lustruiesc platforma și își fac griji cu privire la compatibilitate, iar noi scriem codul în limba care ne place.

Microsoft a împrumutat această idee (și multe altele) atunci când a creat C# și abordarea sa de a crea compilatoare pentru limbi care rulează pe C# VM (CLR). Programatorii C# spun că pot scrie limbi diferite– totuși, numai pe o VM sub Windows. Flexibilitate uimitoare!

Motivul #10: Revoluția NoSQL, construită în mare parte pe Java

Pe vremuri, o bază de date era o cutie neagră de nepătruns care stoca informații și răspundea la întrebări rapid și eficient. Apoi a venit revoluția NoSQL - programatorii și-au dat seama că își pot scrie propriile baze de date și pot adapta codul la nevoile lor. Majoritatea jucătorilor importanți de pe piața NoSQL au fost scrise în Java. Cassandra, Lucene, ElasticSearch, HBase și neo4j sunt doar câteva exemple. În plus, există câteva baze de date compatibile cu ACID scrise în Haskell care rulează pe JVM.

Aceste baze de date sunt de obicei open source și ușor de încorporat. Unii oameni le rulează ca servicii independente, alții își construiesc codul (sub formă de biblioteci) în propria lor stivă. În orice caz, statutul Java ca limbaj de lucru la nivel de baze de date asigură că dezvoltatorii Java vor avea mai ușor de înțeles și de a lucra cu aceste baze de date. Codificările sau separatoarele de linii nu vor deranja dezvoltatorii Java.

Motivul #11: Minecraft guvernează acest secol

În timp ce Ruby continuă să-și câștige cota de fani, următoarea generație se îndrăgostește de Java. De ce? Un cuvânt: Minecraft. Este scris în Java. Jucătorii tineri care doresc să extindă Minecraft trebuie să cunoască Java pentru a scrie pluginuri pentru Minecraft. Acest lucru garantează că „copiii” adulți vor scrie cu siguranță în Java.

Motivul #12: Open Source

Sun a fost întotdeauna unul dintre liderii în Sursa deschisa comunitatea, dar nu a ajuns niciodată să elibereze Java complet. Acest lucru nu i-a împiedicat pe programatorii Java să scrie o grămadă de biblioteci excelente și proiecte gratuite. licente deschise. Proiectul Apache continuă să ofere multe proiecte Java sub o licență care nu necesită prea mult în schimb.

Sun a încetat să mai elibereze cea mai mare parte a codului sub GPL în 2007. De atunci, Sun și noul său proprietar, Oracle, au încercat să fie buni manageri pentru limbajul Java. Sigur, Oracle și-a pătat reputația cu procese împotriva Google, dar în afară de asta, platforma poate fi considerată în mare măsură deschisă și gratuită.

Urătorii abundă, dar Java merge înainte

Java are cu siguranță partea ei de probleme. Cei care urăsc Java vor continua să saliveze și să-și bată tastaturile, postând comentarii rău intenționate pe Internet. Colectorul de gunoi poate provoca sughițuri și tremurături. Tastarea datelor este o corvoadă și nu poate elimina codul cu adevărat rău. Adnotările sunt prea complexe. Noile funcții din Java nu evoluează la fel de repede ca în trecut. Bretele crete adaugă ceva dezordine. Această listă continuă și continuă.

Cu toate acestea, niciuna dintre tehnologiile concurente nu a reușit să ajungă atât de larg și profund pe țărmurile industriei IT. În timp ce unele dintre problemele Java sunt destul de ușor de rezolvat, corecțiile introduc de obicei probleme proprii.

La urma urmei, acesta este unul dintre beneficiile Java. Poate fi schimbat și utilizat pentru aproape orice sarcină. Puteți înlocui majoritatea bibliotecilor cu propriul cod dacă aveți nevoie de altele speciale funcţionalitate. Java este un limbaj open source foarte flexibil. Indiferent de limitările de limbă și platformă, aproape orice problemă poate fi rezolvată cu relativă ușurință. Aceasta înseamnă că programatorii Java continuă să fie printre cei mai productivi. Chiar dacă cărțile Java nu mai domină lista de bestselleruri și Oracle nu lansează actualizări atât de des pe cât și-ar dori, Java continuă nu numai să trăiască, dar și să prospere.

Poate cea mai frecventă întrebare în rândul persoanelor care doresc să se apuce de programare, dar nu s-au hotărât în ​​ce limbă să o facă. Bătăliile de pe forumuri sunt încă dezlănțuite. Java sau C++? Sau poate Python? Să spunem imediat că aceste comparații sunt ca și cum ai compara verde cu rotund. Da, ceva limbile moderne programarea sunt similare între ele. Da, unii sunt mai buni la gestionarea memoriei decât alții. Dar la unele este mai bine să se pună în aplicare aplicatii server. Dar asta nu se datorează faptului că unele sunt mai bune decât altele.

Dar pentru că fiecare limbă este destinată scopurilor ei! Și în general: „Ura față de un limbaj de programare este invers proporțională cu cunoașterea acestui limbaj, cunoașterea și înțelegerea problemelor pentru care a fost creat și capacitatea de a-l aplica în practică.” ©

Dar să ne întoarcem la oile noastre. De ce ar trebui să-ți începi cariera cu Java și ce avantaje are față de alte limbaje orientate pe obiecte? Nu vom aprofunda în teorie și termeni nefamiliari pentru începători, ci pur și simplu vom prezenta câteva argumente pe care toată lumea le poate înțelege.

1.Prag scăzut de intrare.

Datorită simplității sintaxei și multor cărți și forumuri excelente, puteți începe să învățați Java de la zero, fără cunoștințe de programare. Începeți-vă călătoria cu cel mai simplu „Hello, World!” și încheiați cu o mulțime de cunoștințe suficiente pentru un post de stagiar într-una dintre numeroasele companii IT.

2.Disponibilitate.

… oriunde, oricând, pentru orice platformă. În plus, instrumentele de programare în Java sunt absolut gratuite, există o mulțime de ele (precum și informații despre ele). Pe lângă JDK, putem evidenția și Eclipse - un mediu de dezvoltare distribuit gratuit, care are o funcționalitate largă și un nivel decent de calitate (deși, conform lui Lurkmore, Eclipse este în continuare același editor de text, dar cu preferințe și mademoiselles. Este de asemenea, multi-platformă, dar mai multe despre asta mai târziu).

3. Un set de biblioteci de clase standard.

O mulțime de documentație și cursuri standard care vă vor face viața mai ușoară în timpul procesului de învățare și vă vor scuti de oboseala de a scrie metode simple, dar utilizate pe scară largă. Nu sunteți mulțumit de clasele standard? Luați totul în propriile mâini și creați (rescrieți) propria versiune a clasei sau metodei de care aveți nevoie într-o situație dată.

4. Multiplatformă completă.

O aplicație proiectată corespunzător va funcționa la fel de bine pe Windows, MacOS, Linux și multe alte sisteme de operare. Scrieți codul o dată, pentru un sistem. Și apoi lansați-l cu ușurință pe oricare altul.

5. Ultimul pe listă, dar poate cel mai important este nevoia la bursa muncii.

Nevoia de programatori Java nu sa diminuat de câțiva ani. În plus, este doar în creștere. Deoarece Cea mai bună decizie Pentru servere corporative baze de date - Java, veți fi angajat cu plăcere ca stagiar chiar și cu cunostinte de baza OOP (pentru educația și formarea ulterioară a dumneavoastră ca specialist IT) de la multe companii atât din Ucraina, cât și din străinătate.

În acest articol voi face o mică comparație a java cu alte limbaje de programare și voi descrie cele mai semnificative, după părerea mea, avantaje ale acestui limbaj.

1.Java este cel mai popular limbaj de programare/la cerere.

Și în viitorul apropiat, cred că acest lucru este puțin probabil să se schimbe pentru că...

2.scrie în Java aplicatii mobile (Pentru sistemul de operare Android, a cărui audiență în primăvara anului 2013 era de peste 162 de milioane de utilizatori), soluții web și desktop. Aș putea scrie separat despre fiecare categorie foarte mult timp; mă voi limita la un număr mic de numere și gândurile mele.
Dacă nu mă înșel, platforma Android a apărut în 2005, adică. are doar 8 ani (!) și în acest timp a reușit să cucerească un public atât de mare de utilizatori. Cresterea lui pentru Anul trecut este de aproape 80 la sută. Pot fi vizualizate statistici mai detaliate
Și citește despre Android
Aplicații desktop și web sunt deja create în Java un numar mare de ani și multe proiecte au nevoie de suport, clienții doresc să vadă versiuni noi, actualizări etc., ceea ce indică nevoia de dezvoltatori care să ofere suport. Java este, de asemenea, actualizat regulat (un alt plus :)) și oferă lumii noi tehnologii care sunt la mare căutare! Și, firește, avem nevoie de oameni care dețin aceste „lucruri”.

De asemenea, vreau să notez că sticla Google(un produs al unei companii despre care sunt sigur că va promova produsul în rândul maselor în viitorul apropiat) utilizați sistemul de operare Android! Cred că în timp util va fi un vârf în chestia asta și tinerii cu siguranță se vor strădui să-l cumpere, adică. audiența va crește semnificativ.

3. Java - limbaj de programare multiplatformă(denumit în continuare YAP). Acestea. programele care sunt scrise pot fi rulate pe diferite sisteme de operare (windows, linux...).

4. Dezvoltarea pe Lucru Java Colectarea gunoiului se face automat. Mie personal nu mi-a plăcut și am uitat să șterg memoria când programez în C (ca să fiu sincer, nici măcar nu o poți numi programare). Nu există nicio muncă de memorie! (Nici eu nu mă pricep prea bine cu indicatorii). Pentru a le pune într-un limbaj simplu, Este mai ușor să lucrezi cu Java, nu este nevoie să-ți pese și să-ți deranjezi anumite lucruri (limbaj de nivel mai înalt decât C\C++).

5. Unul dintre factorii principali pentru mine a fost salariul. Salariul unui programator Java este de obicei mai mare decât dezvoltatorul unei alte limbi, la acel moment era numere maxime, iar acum, dacă nu mă înșel, situația este aceeași.
Link-uri cu mai multe descriere detaliata situatii:

6. Java este ușor de învățat. Primul meu student, în puțin peste jumătate de an, a învățat practic Java de la zero până la un asemenea nivel încât a fost acceptat la cursuri plătite la o companie de IT, studiind mai ales o dată pe săptămână. De asemenea, în viitorul apropiat, am fost complice la modul în care băieții în 2 luni de la cursurile mele au învățat să programeze de la zero și au primit și un loc de muncă. Java este deosebit de ușor pentru cei care știu engleza. Și pentru cei care nu știu, recomand să începeți urgent să o studiați pentru că... după java acesta este primul limba necesară pentru majoritatea programatorilor =).

7. JAVA este o platformă gratuită și open source.
(Aici trebuie să explicăm puțin că Java este un limbaj, dar în același timp este o întreagă platformă - multe clase create de dezvoltatorii de limbi cu scopul de a-l dezvolta și de a-i simplifica munca).

Lista continuă. M-am concentrat pe acele lucruri care au fost cheie pentru mine; în viitor, poate îmi voi scrie gândurile mai detaliat, deși și acum s-au dovedit a fi mai lungi decât mă așteptam.

În articol nu am menționat rubinul din ce în ce mai popular pe șine. Din păcate, nu am lucrat cu el și nu pot spune nimic, știu că cererea și salariile cresc foarte repede.

Și mai multe adăugiri: desigur, java nu este singurul limbaj de programare cu asamblare automată gunoiul și aplicațiile pentru Android pot fi scrise, de exemplu, în C++ și mai sunt și altele limbi libere etc. și așa mai departe. DAR java se încadrează simultan în toate aceste categorii, spre deosebire de alte limbi.

Iubesc JAVA! =)


Acest articol va acoperi opt dintre cele mai comune mituri și concepții greșite despre Java.

Java este lent

E dragut vechi mit, dar odată ca niciodată era adevărat. Inițial, mașinile virtuale care rulau bytecode Java erau imperfecte și, în plus, limbajul Java și mașină virtuală au fost dezvoltate nu pentru computere în sensul obișnuit, ci ca un fel de mediu universal pentru diverse dispozitive, unde viteza programelor nu a fost critică, iar volumul de date a fost nesemnificativ. Diferența de viteză de a efectua aceleași sarcini între codul compilat obișnuit și codul Java interpretat ar putea fi de sute de ori.

Dar, în ciuda acestui fapt, în prezent viteza de bytecode pe mașinile virtuale moderne este inferioară celor mai bune compilatoare de cod de mașină cu doar câteva zeci de procente și, în unele cazuri, chiar le depășește! Poate o interpretare să depășească cu adevărat un program compilat? Desigur nu.

Cert este că bytecode Java nu mai este interpretat de mașina virtuală, ci este compilat și chiar optimizat, dinamic, pe baza datelor colectate. mașini virtuale date despre evoluția programului.

Conform testelor „rata de foc”, Java este destul de bun, dar ce zici aplicații reale? Din păcate, lucrurile nu merg atât de bine pentru aplicațiile personalizate. Motivul pentru aceasta este muncă lentă componente grafice sisteme.

Programatorii Java știu că limbajul are două specificații standard a lucra cu interfața cu utilizatorul- AWT și Swing. AWT este o implementare GUI specifică platformei. Viteza de operare a majorității implementărilor sale este destul de satisfăcătoare, dar numărul de funcții este foarte limitat. Biblioteca Swing a fost dezvoltată ca o alternativă la AWT. Se bazează în întregime pe capacitățile lingvistice, are multe funcții și este independent de platformă, dar viteza sa este scăzută.

Java este greu de programat

Mitul despre dificultatea programării în Java se bazează în mare măsură pe faptul că bibliotecă standard clasele are o structură arborescentă pe mai multe niveluri și include un număr mare de obiecte diferite și algoritmi aplicați. Dar datorită claselor standard, crearea și întreținerea aplicațiilor este simplificată.

Limbajul de programare Java este complet orientat pe obiecte. Sintaxa sa este similară cu C++. În același timp, funcționalitatea C++ redundantă care produce erori (cum ar fi supraîncărcarea operatorului sau moștenirea multiplă) este eliminată.

În loc de moștenirea multiplă, Java folosește conceptul mult mai simplu de „interfață”, adică o convenție numită pentru apelarea unui set de funcții. Java folosește tastarea strictă și nu va permite trecerea incorectă a parametrilor; în plus, este mult mai strict decât C++ cu privire la neglijența în codul sursă și, de exemplu, nu vă va permite să creați o metodă cu o secțiune de cod care este evident neutilizată. De asemenea, Java nu va compila un program cu o variabilă neinițializată.

Una dintre principalele surse de probleme la dezvoltarea programelor este utilizarea incorectă a memoriei dinamice, sau mai precis, eliberarea incorectă a blocurilor ocupate anterior. Java folosește conceptul de „colector de gunoi”. Aceasta înseamnă că programatorul nu trebuie să-și facă griji cu privire la eliberarea zonei de memorie ocupată. Sistemul însuși îl va adăuga memorie libera, când detectează că se leagă de la program la acest obiect nu mai.

Java folosește conceptul la modă de „excepții” pentru a semnala erori. O excepție este un eveniment special care semnalează o eroare într-un program. Cele mai multe limbaje de programare (și API-uri) transmit rezultatul apelului de funcție („rău” sau „bun”) apelantului pentru a semnala o eroare. Codul de analiză a valorii returnate ajunge să fie amestecat cu codul normal de execuție a programului, făcând programele dificil de citit și modificat.

Cu toate acestea, mai important, excepțiile nu numai că îmbunătățesc lizibilitatea textele sursă, dar și împiedică funcția de apelare să ignore eroarea. Programatorului i se cere fie să „prindă” excepția, fie să delege această responsabilitate funcției de apelare.

La cele de mai sus, putem adăuga că suportul pentru multitasking este „încorporat” în Java. Când creează aplicații multi-threaded, dezvoltatorul, de regulă, trebuie să folosească instrumentele sistemului de operare (semafore, mutexuri) pentru a sincroniza sarcinile. Oferte Java solutie universala pe baza construcţiilor limbajului propriu-zis.

Pentru a rezuma, putem spune că în ceea ce privește complexitatea programării, Java nu poate fi comparat cu C++ sau Pascal. Capacități de limbaj dezvoltate, suport pentru colectarea gunoiului, o singură bibliotecă de clasă standard, control de către compilator - toate acestea simplifică semnificativ crearea aplicațiilor și accelerează depanarea acestora.

Java funcționează la fel peste tot

„Scrie o dată – fugi oriunde.” A doua parte a acestui slogan de la creatorii Java conține declarația că un program Java funcționează la fel peste tot. Din păcate, în realitate totul nu este atât de simplu. Mașini Java de la diverse companii diverse platforme NU 100% compatibile între ele.

Diferențe în funcționarea mașinilor Java pe diferite platforme există atât în ​​implementarea multitasking-ului, cât și în funcționarea bibliotecii ferestre (AWT). Programele Java complexe trebuie să fie rulate pe diferite platforme pentru a vă asigura că totul este în regulă. În general, chiar și pe aceeași platformă, dar pe mașini diferite, programe similare pot fi executate în moduri diferite.

De exemplu, un programator poate întâlni o situație în care codul său se comportă diferit pe o mașină multiprocesor decât pe o mașină cu un singur procesor. O mențiune specială trebuie făcută pentru mașina Java creată de de către Microsoft(denumit în continuare MS JVM). Poartă numele Java nu în întregime legal (ceea ce a fost confirmat de o decizie judecătorească recentă).

În MS JVM nu veți vedea suport pentru tehnologiile RMI sau CORBA, dar aici puteți utiliza obiecte ActiveX - o tehnologie care este specifică doar platformei Windows și nu există nicăieri altundeva. Microsoft a extins biblioteca standard de clase Java cu tipuri care reflectă unele dintre caracteristicile platformei Windows.

De asemenea, nu trebuie să uităm de diferitele viteze de operare ale mașinilor Java. Această diferență poate cauza întârzieri inacceptabile ale programului sau alte probleme. Concluzia de mai sus este simplă: atunci când creați programe Java, ar trebui să le testați pe o gamă largă de platforme și să nu utilizați extensii de limbaj non-standard.

Java este un limbaj de programare

Există o părere că Java este doar un limbaj de programare. Dar aceasta este doar o concepție greșită. Da, Java este și un limbaj de programare. Aceasta include o întreagă gamă de alte tehnologii.

Java este o platformă, modernă platforma software, care în general încearcă să înlocuiască toate funcțiile sistemului de operare. Poate că acest lucru se va întâmpla în viitorul apropiat (deși încercări similare au fost deja făcute, dar eșuate). Principalul punct forte al Java este independența platformei, adică independența software rulează pe o mașină virtuală, de la hardwareși sistemul de operare.

De remarcat că pt Platforme Java sunt cateva zeci limbi diferite programare. Unele dintre ele pot fi compilate de compilatorul Java în sine, în timp ce altele pot lucra direct cu mașina virtuală.

Java este sora mai mică a lui C++

Limbajul de programare Java își are cu adevărat originile în C++? Mai probabil nu decât da. Ideea lui Sun a fost de a face Java mai ușor de învățat, făcându-i sintaxa similară cu cea a celui mai comun limbaj de programare. Acest lucru trebuia să stimuleze și să simplifice în cele din urmă tranziția la Java pentru programatorii C.

În același timp, Java conține idei și mecanisme extrase dintr-un număr de alte sisteme și limbaje de programare. Luați, de exemplu, controlul depășirii matricei (Pascal). Sau faptul că compilarea programelor Java este separată, clasele sunt împărțite în pachete. Aceasta este una dintre variantele programării modulare (cum ar fi, de exemplu, în Modulul-2), care diferă de conceptul de compilare independentă a fișierelor C++.

Unele inovații au fost preluate din limbi și sisteme necunoscute publicului larg.

De exemplu, principiul interfeței de clasă a fost transferat din limbajul Objective C dezvoltat de NeXT. Mecanism de procesare situatii exceptionale aproape complet împrumutat de la Modula-3. Principiile implementării interne a unei componente atât de importante a limbajului Java precum „colectarea gunoiului” sunt extrase în primul rând din Lisp. Unele limbi „normale”, precum Eiffel, Modula-3, Oberon, au avut și ele inițial acest mecanism.

Rezumând cele de mai sus, putem concluziona că Java a absorbit un număr mare de idei și abordări din diferite sisteme de programare, inclusiv din sintaxa limbajului C++.

Java este bun numai pentru applet-uri și web

Java este indisolubil legat de applet-uri. Într-adevăr, appleturile sunt o parte integrantă atât a limbajului, cât și a platformei Java în ansamblu. În plus, crearea lor este un pas de marketing de succes de către Sun. Fără applet-uri, lumea nu ar fi aflat atât de repede despre Java.

Ideea de a încorpora aplicații în documente hipertext (HTML) nu este atât de nouă. Multe companii au încercat să-și avanseze tehnologiile în acest sector de piață, dar în prezent Java are puțini concurenți aici. Astăzi este, probabil, tehnologia JavaScript, ActiveX și Flash. Ultimele două, însă, funcționează doar sub Windows.

Ce atrage programatorii spre Java? Model de securitate puternic cod unic pentru toate platformele, oportunități ample de utilizare a bibliotecilor gata făcute, ușurință în programare. În realitate, totul nu este atât de roz pe cât ne-am dori. Modelul de securitate cu siguranță nu este rău, dar implementarea lui de către diferiți producători variază. Ca rezultat, este posibil ca codul care funcționează bine într-un browser să nu funcționeze în altul.

Ei bine, dacă intră Browsere Java Da, atunci cum rămâne cu aplicațiile care rulează fără browser, dar sub controlul unei mașini virtuale direct în sistem de operare? Situația aici este similară; fiecare sistem de operare modern are deja instalată o versiune a JVM-ului. Și utilizatorii îl pot folosi pentru a rula aplicațiile lor JVM existente, deși majoritatea nici măcar nu sunt conștienți de această posibilitate.

Nu trebuie să uităm de aplicațiile server, inclusiv accesul la baze de date și aplicații de rețea. Și acesta este principalul domeniu de aplicare a tehnologiilor Java în timp dat. Această clasificare include nu numai aplicațiile middleware, ci și aplicațiile server în sine.

Și dacă adăugăm și aici aplicații client sau chiar applet-uri, apoi se dovedește Set complet pentru automatizare.

Platforma Java este mai mult decât simple applet-uri. Este folosit peste tot, de la client la server. Și dacă vă amintiți că Java este folosit nu numai pe computere, ci și pe telefoanele mobile, aparate electrocasnice si smart carduri, se pare ca a patruns deja in toate sectoarele pietei unde folosirea programarii este cel putin posibila.

Java este ideal, nu are nevoie de îmbunătățiri

Java a fost creat în 1994-1995. Până în acest moment, tehnologia informației a suferit o dezvoltare intensivă, atât datorită „personalizării” computerelor, cât și parțial datorită răspândirii Internetului. Autorii lui Java au încercat să întruchipeze în el toate realizările industriei informaționale, dar idealul, după cum știm, este de neatins. Unele lucruri au fost încă omise, inclusiv verificarea condițiilor pentru execuția corectă a programului, „programare în baza unui contract”, șabloane etc.

C++ are un verificator de condiții numit asset. Această funcție verifică o condiție specificată de programator pentru „adevărat”. Dacă condiția este falsă, asset oprește programul și indică faptul că au fost încălcate condițiile de funcționare acceptabile, iar compilatorul renunță la apelurile la asset atunci când creează versiunea finală a programului. Nu există o astfel de caracteristică în Java. Desigur, puteți verifica condițiile și puteți genera excepții pe baza acestora, dar, ca urmare, toate aceste verificări vor ajunge în codul executabil al programului.

Există o tehnologie mai puternică decât un activ. Acesta este Design By Contract, „programare sub contract”, permițându-vă să simplificați crearea aplicații mari, care utilizează codul creat anterior. Nici Java nu acceptă programarea contractuală.

Șabloanele de clasă în C++ au capacitatea de a genera cod „pentru” specificat de utilizator clasa (de fapt, dezvoltatorii Java au abandonat destul de deliberat șabloanele, crezând că acestea mai multe probleme decât bine. - Aprox. ed.). O colecție de obiecte implementată folosind un șablon se va compila de fiecare dată pentru fiecare tip de obiect stocat în acea colecție. O colecție tipică de obiecte în Java stochează instanțe ale clasei Object, strămoșul tuturor claselor Java.

Programatorul, atunci când preia obiecte dintr-o colecție, este forțat să folosească un tip cast pentru a-și folosi clasa „de lucru”. Această aplicație funcționează bine până când un alt programator adaugă accidental o instanță a unei clase complet diferite la colecție. Atunci eroarea nu apare în etapa de compilare, ci apare mai târziu, când instanța este preluată și se încearcă să o arunce la tipul greșit.

În prezent, Java continuă să se dezvolte. Este posibil ca în viitorul apropiat să vedem în el unele dintre capabilitățile menționate mai sus.

Java costă mulți bani

Este tehnologia Java cu adevărat scumpă? Totul depinde de complexitatea software-ului dezvoltat. De exemplu, pentru o aplicație mică (una până la trei luni-om), Java poate să nu coste nimic. Desigur, această tehnologie nu este complet gratuită. Un programator Java calificat costă bani.

De asemenea, este nevoie de instrumente de proiectare a aplicațiilor, de profilare a programelor Java și de alte instrumente utilizate pentru a crea proiecte mari. Dar, în general, concurența pe piață pentru astfel de software este destul de mare și, prin urmare, prețurile sunt în scădere. Alegerea este variată, iar dezvoltatorul nu este legat de o anumită companie.

Java este un limbaj de programare și o platformă de calcul care a fost lansată pentru prima dată de Sun Microsystems în 1995. Există multe aplicații și site-uri web care nu funcționează fără Java instalat, iar numărul acestor site-uri și aplicații crește în fiecare zi. Java este rapid nivel inalt protectie si fiabilitate. Din computere laptop la centre de date, de la console de jocuri la supercalculatoarele folosite pentru cercetarea științifică, de la celulare la Internet - Java peste tot!

Este posibil să descărcați Java gratuit?

Da, Java poate fi descărcat gratuit. Descarca ultima versiune pe site.

Dacă dezvoltați embedded sau aparat de uz casnicși doriți să utilizați tehnologiile Java în el, contactați specialiștii Oracle și obțineți informatii detaliate despre integrarea Java în Tipuri variate dispozitive.

De ce este necesar să faceți upgrade la cea mai recentă versiune de Java?

Cea mai recentă versiune de Java conține îmbunătățiri importante care îmbunătățesc performanța, stabilitatea și securitatea aplicațiilor Java care rulează pe computerul dvs. Instalarea asta pachet gratuit actualizările vor asigura că aplicațiile Java instalate pe computerul dumneavoastră rulează în siguranță și eficient.

DETALII TEHNICE
Am auzit termenii Java Virtual Machine și JVM. Asta e software Java?

Mașina virtuală Java este doar un aspect al software-ului Java care este utilizat atunci când comunicați prin Internet. Mașina virtuală Java este încorporată direct în descărcarea software-ului Java și este utilizată pentru a susține rularea aplicațiilor Java.

Cele mai bune articole pe această temă