Opt mituri despre Java. Aplicații server în servicii financiare. Este posibil să descărcați Java gratuit?

  • 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 zilele noastre, orice programator hipster îți va spune că Cobol este o prostie completă, un limbaj vechi ș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 tehnologii la modă și actuale 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 concepute pentru dezvoltare softwareși asigurarea funcționării eficiente 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 fost un succes pentru dezvoltarea aplicațiilor desktop, în parte pentru că magica mașină virtuală Java a fost prea lentă pentru a porni. În ciuda încetinirilor minore, în general, aplicațiile Java de pe Windows sunt destul de utilizabile.

Dintr-un motiv inexplicabil, lui Steve Jobs nu i-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șină virtuală Java a fost întotdeauna despre 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 performanțe mult mai rapide atunci când sarcini grele cu multe fire. 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 de liceu în Statele Unite). 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 populare limbi nu folosesc bretele pentru că este enervant pentru dezvoltatori să se ocupe de ele. formatare 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 cred că airbag-urile își limitează libertatea în programare, dar Java le insuflă obiceiuri bune de la bun î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- bibliotecile lipsă sau versiunile incompatibile ale bibliotecilor 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. Dezvoltatori Java pot dezvolta o aplicație pe computerul lor și apoi o implementează 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.

Discurile Blu-Ray sunt mai mult decât videoclipuri brute. Puteți modifica/adăuga funcționalități suplimentare și interactivitate folosind codul Java. 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 JVM. limbajul 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 și proiecte excelente sub licențe deschise gratuite. 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, Soarele și al lui noul proprietar, Oracle, a î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 se poate elimina cu adevărat cod prost. 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 funcționalități specifice. 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ță. Înseamnă că Programatori Java continuă să fie una dintre cele mai productive. 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.

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 cândva era adevărat. Inițial, mașinile virtuale pe care rula bytecode Java erau imperfecte și, în plus, limbajul Java și mașina virtuală nu au fost dezvoltate pentru computere în sensul obișnuit, ci ca un fel de mediu universal pentru diverse dispozitive unde viteza programelor nu era critică, iar volumul datelor era 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 de mașinile virtuale despre progresul programului.

În ceea ce privește testele de viteză, Java este destul de bun, dar cum rămâne cu aplicațiile reale? Din pacate, cu aplicații personalizate lucrurile nu merg atât de bine. Motivul pentru aceasta este muncă lentă componente grafice sisteme.

Programatorii Java știu că limbajul are două capabilități standard de interfață cu utilizatorul - AWT și Swing. AWT este o implementare specifică platformei GUI utilizator. 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 complexitatea programării Java se bazează în mare măsură pe faptul că biblioteca de clase standard are o structură arborescentă pe mai multe niveluri și include un număr mare de obiecte și algoritmi de aplicație diferiț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ă nu mai există legături din program către acest obiect.

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 codului sursă, ci ș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. Caracteristici avansate limbaj, 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șinile Java de la diferite companii pe diferite platforme NU sunt 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 diferit.

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 specifică doar pentru Platforme Windowsși nu există în altă parte. 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.

Trebuie remarcat faptul că există câteva zeci de limbaje de programare diferite pentru platforma Java. 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 opțiuni programare modulară(ca, 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. Mecanismul de gestionare a situațiilor de excepție este aproape complet împrumutat din 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 puternic securitate, cod unic pentru toate platformele, oportunități ample pentru utilizarea bibliotecilor gata făcute, ușurință de 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ă browserele au Java, atunci cum rămâne cu aplicațiile care rulează fără browser, dar sub controlul unei mașini virtuale direct în sistemul 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 aceasta este principala zonă de aplicare a tehnologiilor Java în acest moment. Această clasificare include nu numai aplicațiile middleware, ci și aplicațiile server în sine.

Și dacă adăugați aplicații client sau chiar applet-uri la aceasta, obțineți un kit complet de 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 în celulare, 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 de informație a primit 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 permise, în timp ce compilatorul la crearea versiunea finala apelurile de program la activ sunt eliminate. 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.

Mai sunt tehnologie puternică decât un activ. Acesta este Design By Contract, „programare sub contract”, permițându-vă să simplificați crearea aplicații mari, care folosesc 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 conștient șabloanele, crezând că erau mai multe probleme decât meritau. - 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.

Î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 foarte mult timp despre fiecare categorie separat, dar mă voi limita la o suma mica numerele ș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ă. Mai mult statistici detaliate poti sa vezi
Și citește despre Android
Aplicații desktop și web au fost create în Java de un număr 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 (mai mult limbajul nivel inalt 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 altei limbi, la acea vreme acestea erau numerele 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 limbaj 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 alte câteva mici completări: desigur, java nu este singurul limbaj de programare cu colectare automată a gunoiului și aplicațiile pentru Android pot fi scrise, de exemplu, în C++ și există și alte limbaje gratuite etc. și așa mai departe. DAR java se încadrează simultan în toate aceste categorii, spre deosebire de alte limbi.

Iubesc JAVA! =)


  • 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 zilele noastre, orice programator hipster îți va spune că Cobol este o prostie completă, un limbaj vechi ș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 tehnologii la modă și actuale 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 stă la baza unui număr de platforme concepute pentru dezvoltarea de software și pentru a asigura funcționarea eficientă 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 fost un succes pentru dezvoltarea aplicațiilor desktop, în parte pentru că magica mașină virtuală Java a fost prea lentă pentru a porni. În ciuda încetinirilor minore, în general, aplicațiile Java de pe Windows sunt destul de utilizabile.

Dintr-un motiv inexplicabil, lui Steve Jobs nu i-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 ale mașinii virtuale 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 pe un server puternic, unde profită din plin de puterea multi-core.

Ruby este unul dintre concurenții moderni ai Java. Are o sintaxă mai curată, care amintește de engleza vie. 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-ul, oferind performanțe mult mai bune în cazul unor sarcini de lucru grele cu mai multe fire. 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 limba principală pentru Advanced Placement Computer Science (AP), curriculum și examene pentru elevii de liceu din Statele Unite. 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. Acest lucru poate suna ciudat, dar este o modalitate excelentă pentru începători de a înțelege cum funcționează un computer. Cerința de a specifica tipurile de date îi obligă să se gândească la structura internă a sistemului.

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ă între platforme - bibliotecile lipsă sau versiunile incompatibile ale bibliotecilor 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 corect versiuni 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ă bibliotecile necesare sunt disponibile pentru compilator, 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 este construită pe Java în întregime. Ora Android dispozitivele se vând mai bine decât iPhone-ul.

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 oricine dorește să adauge conținut suplimentar la Blu-Ray va trebui să folosească un compilator Java.

Discurile Blu-Ray sunt mai mult decât videoclipuri brute. Puteți modifica/adăuga funcționalități suplimentare și interactivitate folosind codul Java. 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. Parantezele, parantezele și chiar parantezele pătrate sunt toate nenorocirea acestor 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 în diferite limbi - totuși, numai pe un 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 comunității Open Source, dar nu a decis niciodată să elibereze complet Java. Acest lucru nu i-a împiedicat pe programatorii Java să scrie o grămadă de biblioteci și proiecte excelente sub licențe deschise gratuite. 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 administratori ai limbajului 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 funcționalități specifice. 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.

Limbajul Java și-a consolidat ferm poziția pe primul loc în clasamentul limbajelor de programareTIOBE . În 2015, a adăugat aproape 6% la clasamentul general și a ocupat aproape 22% din întreaga piață. Popularitatea Java continuă să crească în 2016, iar bariera de intrare în mediul dezvoltatorilor în acest limbaj scade treptat. De ce se întâmplă toate acestea, cum să devii programator Java și la ce să te aștepți de la muncă, ne-a spus astăzi un profesorVladimir Golovanov.

Vladimir, de ce ai ales să devii dezvoltator?

Într-o zi din 1990 (aveam 4 ani atunci), ni s-a adus o cutie mare. Apoi, primul computer din viața mea, „Electronics”, a apărut din această cutie. Desigur, la început am fost atras de jocurile pe calculator. Dar după un timp am dat peste o carte despre computere pentru copii. Întotdeauna mi-a plăcut să citesc, mai ales acele cărți la care am ajuns singură când părinții mei, dintr-un motiv oarecare, mi le-au ascuns. Din această carte am învățat o mulțime de lucruri interesante despre cum funcționează un computer și ce poți face cu el. A oferit chiar și programe în Basic, iar citind codurile sursă ale programelor și explicațiile despre modul în care funcționează, am învățat primul meu limbaj de programare. Mai târziu, când am pus mâna pe mediul de dezvoltare Quick Basic, am încercat toate aceste exemple în practică: am tastat sursă, l-a lansat - și a funcționat așa cum este scris! Și când ai schimbat ceva, a început să funcționeze altfel, așa cum aveai nevoie! Acest lucru este foarte asemănător cu împlinirea dorințelor, doar la o scară puțin mai mică. Cred că asta este ceea ce odată mi-a conectat ferm viața cu programarea, iar mai târziu, atât la școală, cât și la universitate, știam deja sigur că vreau să devin dezvoltator profesionist. Și nu am regretat niciodată această decizie.

A fost dificil să obții un loc de muncă ca programator pentru prima dată?

Când, la sfârșitul anului 3 la universitate, m-am dus să mă angajez ca dezvoltator, încă nu știam ce limbaj de programare să aleg. Cunoșteam Pascal, C, C++ și Java la fel de bine, potrivit macar partea care privea limbajul de programare în sine. De asemenea, am avut experiență în crearea propriilor aplicații în medii Programare vizuală Basic și Delphi.

Cu toate acestea, majoritatea posturilor vacante necesitau cunoștințe despre unele tehnologii, cadre și biblioteci, despre care auzisem pentru prima dată. La unul dintre interviurile pentru un post de dezvoltator C++, am fost rugat să vă spun cum ar trebui să arate arhitectura unui driver care emulează un fișier ISO ca disc! În acel moment, mi-am dat seama că nu aveam suficiente cunoștințe pentru a rezolva astfel de probleme.

Printre posturile vacante pentru dezvoltatori Java, a fost puțin mai bine; în câteva locuri era nevoie de un dezvoltator Java Junior și am promovat primul meu interviu ca dezvoltator Java cu note excelente. Astăzi situația este similară: dezvoltatorii Java sunt necesari în multe locuri, iar un dezvoltator de nivel Junior va găsi întotdeauna un loc potrivit pentru a lucra.

Ce trebuie să știe un dezvoltator de nivel Junior?

În primul rând, dezvoltatorul trebuie să înțeleagă cum este executat programul, cel puțin la nivelul instrucțiunilor limbajului de programare în sine. În al doilea rând, este foarte util să poți lucra cu cel puțin un mediu de dezvoltare și cel puțin un sistem de control al versiunilor - în acest caz, angajatorul nu va trebui să învețe acest lucru pe candidat, iar acesta este un câștig semnificativ în timp. Următorul ideea merge Posibilitatea de a depana propriul cod. Apoi - capacitatea de a înțelege codul altcuiva. Și, cel mai important, nu trebuie să vă fie frică să studiați și să încercați ceva nou: noi tehnologii, abordări, instrumente de dezvoltare etc. La început pare dificil, dar cu timpul te obișnuiești cu asta și devine doar o parte a meseriei.

Și cunoașterea acestei „grădini zoologice” de tehnologii și biblioteci este, desigur, utilă, dar deloc necesară. Sarcina dezvoltatorului nu este să învețe totul, ci să le folosească corect. Există documentație, exemple, cod sursă - acest lucru este suficient. Principalul lucru este să pui întrebările potrivite, iar răspunsurile vor fi găsite cu siguranță. Apropo, vești bune: multe probleme au fost deja rezolvate pentru noi de către alți dezvoltatori, majoritatea situațiilor tipice au fost deja întâlnite de cineva, iar site-uri precum Stack Overflow conțin baze de date uriașe de răspunsuri la o varietate de întrebări și în detaliu formă.

Ce limbaj de programare este mai bun: C++, C# sau Java?

Cel mai bine este să răspundeți la această întrebare cu o altă întrebare: „În ce context?” Fiecare dintre aceste limbaje de programare a fost creat pentru a rezolva o serie specifică de probleme. Dacă îl folosiți pentru a rezolva sarcinile pentru care a fost creat, va fi cel mai bun limbaj programare pentru o anumită sarcină. Dacă rezolvați probleme pentru care limbajul nu a fost conceput, cel mai probabil veți întâmpina multe probleme, dintre care unele pot fi de netrecut.

De exemplu, C# are metaprogramare. Ar părea cool! Dar există și o altă latură: prin crearea de design-uri speciale, complicăm codul pentru cei care îl vor citi. La urma urmei, cel mai probabil cititorul va cunoaște C#, dar nu are idee despre constructele noastre. Iar mediul de dezvoltare va refuza să ne ajute, văzând modele necunoscute lui. Deci, așa cum spunea Steve McConnell în cartea sa Code Perfect, foloseștelimbain functie de furnizatsarcini.

Și puteți începe cu aproape orice limbaj de programare. După cum arată practica, Java depășește alte limbi în acest sens. Deci, dacă nu aveți încă experiență de programare, Java este exact ceea ce aveți nevoie.

Este posibil să înveți un limbaj de programare pe cont propriu, fără cursuri?

Răspunsul, desigur, este „poți”. Dar mai este o întrebare: cât timp va dura? Și a doua întrebare: cât de înaltă vor fi astfel de cunoștințe? La urma urmei, dezvoltatorul trebuie să aibă încredere în cunoștințele sale. Puteți citi un tutorial despre programarea Java, există câteva cărți grozave pentru începători. Dar dacă o persoană nu are experiență în programare, atunci va trebui să rezolve câteva probleme nu atât de dificile chiar de la început. întrebări simple. De exemplu, instalați JDK, instalați și configurați IDE-ul, creați un proiect, scrieți un program simplu, lansează-l. Și dacă programul se blochează motiv necunoscut– va trebui depanat, pentru care trebuie să aveți abilitățile corespunzătoare. Astfel de cărți oferă adesea doar exemple simple integrare similară cu mediu inconjurator. Și dacă, de exemplu, ai o sală de operație sistem Linux? Sau IDE-ul se blochează cu o eroare ciudată la pornire? Este aproape imposibil pentru o persoană fără experiență să înțeleagă singur astfel de probleme.

Mi-a luat câțiva ani până am învățat măcar toate astea nivel de bază. Dar eram încă la școală pe vremea aceea și aveam mult timp liber. Majoritatea cursanților nu au niciodată suficient timp. De aceea, recomand să profitați de experiența profesorilor care vă vor învăța tot ce aveți nevoie și vă vor rezolva și problemele legate de lansarea și configurarea mediului de dezvoltare pe stadiul inițial. Și când ești deja dezvoltator, vei putea face față problemelor pe măsură ce apar, și nu cu toate deodată.

Este adevărat că dezvoltatorii scriu doar cod?

Desigur că nu. Totul va depinde de mediul corporativ din organizația în care ajungi. Dar pot spune cu încredere: este loc pentru creativitate peste tot. Undeva trebuie să comunici cu clienții și să afli de la ei ce trebuie făcut. Într-un alt caz, analiștii oferă gata făcute sarcina tehnica, și trebuie doar să o implementați. În al treilea caz, pe lângă scrierea codului, mai trebuie să-l postați soluție gata făcută la serverul de luptă. Deci un dezvoltator își poate combina activitatea principală cu responsabilitățile unui analist, tester, suport, administrator de sistem... Sau poți fi doar un dezvoltator, doar scriind cod - dar cea mai bună calitate! Există un loc pentru toată lumea.

Are sens să intri în profesia de dezvoltator doar pentru un salariu mare?

De asemenea, puteți încerca. Dacă nu ați încercat niciodată să programați, atunci nu știți dacă veți reuși sau nu. Cursurile vă oferă posibilitatea de a simți ceea ce vă va aștepta în viitor pe calea de dezvoltator și de a face alegerea corectă. Am văzut exemple în care un programator s-a mutat la o altă specialitate IT.Totuși, nu am auzit niciodată de un dezvoltator să părăsească IT definitiv. Iar ideea aici, cred, nu este doar despre bani, așa că dacă mai aveți îndoieli, încercați!

Te poți înscrie din al doilea bloc al programului, pentru cei familiarizați cu programare structuratăși OOP sau din al treilea bloc al programului, pentru cei care sunt familiarizați cu programarea structurată și OOP. Te aştept!

  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva