Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Interesant
  • Eclipse, NetBeans sau IntelliJ IDEA? Alegerea unui IDE pentru dezvoltarea Java. Mediu de programare Java

Eclipse, NetBeans sau IntelliJ IDEA? Alegerea unui IDE pentru dezvoltarea Java. Mediu de programare Java

Vă prezentăm atenției o adaptare a unui articol de Martin Heller, programator și editor al resursei JavaWorld. Probabil ați auzit deja despre primele trei cele mai populare IDE-uri pentru dezvoltarea Java. 90% dintre programatorii industriali folosesc fie Eclipse, NetBeans, fie IntelliJ IDEA, iar fiecare dintre aceste IDE-uri are propriile sale avantaje și dezavantaje. În acest articol vom încerca să le descriem astfel încât să înțelegeți care este potrivit pentru dvs. Deși, bineînțeles, este mai bine să le încerci pe toate trei la locul de muncă și să afli ce funcționează cel mai bine pentru tine. Nicio recenzie nu poate înlocui acest lucru. Am mai lucrat cu aceste IDE-uri, dar pentru acest studiu am instalat IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE și NetBeans 8.1 Java EE pe un laptop MacBook Pro. Am testat IDE-ul pe mai multe proiecte Java open source.

La ce să vă așteptați de la un IDE

Un IDE modern pentru un „dezvoltator Java sănătos” ar trebui să accepte Java 8, Scala, Groovy, precum și alte limbaje de mașini virtuale Java pe care le folosește în mod regulat. Suportul pentru principalele servere de aplicații și pentru cele mai populare cadre web, inclusiv Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails și Vaadin, ar fi de asemenea util. IDE-ul trebuie să fie compatibil cu orice build de sistem de control al versiunilor, cum ar fi Ant, Maven sau Gradle, împreună cu Git, SVN, CVS, Mercurial sau Bazaar. În plus, pentru mediul de dezvoltare este important să poți lucra cu baze de date și cu stratul client al stivei tale, să ai suport pentru JavaScript încorporat, TypeScript, HTML, SQL, JavaServer Pages, Hibernate, precum și Java Persistence. API. În cele din urmă, este logic să sperăm că IDE-ul vă va permite să editați, să creați, să depanați și să testați sisteme fără stres inutil. În mod ideal, mediul de dezvoltare acceptă nu numai completarea inteligentă a codului, ci și refactorizarea inteligentă și metricile de cod. În multe cazuri, va fi util să sprijiniți cadrele și stub-urile de testare. Dacă echipa dvs. utilizează un sistem de bilete și CI/CD, aveți nevoie de IDE pentru a vă putea conecta la acestea. Și decideți dacă aveți nevoie de implementare și depanare în containere și cloud. Am enumerat doar așteptările de bază (poate că aveți ceva de adăugat), iar acum să aruncăm o privire mai atentă la concurenții noștri.

IntelliJ IDEA


În ceea ce privește caracteristicile și prețul, IntelliJ IDEA vine în două versiuni: ediția gratuită Community și ediția Ultimate plătită cu funcționalitate extinsă. Ediția comunitară este concepută pentru dezvoltarea JVM și Android. Versiunea gratuită acceptă Java, Kotlin, Groovy și Scala; Android; Maven, Gradle și SBT; funcționează cu sistemele de control al versiunilor Git, SVN, Mercurial și CVS. Ultimate Edition este potrivită pentru dezvoltarea web și a întreprinderilor. Această versiune a IDE funcționează nu numai cu Git, SVN, Mercurial și CVS, ci și cu Perforce, ClearCase și TFS; în el puteți scrie în JavaScript și TypeScript; Desigur, există suport pentru Java EE, Spring, GWT, Vaadin, Play, Grails și o serie de alte cadre. Și, desigur, nu ne-am putea lipsi de SQL și de instrumente pentru lucrul cu bazele de date. Ideea care îi ghidează pe dezvoltatorii acestui IDE atunci când formează o politică de prețuri este că versiunea sa comercială (Ultimate) își va lua locul pe computerele profesioniștilor, datorită căreia productivitatea acestora va crește. Dacă un programator Java câștigă 50 de mii de dolari anual (sau chiar mai mult), rentabilitatea investiției cheltuită pentru IDE IntelliJ IDEA plătită (500 de dolari pentru un abonament anual) se va întâmpla foarte repede datorită chiar și unei ușoare accelerări a muncii sale. În anii următori, prețul pentru afaceri scade, pentru startup-uri și freelanceri este semnificativ mai mic, iar pentru studenți, profesori, campioni Java și dezvoltatori open source este complet gratuit. IntelliJ IDEA impresionează prin înțelegerea profundă a codului, ergonomia inteligentă, funcțiile de dezvoltare încorporate și suportul în mai multe limbi.
Figura 1. IntelliJ IDEA arată numărul de avertismente și presupuneri bazate pe analiza statistică a codului Java. Puteți studia ipotezele mai detaliat făcând clic pe ele, așa cum se arată în imagine; în multe cazuri veți primi o listă cu opțiuni și opțiuni de corectare.

Înțelegerea profundă a codului

Evidențierea sintaxelor și completarea simplă a codului sunt obișnuite pentru orice editor Java modern. IDEA a mers mai departe, oferind „completare automată inteligentă”. Acest termen înseamnă că mediul de dezvoltare arată o listă cu cele mai relevante simboluri aplicabile într-un context dat. Lista simbolurilor depinde nu numai de context ca atare, cel „general acceptat”, ci de stilul de programare al dezvoltatorului, de cât de des folosește anumiți operatori. „Chain Completion” arată chiar și o listă de simboluri aplicabile care sunt permise prin metode sau gettere în contextul curent. În plus, pentru membrii sau constantele statice, IDEA adaugă automat orice instrucțiuni de import necesare. În toate cazurile de completare automată, IDEA încearcă să ghicească tipul simbolului în timpul execuției, să-și rafineze selecția și chiar să aplice o distribuție de tip dacă este necesar. Codul Java include adesea fragmente din alte limbi sub formă de șiruri. IDEA poate injecta cod SQL, XPath, HTML, CSS sau JavaScript în literale șiruri Java. În acest sens, IDE-ul poate refactoriza codul în mai multe limbi. De exemplu, dacă redenumiți o clasă într-o mapare JPA, IDEA va actualiza entitatea JPA și clasa de expresie corespunzătoare. Când refactorizează o bucată de cod, dezvoltatorul are o singură dorință (destul de naturală): ca toate duplicatele acestui cod să fie și ele refactorizate. IDEA Ultimate găsește duplicate și fragmente similare și, de asemenea, le aplică refactoring. IntelliJ IDEA analizează codul la încărcare și direct pe măsură ce îl introduceți. Subliniază problemele suspectate (ca în imaginea noastră de mai sus) și oferă opțional o listă de soluții rapide probabile pentru problemele găsite.

Ergonomie


IntelliJ IDEA este conceput pentru a nu scoate un dezvoltator dintr-o stare de productivitate fluidă odată ce acesta este deja în ea. Fereastra Proiect, afișată în prima imagine din stânga, dispare cu un simplu clic de mouse, astfel încât programatorul să se poată concentra pe fereastra editorului de cod. Pentru toate acțiunile necesare în timpul scrierii codului, există combinații de taste pentru apelarea rapidă a acestora, inclusiv definirea simbolurilor în ferestrele pop-up. La început, toate aceste combinații sunt greu de reținut, dar treptat te obișnuiești cu ele și doar le folosești. Cu toate acestea, chiar dacă programatorul nu folosește comenzi rapide de la tastatură, așa cum arată practica, se obișnuiește să lucreze în IDEA ușor și rapid. Aș dori să remarc în special depanatorul IDEA: valorile variabilelor sunt afișate direct în fereastra editorului, lângă codul sursă corespunzător. Când starea unei variabile se schimbă, se schimbă și culoarea de evidențiere.

Instrumente încorporate

IntelliJ IDEA oferă o interfață unică pentru a interacționa cu majoritatea sistemelor de control al versiunilor, inclusiv Git, SVN, Mercurial, CVS, Perforce și TFS. Puteți gestiona modificările direct în IDE, ceea ce este foarte convenabil. Când testam IDEA, am avut dorința ca cea mai recentă modificare a codului sursă să apară în fereastra editorului sub formă de adnotare (cum se întâmplă, de exemplu, în Visual Studio). După cum se dovedește, IDEA are un plugin special pentru asta. IDEA vine, de asemenea, cu instrumente de compilare, un timp de testare, instrumente de acoperire și o fereastră de terminal încorporată. IntelliJ nu are propriul profiler, dar pot fi conectate la acesta cu ajutorul unor pluginuri. De exemplu, YourKit, creat de un fost dezvoltator principal al JetBrains, sau VisualVM (care este o versiune reambalată a profilerului NetBeans). Depanarea în Java poate fi o durere când se întâmplă tot felul de lucruri misterioase la clase pentru care nu aveți sursa. IDEA include un decompilator pentru astfel de cazuri. Programarea pe server în Java necesită interacțiune frecventă cu bazele de date, astfel încât programatorii IDEA Ultimate vor aprecia comoditatea instrumentelor pentru lucrul cu SQL și bazele de date. Dar dacă capacitățile lor nu sunt suficiente pentru cineva, puteți achiziționa versiunea IDEA Ultimate cu un IDE SQL încorporat (DataGrip). Cu toate acestea, va fi puțin mai scump decât abonamentul obișnuit IDEA Ultimate. IntelliJ IDEA acceptă toate serverele majore de aplicații JVM și vă permite să implementați și să depanați pe aceste servere, ceea ce elimină dificultățile familiare tuturor programatorilor Java Enterprise. IDEA acceptă și Docker (prin intermediul unui plugin care adaugă o fereastră specială de instrumente Docker în mediul de dezvoltare. Apropo, IDEA are o mulțime de pluginuri.

Un adevărat poliglot

IDEA a extins suportul de cod pentru Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS și alte cadre. Probabil ați observat că nu toate sunt specifice Java. IDEA „înțelege” alte limbi direct din cutie - Groovy, Kotlin, Scala, JavaScript, TypeScript și SQL. Dacă nu vedeți limba pe care o căutați în această listă, există în prezent 19 pluginuri de limbă IntelliJ, care acceptă în mod special R, Elm și D.


Timp de mulți ani, Eclipse a deținut palma în popularitate printre IDE-urile Java. Acest mediu este complet gratuit, open source, scris în principal în Java. Cu toate acestea, arhitectura sa modulară permite ca Eclipse să fie utilizat cu alte limbi. Proiectul Eclipse, inițiat de IBM, a apărut în 2001. Au vrut să înlocuiască familia IBM Visual Age de medii de dezvoltare bazate pe Smalltalk. Ei bine, scopul principal, așa cum sugerează chiar și numele, a fost să eclipseze Microsoft Visual Studio (eclipse în engleză înseamnă eclipsă). Portabilitatea Java îl ajută pe Eclipse să fie un mediu multiplatformă: acest IDE rulează pe Linux, Mac OS X, Solaris și Windows. La bine sau la rău, Java Standard Widget Toolkit (SWT) este cel puțin parțial responsabil pentru aspectul și senzația Eclipse. Eclipse își datorează performanța (sau, după cum spun unii simpatizanți, lipsa acestora) JVM-ului. Eclipse funcționează destul de lent, deoarece este înrădăcinat în hardware destul de vechi și versiuni vechi ale JVM-ului. Chiar și astăzi pare lent, mai ales dacă îi atașați o mulțime de plugin-uri. O parte din supraîncărcarea resurselor Eclipse poate fi atribuită compilatorului său incremental încorporat, care rulează ori de câte ori este încărcat un fișier sau este actualizat codul. Acesta este un lucru util; prinde erori la introducerea textului. Indiferent de construcție, proiectul Eclipse menține un model de conținut care conține informații despre ierarhia tipurilor, referințelor și declarațiilor elementelor Java. Versiunea actuală de Eclipse se numește Neon (4.6.0). Am instalat Eclipse Java EE IDE pentru dezvoltatori web (aceasta nu este singura opțiune, puteți alege altceva). Conține un SDK Eclipse minim, iar pluginurile sunt adăugate la cerere. Apropo, lucrul cu pluginuri în acest IDE nu este pentru cei slabi de inimă. Pluginurile de la terți sunt adesea în conflict între ele, deși specificațiile lor oficiale nu spun nimic despre acest lucru.
Figura 2. De la stânga la dreapta, există patru bare de instrumente Eclipse: Package Explorer, Java Editor, Java Class Structure și Task List. Proiectul încărcat în Eclipse în această imagine este cadrul de testare JUnit. Panourile pot fi schimbate cu ușurință.

Suport pentru pluginuri

Ecosistemul de pluginuri Eclipse este atât puterea IDE-ului, cât și una dintre principalele sale probleme. Din cauza incompatibilității pluginurilor, uneori, ansambluri întregi se blochează, iar programatorii trebuie să înceapă să lucreze din nou. În prezent, există peste 1.700 de plugin-uri scrise pentru Eclipse, oficiale și neoficiale, care pot sau nu să funcționeze grozav. Pluginurile Eclipse acceptă peste 100 de limbaje de programare și aproape 200 de cadre de dezvoltare a aplicațiilor. Cele mai multe servere Java sunt, de asemenea, acceptate: dacă desemnați o nouă conexiune la server de la Eclipse, veți fi dus la o listă de foldere de furnizori unde veți găsi aproximativ 30 de servere de aplicații. Vor exista doar nouă variante Apache Tomcat. Furnizorii comerciali tind să-și grupeze soluțiile: de exemplu, există un singur articol Red Hat JBoss Middleware, iar în interior veți găsi instrumente de server WildFly și EAP, precum și JBoss AS.

Editare, refactorizare și depanare

Prima ta experiență cu Eclipse poate fi confuză și chiar confuză. Primul pas este să configurați Eclipse și să vă obișnuiți cu arhitectura sa conceptuală a spațiilor de lucru, vizualizărilor și vizualizărilor. Toate acestea sunt determinate de pluginurile pe care le-ați instalat. Pentru dezvoltarea Java pe partea de server, veți utiliza probabil vizualizările de navigare Java, Java EE și Java, vizualizarea Explorer de pachete, vizualizarea de depanare, vizualizarea de sincronizare a comenzilor instrumentelor web, vizualizarea de dezvoltare a bazei de date și vizualizarea de depanare a bazei de date . În practică, totul are sens când deschizi ferestrele de care ai nevoie. Eclipse oferă aproape întotdeauna mai multe modalități de a rezolva o anumită problemă. De exemplu, puteți vizualiza codul utilizând perspectiva de navigare Java. Ce să alegi este o chestiune de gust și alegere. O căutare specială Java vă permite să găsiți declarații, referințe și apariții ale pachetelor Java, tipuri, metode, câmpuri. De asemenea, puteți utiliza accesul rapid la căutare și previzualizare. Modelele de cod comune pot fi generate din șabloane de cod. Java Refactoring în Eclipse acceptă 23 de operații, variind de la operațiuni comune de redenumire la transformări mai puțin evidente (ca în cartea lui Martin Fowler). Eclipse acceptă atât depanarea locală, cât și la distanță, cu condiția să utilizați un JVM care acceptă depanarea la distanță. Depanarea este destul de standard: definiți puncte de întrerupere și apoi vizualizați variabilele în fila de depanare. Desigur, puteți parcurge codul și evalua expresiile. Eclipse are o bază de date vastă de documentație de diferite vârste, valori și utilitate. Din păcate, găsirea unei imagini în instrucțiuni care nu corespunde versiunii curente, de exemplu, cu o interfață învechită și un aspect al butoanelor, este o întâmplare comună pentru acest IDE. Din păcate, problema actualizărilor tardive a documentației este foarte comună pentru orice proiecte de cod sursă.


NetBeans a început ca proiect student universitar la Praga în 1996. În 1997, IDE-ul a devenit un produs comercial, iar în 1999 a fost cumpărat de Sun Microsystems (părinții Java) și în anul următor a prezentat o versiune open source. Versiunea actuală 8.1 rulează pe mașini care rulează Windows, Mac OS X, Linux și Solaris. Ei bine, pachetul portabil poate fi rulat pe orice sistem pentru care există o mașină Java. Am descărcat pachetul Java EE pentru mine, este unul dintre cele șase pachete de descărcare posibile. Acest pachet acceptă JavaScript și HTML, GlassFish și Tomcat, dar nu acceptă PHP, C/C++/Fortran, Groovy și Grails: pot fi obținute în pachetul „All Inclusive” (sau pur și simplu „All”). Cu toate acestea, dacă doresc, pot descărca oricând suport pentru limbile de mai sus selectând pluginul corespunzător (sau oricare altul). NetBeans are mai puține dintre ele decât Eclipse, dar de obicei nu intră în conflict între ele. În această toamnă, Oracle (care a achiziționat NetBeans după achiziționarea Sun Microsystems) a decis să transfere acest mediu de dezvoltare sub aripa Apache Software Foundation, împreună cu toate drepturile, codul sursă, marca comercială, domeniul „netbeans.org” și o serie de alte infrastructuri. elemente. Prin urmare, viitorul proiectului este încă vag, deși anterior sistemul avea anumite privilegii aferente. Astfel, NetBeans a fost primul care a primit suport pentru Java 8 aproape imediat după lansarea platformei actualizate și a fost numit „IDE-ul oficial pentru Java 8”. Cu toate acestea, la o lună de la lansare, acest avantaj a fost pierdut: atunci și alte IDE-uri au primit suport pentru Java 8. Cu toate acestea, vreau să subliniez că suportul NetBeans pentru Java 8 este foarte bun, iar IDE-ul este excelent pentru a împleti trucurile Java 8 în cod „vechi”. Editorii, analizatorii de cod și convertoarele săi vor ajuta programatorul să actualizeze codul folosind constructe caracteristice Java 8 - expresii lambda, operatori funcționali și referințe de metodă. Pluginurile JavaScript din NetBeans 8 fac o treabă grozavă de a susține Node.js și cele mai recente instrumente JavaScript precum Gulp și Mocha, precum și acceptă interpretul Nashorn JavaScript.
Figura 3. Aici NetBeans rulează același proiect bazat pe Maven pe care IntelliJ IDEA a fost deschis în Figura 1. Observați funcționalitatea avansată din meniul contextual și submeniul de refactorizare

Editare și refactorizare

NetBeans Editor acceptă limbi, detectează erorile pe măsură ce tastați și vă ajută cu sfaturi și completare inteligentă a codului. Conform sentimentului subiectiv, IDE-ul face față acestei sarcini mai repede decât Eclipse, dar ceva mai lent decât IntelliJ IDEA. În plus, NetBeans are o gamă completă de instrumente de refactorizare (așa cum se arată în Figura 3) care permit programatorului să restructureze codul fără a-l rupe, să efectueze analize sursei și oferă, de asemenea, o gamă largă de sugestii pentru remedieri rapide sau extensii de cod. NetBeans include instrumentul de design Swing GUI, cunoscut anterior ca „Proiect Matisse”. Dezvoltatorii apreciază foarte mult instrumentul de refactorizare automatizat Inspect & Transform, introdus în NetBeans 7.1. Vă permite să analizați codul proiectului și să faceți îmbunătățiri sugerate. Deși personal, prefer să testez mai întâi tot propriul cod cu teste unitare și abia apoi să rulez instrumente care pot face schimbări radicale. Am suferit în mod repetat de tot felul de corecții automate care au dus la consecințe ireparabile.

Construire, depanare și profilare

NetBeans are suport nativ excelent pentru Maven și Ant, precum și un plugin pentru Gradle. Am fost foarte fericit când am descoperit că proiectele Maven erau tratate ca „native” de către sistem. Aceasta înseamnă că pot fi pur și simplu deschise și nu importate. NetBeans conține, de asemenea, un afișaj grafic atractiv (și util) pentru dependențele Maven. Depanatorul NetBeans Java nu este rău, dar vine cu câteva avertismente. Un depanator vizual separat permite programatorului să facă capturi de ecran ale interfeței grafice cu utilizatorul și să exploreze interfețele aplicațiilor realizate folosind JavaFX și Swing. Profilul NetBeans face mai evident modul în care sunt utilizate CPU și memoria și are instrumente excelente pentru a găsi scurgeri de memorie.

Comparația trio-ului de giganți

Am folosit toate cele trei IDE-uri, Eclipse, NetBeans și IntelliJ IDEA, de-a lungul anilor, în ordinea cronologică enumerată. De fiecare dată când treceam la un IDE diferit, simțeam că productivitatea mea crește. Dar chiar și atunci când eram ferm convins că IDEA era alegerea mea finală, uneori a trebuit să mă întorc la unul dintre cele două IDE-uri rămase. Așa a fost, de exemplu, într-o perioadă în care Eclipse era singurul instrument care a susținut dezvoltarea Android (azi există Android Studio, actualul IDE oficial pentru Android, se bazează pe IntelliJ IDEA). Desigur, toate cele trei IDE-uri au fanii și detractorii lor. Cunosc o mulțime de dezvoltatori Java care iubesc IntelliJ IDEA, precum și fani loiali Visual Studio C++ și C#. De cele mai multe ori, acești oameni sunt mulțumiți de faptul că productivitatea lor a crescut, iar costul abonamentului anual este rambursat după doar câteva săptămâni de utilizare a versiunii plătite a IDEA. Cu toate acestea, utilizatorii NetBeans și Eclipse sunt adesea atașați de instrumentele lor și se întreabă de ce alți programatori sunt dispuși să plătească bani pentru IDEA. Aș sfătui noilor dezvoltatori Java să stea departe de Eclipse. În ciuda faptului că este încă cel mai popular IDE pentru Java, este dificil pentru începători: este ușor să te pierzi în sălbăticia Eclipse, atât în ​​timpul instalării sistemului, cât și în timpul lucrului zilnic. Eclipse are cel mai extins ecosistem de pluginuri dintre toate IDE-urile și este, de asemenea, cel mai probabil să se blocheze din cauza instalării unui set incompatibil de aceleași plugin-uri. Din păcate, în timp ce foloseam Eclipse, a trebuit în mod repetat să scot un alt ansamblu rupt al acestui IDE și să instalez un pachet „curat”. NetBeans este bun pentru majoritatea dezvoltatorilor, are un profiler grozav și îl folosesc uneori. Cu toate acestea, prefer să plătesc pentru IntelliJ IDEA Ultimate. Și viitorul NetBeans este încă neclar. Pentru dezvoltatorii Java noi care nu au încă bugetul necesar pentru a cumpăra instrumente, recomand să folosească NetBeans sau IntelliJ IDEA Community Edition în funcție de nevoile lor. Primul merită ales pentru cei care codifică servere Java, dar numai dacă nu intrați în categoria celor care pot obține IntelliJ IDEA Ultimate gratuit sau cu o reducere uriașă (studenți sau acei programatori care dezvoltă o sursă deschisă). proiect).

IDE Java „ușoară”.

Astăzi, majoritatea dezvoltatorilor Java folosesc IDEA, NetBeans sau Eclipse, dar uneori este nevoie de medii de dezvoltare mai ușoare sau chiar editori de cod precum Sublime Text, emacs sau vim care acceptă pluginuri Java. Am enumerat mai jos opțiuni rezonabile pentru cei care caută ceva mai ușor:
  • DrJava este un mic mediu de dezvoltare gratuit. A fost creat pentru studenții de la Universitatea Rice și a devenit destul de popular: DrJava a fost deja descărcat de peste 2 milioane de ori. DrJava este conceput pentru a promova dezvoltarea bazată pe teste. Cadrul conține un editor de cod inteligent, un panou de interacțiune pentru evaluarea codului aplicației, un depanator la nivel sursă și instrumente de testare unitară.
  • BlueJ este un mediu de dezvoltare Java gratuit creat de specialiști de la Universitatea Kent pentru programatori începători. Acest mediu este susținut de Oracle. BlueJ are o interfață mult mai curată și mai simplă decât IDE-urile profesionale precum NetBeans sau Eclipse și chiar include un tutorial dedicat despre elementele de bază OOP.
  • JCreator este un alt mic IDE Java pentru Windows, scris în C++ (din motive de performanță). Versiunea Pro plătită este echipată cu un depanator, suport pentru Ant și vrăjitori de cod, dar versiunea gratuită (LE) nu.
  • Eclipse Che este un IDE cloud bazat pe browser care acceptă Java, C++, JavaScript, Python, PHP, Ruby și SQL.

Alegerea unui IDE Java în funcție de proiect

Am încercat să descriu beneficiile importante ale fiecăruia dintre cele mai importante trei IDE-uri Java și am menționat pe scurt micii lor rivali utili. Pentru a alege IDE-ul potrivit, trebuie să cântăriți argumentele pro și contra și să le comparați cu nevoile dvs. și cu nevoile proiectelor dvs. Dacă vă alăturați unei echipe, este o idee bună să utilizați același IDE ca și alți dezvoltatori, deși nu este necesar. Dacă echipa dvs. găzduiește surse pe GitHub, va fi desigur mai convenabil dacă IDE-ul dvs. acceptă GitHub. Da, puteți gestiona transferul de cod fără un IDE folosind clientul GitHub sau linia de comandă git. Dar cât de eficiente vor fi astfel de salturi între diferite sisteme? De asemenea, este important ca IDE-ul să suporte sistemul de compilare. De exemplu, dacă este Maven, este puțin probabil să doriți să reconstruiți sistemul în Ant pentru testare locală. Din fericire, toate cele trei mari IDE-uri Java acceptă Ant, Maven și Gradle, fie din cutie, fie cu un plugin. Dar pentru IDE-urile „mici” acest lucru poate să nu fie adevărat. Este o dorință naturală ca mediul de dezvoltare să susțină versiunea JRE care este utilizată în proiect. Dacă versiunile nu se potrivesc, există o mare probabilitate de a obține o mulțime de bug-uri suplimentare, care, de exemplu, vor apărea la tine, dar nu și la alți membri ai echipei. Este puțin probabil ca o astfel de situație să aibă un efect bun asupra karmei tale. Sincer, inconsecvența JRE este mai probabil să apară din cauza erorilor de configurare decât din cauza lipsei de suport IDE, cu excepția cazului în care IDE-ul nu s-a actualizat încă la o nouă versiune de Java. Credeți doar că, dacă IDE-ul dvs. acceptă pe deplin cadrele și tehnologiile care sunt utilizate în proiect, chiar ajută la accelerarea lucrărilor. Cel mai probabil îl vei gestiona oricum. Dar, dacă IDE-ul înțelege modul în care declarațiile JPA se referă la clasele de entități și expresii JPA (cum ar fi IntelliJ), veți petrece mult mai puțin timp pe codul JPA decât dacă înțelegeți complet greșit. Ei bine, dacă IDE-ul acceptă cadrul de testare și executorul de cod folosit pentru proiect, puteți rula teste fără a schimba mediul de lucru. Acest lucru va accelera, de asemenea, procesul de dezvoltare. În cele din urmă, munca merge mai repede dacă IDE-ul este compatibil cu sistemul de urmărire a erorilor și de bilete al proiectului. Din nou, puteți folosi un client autonom sau web, să spunem JIRA, dar este greu să fiți de acord că verificarea biletelor este mult mai rapidă fără a schimba fereastra, rămânând în același timp direct în IDE.

Gratuit sau plătit?

După ce am testat IntelliJ IDEA Ultimate, am simțit că este un mediu de dezvoltare potrivit. Un fel de Cadillac al lumii IDE. Din nou, deși nu este gratuit, cred că câștigurile de productivitate din utilizarea lui merită abonamentul anual. Pentru începătorii care nu își permit un abonament anual IntelliJ IDEA Ultimate, recomand să folosească NetBeans mai degrabă decât Eclipse. Desigur, ecosistemul de pluginuri Eclipse este mult mai dezvoltat astăzi decât orice alt IDE, dar este foarte depășit și neîngrijit: un dezvoltator începător riscă să rămână blocat în jungla IDE-ului în loc să fie scufundat în muncă. Am atins și alternativele „ușoare”, dintre care două au fost concepute special pentru scopuri educaționale. Ei bine, dacă abia începi să înveți limbi străine și preferi un mediu minimalist - de ce nu?

Aproape fiecare proprietar al celui mai primitiv telefon mobil este familiarizat cu conceptul platformei Java. Mediul de dezvoltare Java permite crearea de aplicații universale care pot fi utilizate pentru a rula indiferent de sistemul de operare instalat. Să luăm în considerare principalele aspecte ale funcționării și aplicării sale.

Dezvoltare Java?

De fapt, mediul de dezvoltare este pur un limbaj de programare bazat pe comenzi universale recunoscute în mediul Java Runtime.

În linii mari, mediile de dezvoltare a limbajului Java fără o platformă instalată inițial nu vor funcționa în Windows. Dar un astfel de suport este oferit inițial, ceea ce scutește orice utilizator de nevoia de a instala componente suplimentare.

Aplicație în tehnologia informatică

Acest proiect a fost dezvoltat inițial de Sun Microsystems, care a fost susținut ulterior de Oracle.

Dar, în cele din urmă, mediul de dezvoltare Java este complet independent de sistemele computerizate sau mobile.

Module încorporate ale sistemelor mobile

Când vorbim despre smartphone-uri și tablete, aceeași versiune de Java) se referă doar la utilizarea unei aplicații grafice care vă permite să creați o aplicație Java în câteva minute.

De fapt, aplicația în sine face un fel de adresare sau cerere, ale căror funcții sunt furnizate în sistemul de operare.

Și acest lucru se aplică dispozitivelor mobile. Ați observat că uneori, de-a lungul timpului, fie Windows Phone, fie Android începe să „scuipe” în ceea ce privește oferirea de actualizări imediate? Nu este altceva decât două componente:

  • Java Runtime;
  • Microsoft .NET Framework.

Cel mai trist lucru este că prima componentă nu este asociată cu erori de sistem. Această platformă este complet independentă și executabilă în ceea ce privește comenzile în mod implicit.

Mediu de dezvoltare integrat JAVA: Aplicație simplă

Nu există nicio îndoială că acest sistem este utilizat în versiunile mobile. Mediul de dezvoltare Java Android este acceptat, ca să nu mai vorbim de produsele Apple.

Cu toate acestea, în ceea ce privește aplicațiile executabile, lucrurile nu sunt atât de simple. Si de aceea.

Applet-uri executabile

În primul rând, ar trebui să acordați imediat atenție sistemului în care trebuie instalat arhivatorul corespunzător (WinRAR - cel puțin, mai bine - 7-Zip).

Mediul de dezvoltare pentru programe Java se referă la faptul că datele sunt salvate sub forma unei arhive care nu poate fi deschisă folosind instrumente standard Windows.

Date arhivate

În cel mai bun caz, puteți folosi extractoare precum cele menționate mai sus. Dar dacă s-au folosit tehnologii de compresie (maximum) suplimentare la crearea arhivei, nimic nu poate ajuta aici.

Nici măcar actualizarea arhivatorului nu va putea face modificările necesare. Aici va trebui să aplicați o actualizare întregii platforme, deși inițial mesajul despre o actualizare disponibilă „se blochează” în bara de sistem.

Actualizare platformă

Actualizarea este destul de simplă. Pur și simplu faceți clic pe pictograma care clipește din tavă, solicitându-vă să instalați o actualizare disponibilă. Timpul de recunoaștere poate dura până la câteva minute. Este în regulă.

Dacă nu doriți să așteptați, nicio problemă - accesați resursa oficială Microsoft și descărcați programul de acolo. Nu-ți place această metodă? Instalăm JDK sau J2SE, care este o extensie Java, apoi instalăm modulul dorit din cele selectate, după care activarea are loc automat. La sfârșitul procesului, poate fi necesar să reporniți complet sistemul.

De ce Java nu este dependent de OS?

După cum am menționat deja, acest limbaj de programare este orientat pe obiecte (asemănător cu C + / C ++, în care este programat Windows).

Dar esența sa este că mașina virtuală Java este capabilă să traducă comenzile din aplicații executabile în coduri de octet speciale recunoscute de orice sistem informatic, indiferent de dezvoltatorul acestuia. Mediul de dezvoltare a programelor Java este utilizat la fel de bine pe PC-uri, platforme Intel și sisteme mobile Android, Blackberry, iOS și altele.

Mediul software al sistemului de operare în sine are deja un modul încorporat responsabil cu executarea comenzilor în limbaj. Și nu se referă în niciun caz la medii specifice, cum ar fi Microsoft .NET Framework sau oricare altele pe care producătorii de sisteme de operare le dezvoltă pentru a rula propriile applet-uri.

Dispozitive mobile

În ceea ce privește chiar și telefoanele mobile obișnuite fără sistem de operare la bord, acestea au și suport inițial pentru această platformă. De regulă, instalatorii au extensii JAR sau JAD și pot fi instalați destul de ușor chiar și pe telefoanele primitive.

În sistemele de operare, puteți utiliza arhivare precum WinRAR, care recunosc fără probleme arhivele care se extrag automat, cum ar fi fișierele SFX. Când faceți dublu clic pe un astfel de fișier, conținutul acestuia va fi extras automat, iar arhivatorul, împreună cu platforma Java, funcționează în fundal în acest caz.

Ce să spun, chiar și jocurile vechi de pe cele mai simple telefoane pot fi instalate destul de simplu. Deși se crede că nu folosesc sisteme de operare „avansate”, nu este cazul.

Chiar și cele mai vechi modele au un tip de platformă. Altfel, cum ar funcționa telefonul? Același sistem, așa cum este deja clar, are și suport încorporat, care este responsabil pentru mediile de dezvoltare Java.

În ceea ce privește comenzile în sine utilizate pentru a crea aplicații, descrierea acestora poate dura prea mult timp. Dar dacă apare ideea de a crea o aplicație bazată pe acest limbaj, este mai bine să instalați un program specializat precum platforma oferită de mediul Delphi (foarte asemănător).

Concluzie

După cum puteți vedea, mediul de dezvoltare Java este universal și compatibil cu orice sistem. Dar funcționează mult mai rapid decât traducerea comenzilor bazate pe C+/C++. Potrivit unor studii, viteza de operare poate fi de 20-30 de ori mai mare, desi consumul de memorie este la un nivel mai ridicat.

Dar, pentru a rezuma, merită remarcată adevărata versatilitate pe care o oferă mediul de dezvoltare Java. De fapt, este compatibil cu toate sistemele, ceea ce îl face cel mai popular atunci când se creează aplicații sau jocuri multimedia.

Separat, merită spus că cele mai recente versiuni de Java se bazează pe suport pentru instrumente de programare generalizate, care se bazează pe tehnologiile Eiffel și C#, care sunt radical diferite de instrumentele C++. Aici puteți utiliza conversia automată a tipurilor de date scalare și importul așa-numitelor câmpuri statice, ca să nu mai vorbim de capacitatea de a crea documentație însoțitoare cu codul sursă.

Java SE 6 introduce multe caracteristici noi, care includ chiar recunoașterea calendarelor japoneze și budiste, abilitatea de a crea un server HTTP complet, transfer accelerat de fluxuri de clasă și date comprimate cu o îmbunătățire a performanței cu până la 70%, ca să nu mai vorbim de tabloul de bord JConsole. , care acceptă OpenGL și DirectX.

Acest lucru se aplică în principal adaptoarelor grafice, deși se poate aplica chiar și la utilizarea dispozitivelor audio (cel mai adesea virtuale bazate pe drivere ASIO4ALL). Același lucru este valabil și pentru unele sintetizatoare software sau tastaturi MIDI. Dar utilizarea applet-urilor Java executabile nu este întotdeauna furnizată.

De la autor: Dintre toate limbajele care sunt folosite în dezvoltarea web, Java este cea mai sensibilă. Acest PL este caracterizat prin sintaxă complexă, tipare ridicată a datelor și imunitate la erori. De aceea, acest instrument pentru Java – IDE – este atât de popular. Mediul de dezvoltare ajută la evitarea capcanelor care îi așteaptă pe un programator care scrie într-un editor de text. Dacă nu doriți să mergeți pe drumul lung și spinos al unui scriitor de text, bine ați venit la recenzia noastră a celor mai bune medii de dezvoltare cele mai potrivite pentru limbajul cafelei.

Ai nevoie de un IDE pentru dezvoltare

Java este una dintre acele limbaje pentru care mediul de dezvoltare nu este un capriciu al specialiștilor individuali, ci un adevărat mijloc de supraviețuire. Limbajul complex nu poate fi citit sau executat până când toate elementele sistemului nu sunt configurate corect. Uneori, pentru un dezvoltator web este dificil să înțeleagă de ce are nevoie de un software atât de voluminos și puternic. Toate limbile web, cum ar fi HTML/CSS, JavaScript și PHP, pot fi implementate fără software suplimentar (deși există chiar și un IDE de top plătit pentru acesta din urmă - PHPStorm). Dar, de îndată ce vine vorba de Java, totul cade la locul său. Documentele de cod lungi și complexe nu pot fi organizate manual.

Dar, ca întotdeauna, există oponenți ai ideologiei. Unii dezvoltatori numesc IDE-urile „cârje” de care au nevoie doar programatorii slab pregătiți. Pentru ei, descărcarea unui mediu de dezvoltare este ca și cum a trăda principiile de bază. Din păcate, această abordare îl poate lăsa pe dezvoltator în urmă în evoluția programării: proiectele mari de întreprindere, cum ar fi aplicațiile web foarte funcționale, necesită o interacțiune strânsă între membrii echipei și lansarea și depanarea rapidă a codului. Mai mult, abilitatea de a lucra cu principalele IDE-uri este un criteriu de angajare în cele mai bune poziții.

Desigur, există cei care știu să-și ajusteze instrumentele de dezvoltare atât de bine încât un IDE cu drepturi depline devine inutil. Cu toate acestea, mediul de dezvoltare consumă resurse de dispozitiv care sunt necesare pentru a rula alte instrumente de dezvoltare. Acest lucru este vizibil mai ales în versiunile învechite de Windows/Linux - de îndată ce mediul de dezvoltare începe, alte resurse se confruntă cu stagnarea.

Dezvoltatorii online preferă aproape întotdeauna editorii de text. Sunt mai ușoare și vă permit să creați soluții pe genunchi. Nu există instrumente suplimentare, nu este necesară o configurare profundă, iar gama de software este mult mai largă. Aceasta este mentalitatea pe care o au programatorii web până când încep să lucreze cu Java.

Vreau să aleg un program

Domeniul de programare oferă multe soluții pentru crearea codului complet. Acest lucru este valabil mai ales pentru diferite medii de dezvoltare. Nu doar companiile mari precum Oracle creează IDE-uri. Lucrul la un astfel de software este de obicei apanajul profesioniștilor care doresc să-și optimizeze activitățile. Exact asta s-a întâmplat cu Visual Studio: unul dintre cele mai bune IDE-uri din toate timpurile. Microsoft, care era pregătit să introducă o versiune de Windows în noul secol, și-a prezentat pur și simplu instrumentele într-o singură aplicație. Acum VS este alegerea a milioane de oameni.

Din păcate, nu poate fi numit „pentru dezvoltatori Java”. Nu, asta nu înseamnă deloc că nu veți putea scrie ceva în Java în acest mediu de dezvoltare: există chiar extensii speciale. Este doar mai concentrat pe C, C# și pe alte produse Microsoft. Java are propriul său IDE de top, pe care îl vom prezenta astăzi. Dar, mai întâi, trebuie să înțelegem care dorim să fie IDE-ul ideal (în ton cu ).

În primul rând, puteți decide imediat că cele care funcționează online nu sunt potrivite pentru un dezvoltator Java. Vor crea probleme cu interpretarea, iar înghețarile constante nu vor face decât să descurajeze programarea. O soluție mai rezonabilă ar fi descărcarea unuia dintre software-urile prezentate astăzi. Este mai bine să faceți clic pe descărcare o dată decât să suportați în mod constant erori. Era IDE-urilor cloud este încă să vină.

De asemenea, mediul de dezvoltare Java trebuie să suporte o serie de tehnologii care sunt necesare pentru o codificare eficientă. Acestea includ limbaje Java pentru mașini virtuale: mai ales Java 10, dar și Groovy și Scala. Controlul versiunilor este, de asemenea, unul dintre punctele cheie. Numai Git nu va fi suficient: aveți nevoie de Mercurial, SVN și altele. Este imposibil de ghicit care va fi popular în câțiva ani (Git, desigur ☺). Un dezvoltator web ar beneficia de suport pentru o gamă largă de limbi, inclusiv baze de date PL, limbi web, atât front-end (TS, JS, HTML) cât și back-end (unul dintre limbajele de uz general populare). Deoarece JVM-ul este proiectat pentru a converti cuvintele limbajului de programare în cod octet, este nevoie și de interpreți puternici. Ei sunt cei care pot face Java rapid în teorie, rapid în practică.

Ei bine, și bineînțeles, ca și limbajul Java în sine, mediul de dezvoltare pentru acesta trebuie să fie multiplatformă. Toate celelalte soluții împiedică dezvoltarea programatorului. Din moment ce a ales Java, înseamnă că a ales universalitatea.

Cei trei elefanți ai dezvoltării Java

Ca întotdeauna, sunt primii trei și toți ceilalți. Industria dezvoltării web s-a obișnuit deja cu asta și nu vom schimba tradițiile. Avantajul recenziei noastre este că nu va exista software plătit (aproape). Puteți descărca gratuit fiecare mediu de dezvoltare de pe site-ul oficial. De asemenea, acesta va fi unul dintre acele topuri de top în care vom alege subiectiv un câștigător. Ei bine, vă puteți forma propria decizie pe baza experienței dvs. și a concluziilor noastre.

Idee pentru dezvoltare web

IntelliJ IDEA este un IDE publicat de JetBrains bazat pe Java Virtual Machine. Mediul în sine este, de asemenea, scris în Java și parțial în Python și este destinat acestora. Ei s-au identificat imediat ca un mediu pentru Java, încă din 2001. Apoi, mediul de dezvoltare a introdus o bibliotecă întreagă de instrumente de refactorizare, care a adus imediat IDEA în top. Dezvoltatorii au făcut o alegere nu atât în ​​favoarea comodității, cât în ​​favoarea productivității. Unele operațiuni de rutină sunt efectuate în întregime de mediul de dezvoltare.

Am promis că nu va exista software plătit astăzi. Dar adevărul este că versiunea finală a IDEA are costul ei, deși nesemnificativ (până la 500 USD), ca pentru un IDE. Dacă ești un Javaist profesionist care câștigă 20 USD pe oră sau mai mult, acesta este un fleac. Apropo, doar în pachetul Ultimate dezvoltatorul va avea posibilitatea de a lucra cu platforma Java EE.

Dar există și o versiune gratuită a IDEA, care nu poate fi numită o versiune redusă. Da, unele funcții lipsesc, dar suportul pentru limbă este similar cu versiunea comercială. Este convenabil să scrieți primele linii de cod și să le extindeți cu pluginuri.

Tendințe și abordări moderne în dezvoltarea web

Aflați algoritmul pentru creșterea rapidă de la zero în construirea site-ului web

IDEA este unul dintre acele medii de dezvoltare care pot fi numite cu adevărat inteligente. În loc de corecțiile și evidențierea pe care le are chiar și cel mai simplu editor de text, IDEA oferă completare automată: fragmente din programul finit sunt generate de dezvoltator. Nu mai merită nici măcar să vorbim despre faptul că toate parantezele și alte chifle sintactice vor fi închise automat. Și dacă ceva nu merge bine și IDEA nu poate gestiona problema, va alerta imediat dezvoltatorul Java de pe cealaltă parte a ecranului.

Refactorizarea care are loc în mai multe limbi simultan este, de asemenea, captivantă. Javaiștii știu că codul nu este niciodată Java pur, mai ales când vine vorba de dezvoltare web. Aceasta include limbile baze de date, hipertext și așa mai departe. În acest moment, IDEA face ceea ce mulți încă nu sunt capabili: analizând programul scris, IDE-ul separă limbile unul de celălalt și le analizează separat.

Programul are taste rapide bine implementate, cu care, desigur, va fi nevoie de ceva pentru a vă obișnui. Dar odată ce totul se întâmplă, productivitatea trece prin acoperiș. De asemenea, pot declanșa depanarea codului, care are loc în fereastra următoare.

Mediul de dezvoltare se remarcă și prin faptul că crește constant numărul de tehnologii suportate. Cu toate acestea, dezvoltatorii nu sunt foarte dependenți de aceste actualizări. Ei pot descărca oricând pluginul corespunzător.

IDE Eclipse

Acest mediu de dezvoltare este popular nu numai printre javaiști, ci și printre dezvoltatorii web în general. Un avantaj semnificativ față de IDEA va fi cu siguranță prețul - Eclipse este complet gratuit, la fel și suplimentele sale. Apropo, creatorii mediului de dezvoltare nu aveau planuri să concureze cu IDEA: au vrut să eclipseze succesul pe care l-a primit Visual Studio. Într-o oarecare măsură, au reușit: programatorii web medii preferă aproape întotdeauna Eclipse.

Ce este chiar mai bun decât IDEA? Acces gratuit la Java EE. Este disponibil imediat, fără plăți suplimentare sau instalarea de pluginuri. Apropo, despre acesta din urmă. Instalarea lor în Eclipse este o sarcină importantă. Se pot „certa” unul cu celălalt, provocând neplăceri dezvoltatorului. Dar lucrul pozitiv este numărul lor. Vă sfătuim să le alegeți pe cele oficiale, deoarece astfel sunt mai puține șanse ca acestea să intre în conflict cu mediul de dezvoltare.

Eclipse este conceput pentru ca dvs. să-l personalizați pentru a vă potrivi. Prin urmare, prima experiență cu un IDE poate descuraja utilizarea ulterioară. Acel caz rar când unul dintre cele mai bune medii de dezvoltare are nevoie de un manual. Din fericire, există o mulțime de ele pe YouTube.

NetBeans

Acesta este un mediu de dezvoltare care s-a născut din stiloul creatorilor Java - Sun Microsystem. Au vrut să creeze cea mai bună soluție pentru limba lor și, prin urmare, au conceput un IDE care este prietenos nu numai cu Windows.

Este cea mai multiplatformă de pe lista noastră. NetBeans poate fi rulat nu numai pe axele superioare, ci și pe orice alt dispozitiv care este echipat cu un JVM. Abordarea lui Sun este imediat evidentă: au vrut ca limbajul lor să funcționeze pe toate dispozitivele (de la un computer la o mașină de spălat). Desigur, „fasolea” a fost numită mediul oficial de dezvoltare pentru Java, deși nu este atât de bun. Astăzi, Oracle lucrează la NetBeans, care a achiziționat Sun.

NetBeans este la fel de inteligent ca IDEA, capabil de refactorizare inteligentă. Sistemul face față acestei sarcini mult mai bine decât Eclipse, dar mai rău decât IDEA.

După cum puteți înțelege din volumul celor spuse, IDEA va fi numită cea mai bună. Iată o listă de motive:

înțelegerea programării. Nimeni nu completează codul și remediază erorile mai repede decât IDEA;

eficiența refactorizării;

Preț. Da, Eclipse este complet gratuit. Dar nu ai cumpăra mâncare proastă doar pentru că este mai ieftină, nu-i așa?

Aceasta este viziunea noastră! Apropo, Oracle are un alt IDE în arsenalul său, numit JDeveloper - complet adaptat pentru Java. Încercați și trageți propriile concluzii. Și avem de toate!

Tendințe și abordări moderne în dezvoltarea web

Aflați algoritmul pentru creșterea rapidă de la zero în construirea site-ului web

De-a lungul istoriei de peste zece ani a limbajului Java, nici o singură generație de medii de dezvoltare integrate (IDE) nu s-a schimbat. Evoluția instrumentelor IDE se datorează multor factori, a căror combinație se numește tehnologie informațională, care include componente software și hardware, precum și dezvoltarea limbajului în sine, care are loc nu numai în profunzime, optimizarea unor capacități, care este demonstrat clar de sosirea noilor biblioteci Swing în locul celor învechite AWT, dar și „în lățime”, aceasta este apariția tehnologiilor JSP, o mai mare integrare cu DBMS și servere de aplicații, suport pentru tehnologii Spring, Hibernate etc.

Și dacă primele instrumente IDE, în înțelegerea de astăzi, au fost un editor de text primitiv, care a servit doar pentru tastarea codurilor sursă, iar toate celelalte lucrări, de la compilare până la asamblarea finală a proiectului, trebuiau făcute manual, atunci cele moderne de astăzi sunt de fapt dispozitive multifuncționale care preiau. Include nu numai funcțiile obișnuite, ci și o serie de altele suplimentare, pornind de la crearea automată a Javadoc, refactoring, profiling, design UML, un client pentru conectarea la orice DBMS și terminând cu astfel de cele exotice care nu au legătură cu procesul de dezvoltare, cum ar fi verificarea ortografică.

Desigur, prețul de plătit pentru toate aceste „conveniențe” este cerințele crescute pentru resursele computerului. Există opinia că 80% dintre utilizatori folosesc doar 20% din capabilitățile software-ului existent; acest lucru poate fi proiectat și pe instrumentele IDE. Deoarece toate avantajele lor pot fi apreciate doar de un programator care a dezvoltat tehnologia adecvată de mulți ani. Și este dificil pentru programatorii începători să evalueze în mod adecvat acest sau acel instrument, prin urmare, de regulă, selecția sa independentă are loc în funcție de două criterii - claritatea intuitivă a interfeței și diverse caracteristici de timp și resurse, cum ar fi încărcarea, compilarea, lansarea. , și cantitatea de RAM ocupată. La urma urmei, la început aveți nevoie doar de un compilator, un depanator și mașina Java în sine.

Prin urmare, scopul acestui articol este de a trece în revistă piața existentă a instrumentelor IDE pentru dezvoltarea de programe folosind limbajul Java, identificând punctele forte și punctele slabe ale fiecăruia în funcție de diverse criterii, pe baza unei analize a rezultatelor proiectului: „Testarea și analiza mediilor de dezvoltare software pentru Java” („Testări și analize IDE pentru Java” (TAIDEJ)), care a fost organizată de noi, grupul de coordonare a site-ului și a avut loc în perioada 1 ianuarie 2006 – 1 septembrie 2006 pe site-ul www. site-ul.

Proiectul a fost împărțit în mai multe etape. În prima etapă, am elaborat un chestionar, Tabelul 2, și am compilat o listă de Java-IDE, Tabelul 3, care au fost dezvoltate de la apariția limbajului Java2 până în prezent, incluzând link-uri către ambele instrumente IDE pe care toată lumea le cunoaște și la cele destul de exotice. Această listă este actualizată periodic datorită participanților noștri. Aici dorim să ne exprimăm profunda recunoștință tuturor participanților la proiect, precum și tuturor celor care ne-au discutat și ne-au criticat constructiv pe forumuri, tabelul 1

Tabelul 1. Java - forumuri
Java - Forum pe Sources.Ru
RSDNhttp://www.rsdn.ru/?forum
Forumuri - Juga.Ruhttp://forum.juga.ru/
forumuri de arhivă IThttp://www.javable.com/forum
Forumuri Java - Programare Javahttp://forum.java.sun.com/
Forumuri java.nethttp://forums.java.net
Javalobby.orghttp://www.javalobby.org/java/forums
JavaWorldhttp://www.javaworld.com/javaforums
Forum computer Ru.Boardhttp://forum.ru-board.com
Programare - iXBT Hardware BBShttp://forum.ixbt.com
Forumul JUG KPIhttp://jug.in.ntu-kpi.kiev.ua/forum
CITForumhttp://forum.citforum.ru
Realcoding.NEThttp://forums.realcoding.net

La elaborarea chestionarului, am încercat să aflăm următoarele:

  1. tendința de schimbare a preferințelor programatorilor, deoarece odată instrumentele de succes fie au încetat cu totul să se dezvolte, fie dintr-un motiv oarecare companiile care le-au dezvoltat au dispărut și, prin urmare, mulți au fost nevoiți să treacă de la un instrument IDE la altul;
  2. cum a ales programatorul acesta sau acel instrument;
  3. modul în care programatorul evaluează instrumentele cu care a lucrat pe o scară de cinci puncte;
Tabelul 2. Chestionar

Alte sarcini au constat în procesarea și analizarea informațiilor statistice obținute și evaluarea „intensității resurselor” a instrumentelor populare. În plus, au fost pregătite recenzii ale unor instrumente și postate pe site-ul web al proiectului.

Tabelul 3. Lista IDE-urilor pentru Java.
NumeProducătorPagina web a produselor
1 Applet Designer ProfessionalTVObjectshttp://www.tvobjects.com/
2 AplicabilitateSoftware de progreshttp://apptivity.progress.com/
3 Awesume Jawa 1.0Awesume Interactive Designhttp://www.awesume.se/en/index.htm
4 Bluetteinstrument gratuit RAD Javahttp://blue.donga.ac.kr/bluette/
5 BongoMarimbahttp://www.marimba.com/
6 Clarion Internet EditionTopSpeed ​​​​Corporationhttp://www.topspeed.com/
7 CodeWarrior ProMetroWerkshttp://www.metrowerks.com/desktop/pro/
8 Cosmo CodeSGIhttp://www.sgi.com/Products/cosmo/code/index.html
9 ED pentru WindowsDevine moalehttp://www.getsoft.com/ed_java.html
10 ElixirElixir Technology Pte Ltdhttp://www.elixir.com.sg/
11 Constructor gratuitColectiv FreeBuilderhttp://www.freebuilder.com/
12 ÎNŢELEGEProiectul GRASPhttp://www.eng.auburn.edu/grasp/
13 PolizorSchimb de paradigmehttp://www.tpex.com/features.htm
14 HyperwireKinetixhttp://www.ktx.com/
15 Animator Jambaintercalarehttp://www.jamba.com/
16 Jambaintercalarehttp://www.jamba.com/
17 JavaManHartWarehttp://homepage.dave-world.net/~hartware/
18 Java StudioMicrosisteme solarehttp://www.sun.com/
19 SuliţăPas înaintehttp://www.ozemail.com.au/~stepsoft/
20 JaWizSisteme InfinityEdgehttp://www.infinityedge.com/
21 JBuilderInprisehttp://www.inprise.com/jbuilder/
22 JDesignerProAnti-glonthttp://www.bulletproof.com/
23 JDE pentru EmacsPaul Kinnucanhttp://sunsite.auc.dk/jde/
24 JADI SujalShahhttp://dan.hcf.jhu.edu/sujal/winjadi/
25 JIGS Cubhttp://www.scubed.cc/
26 JipeEnvision Internet Serviceshttp://www.users.globalnet.co.uk/~eis/jipe.htm
27 JPadModelWorkshttp://www.modelworks.com/
28 KalimantanReal-Time Enterprises, Inc.http://www.real-time.com/java/kalimantan/index.html
29 KAWATEK-TOOLS, Inc.http://www.tek-tools.com/kawa/
30 LavăDan Pagehttp://www.hnet.demon.co.uk/products/lava/index.html
31 LemurDesign insulăhttp://www.island-design.co.uk/
32 NetBeansNetBeans, Inc.http://www.netbeans.com/
33 OEW 1.0Software inovatorhttp://www.isg.de/OEW/Java/
34 PARTS pentru JavaObjectSharehttp://www.objectshare.com/p4j/p4j2info.htm
35 PutereJSybasehttp://www.sybase.com/products/powerj/
36 CuptorInteligența naturalăhttp://www.roaster.com/roaster/
37 SNiFF+Software-ul TakeFivehttp://www.takefive.com/sniff/
38 SpiriteVisNet Limitedhttp://www.evis.net/
39 SuperCedeSuperCede, Inc.http://www.supercede.com/
40 VisajTehnologia software imperialăhttp://www.ist.co.uk/
41 Vision JadeSoftware pentru viziunehttp://www.vision-soft.com/
42 VisualAge pentru JavaIBMhttp://www.software.ibm.com/ad/vajava/
43 Visual CafeSymantechttp://cafe.symantec.com/
44 Visual J++Microsofthttp://www.microsoft.com/visualj/
45 Platforma de aplicații webSilverStreamhttp://www.silverstream.com/products/main/main_f.htm
46 Java WebIDEChami.comhttp://www.chami.com/webide/
47 Nimicisoftwarebuero m&bhttp://www.softwarebuero.de/wipeout-eng.html
48 IntelliJ IDEAIntelliJ IDEAhttp://www.jetbrains.com/idea/
49 Eclipsăeclipse.orghttp://www.eclipse.org
50 JDeveloperOracolhttp://www.oracle.com/technology/products/jdev/index.html
51 JCreatorSoftware Xinoxhttp://www.jcreator.com/
52 jEditjEdithttp://www.jedit.org/
53 X-DevelopSoftware-ul Omnicorehttp://www.omnicore.com/
54 Gel IDEGExperts Inchttp://www.gexperts.com/
55 Dezvoltator de aplicații IBM Web Sphere StudioSoftware IBMhttp://www-306.ibm.com/software/awdtools/studioappdev/
56 extindeNOVELLhttp://www.novell.com/products/extend/

În primul rând, metoda de distribuție, respectiv, IDE-urile pot fi împărțite în plătite (JBuilder, Visual Cafe...) și gratuite (NetBeans, Eclipse, Gel), pe care oricine le poate descărca de pe site-ul producătorului.

Am decis să evidențiem cel de-al doilea criteriu de clasificare nu pe baza unor capacități specifice, deoarece, pe această bază, probabil că ar fi posibil să se împartă IDE-ul la infinit, ci din totalitatea capabilităților instrumentului în sine și cerințele sale. asupra resurselor. Desigur, în acest caz, prezența unui constructor de interfețe vizuale este pe primul loc, care, la rândul său, propune anumite cerințe pentru resurse.

Pe baza acestui criteriu, putem distinge instrumentele care nu au un instrument vizual pentru dezvoltarea GUI (simplu), de exemplu Gel, JCreator, și cele care au (complex) JBuilder, Idea.

În consecință, primii ocupă mai puțin de 30 MB de RAM în timpul funcționării, iar cei din urmă mai mult de 100 MB. În ceea ce privește instrumentele de dezvoltare vizuală în sine, din experiența mea și în opinia multor colegi programatori cu mulți ani de experiență, utilizarea lor nu este întotdeauna justificată pentru programatorii începători, deși par să faciliteze dezvoltarea pe de o parte, ci pe de altă parte. pe de altă parte, fac dificilă înțelegerea conceptuală a unor astfel de lucruri de bază Bibliotecile Swing cum ar fi managerii de plasare, procesarea evenimentelor etc.

De asemenea, în proiect a fost implicat un grup de studenți DSTU (aș dori în special să menționez Egorenkov V. și Lagutin D.), care tocmai începuseră să studieze OOP, ale căror sarcini erau să se familiarizeze cu IDE-ul pentru Java, să le instaleze , remediați parametrii la încărcare, emiteți comentariile și în cele din urmă propria alegere a mijloacelor pentru munca inițială. Rezultatele testelor sunt rezumate în tabelul 4.

Tabelul 4. Rezultatele testării instrumentelor IDE
OpțiuniGeIJСreator 3.5JBuilder XIdeea 5NetBeans 4.1
Timp de instalare1 sec1-1,5 sec58 sec22 sec50 sec
dimensiunea pachetului instalat10,3 MB6,49 MB332 MB157 MB118 MB
Mărimea distribuției4,21 MB3,6 MB178 MB51,6 MB46,4 MB
Lansa5s1-1,5 sec9 sec6 sec6 sec
Volumul ocupat în RAM17828 KB12960 KB74128 KB65604 KB61409 Kb
Amprenta memoriei virtuale9020 KB14960 KB78588 KB76416 KB70406 Kb

* Configurația de bază a fost bazată pe o mașină bazată pe: CPU Athlon64 3000+; RAM - 1024 MB DDR-SDRAM (pc3200)

După care a avut loc un seminar în cadrul căruia s-au rezumat rezultatele lucrării, în urma căruia s-a stabilit că în stadiul inițial al lucrării, când este în desfășurare procesul de studiere a trăsăturilor sintactice ale limbii, există nu este nevoie să utilizați capabilitățile pe care le oferă IDE-urile complexe, deși, desigur, mulți sunt interesați de modalități de a dezvolta rapid o interfață, deoarece această opțiune este cea mai intuitivă și vă permite să obțineți imediat rezultate. Dar, după cum știți, dezvoltarea interfeței este o parte integrantă, dar nu cea mai importantă a aplicației. Iar cerințele crescute de resurse de la IDE-urile complexe, mai ales ținând cont de faptul că nu toți elevii au computere de acasă cu chiar și 512 MB de RAM, oferă avantaje incontestabile IDE-urilor simple, așa că Gel a fost recunoscut drept lider printre studenți, dintre toate IDE-urile disponibile. .

Nume% din voturiNota
1 JBuilder21.47 3.0
2 Eclipsă16.64 3.3
3 NetBeans14.22 2.9
4 IntelliJ IDEA11.66 3.5
5 JDeveloper7.11 2.8
6 Visual J++5.26 1.8
7 JCreator4.26 2.3
8 VisualAge pentru Java3.69 2.8
9 Java Studio3.41 2.0

Pe baza acestui lucru, să analizăm din ce poziții abordează un programator alegerea independentă a unui instrument.

  1. Interfață. Aceasta este prima componentă pe care utilizatorul o întâlnește după instalare și care formează prima impresie a programului și pe baza căreia se poate face alegerea finală. Aici, nu este evaluat doar designul general, deși, desigur, afectează și într-un anumit fel, ci și confortul locației și configurației unor componente precum fereastra codului sursă, fereastra proiectului etc.
  2. Înființat. În consecință, după instalarea și lansarea mediului de dezvoltare pentru prima dată, acesta este configurat, adică sunt indicate căile unde se află SDK-ul instalat, DOCS, J2EE. De regulă, nu se observă diferențe semnificative în această componentă. În plus, instrumentele moderne, de regulă, determină independent componentele instalate.
  3. Editor de coduri. Configurarea afișajului codurilor sursă, de regulă, nu este, de asemenea, foarte diversă; în orice instrument puteți personaliza cu ușurință fontul și dimensiunea acestuia, precum și culoarea. Un avantaj important este prezența unui asistent atunci când, atunci când mouse-ul „se blochează” pe orice variabilă sau metodă, apare un ToolTip (fereastra contextuală) destul de detaliat în care toți parametrii obiectului sunt extinși și descriși. Există, de asemenea, o mulțime de lucruri mici drăguțe, afișarea numerotării liniilor, afișarea structurii clasei, afișarea simbolurilor de paragraf și verificarea ortografică.

Analizând, pe baza acestor caracteristici, toate instrumentele IDE care există astăzi, puteți observa că nu există diferențe semnificative între ele în afară de designul interfeței și evident că conceptul de comoditate este subiectiv.

Analiza rezultatelor sondajului, tabelele 5,6. După cum este descris mai sus, în sondajul nostru, fondurile au fost împărțite în două grupuri, cele care au fost utilizate anterior și cele care sunt utilizate în prezent. Și dacă printre instrumentele care au fost folosite în trecut există diversitate, am selectat instrumente care au primit mai mult de 3% din voturi din numărul total de participanți la sondaj, atunci printre cele care sunt utilizate în prezent nu există o astfel de diversitate, și am fost forțați să reducem procentul de voturi și, chiar și în ciuda acestui fapt, nu am primit prea multă varietate.

După cum puteți vedea, un participant constant la selecții este instrumentul IDE „simplu” JCreator, acest lucru se explică aparent prin faptul că este destul de ușor de învățat și nu necesită resurse, prin urmare este popular printre programatorii începători. JBuilder și-a pierdut poziția, acest lucru se datorează, evident, faptului că instrumente gratuite precum Eclipse și NetBeans au început să-l depășească în capacitățile lor. Eclipse ar trebui să fie recunoscut drept lider incontestabil, deoarece nu și-a pierdut poziția destul de înaltă, ci chiar a crescut. Popularitatea JDeveloper ar trebui să fie asociată cu concentrarea sa pe Oracle DBMS. Popularitatea IntelliJ IDEA se datorează faptului că, la un moment dat, dezvoltatorii au fost capabili să prezinte un produs cu capabilități puternice, iar de câțiva ani au avut destul succes în menținerea mărcii sale la un nivel înalt, ceea ce este confirmat și de evaluările ridicate ale utilizatorilor.

În general, trebuie remarcat faptul că rezultatele ratingului au fost previzibile, întrebarea se referea doar la distribuția locurilor, iar o surpriză pentru autori a fost că NetBeans a primit un procent relativ mic de voturi, mai ales având în vedere capacitățile celei mai recente versiuni. .

O analiză a motivelor alegerii unui instrument IDE a arătat că alegerea instrumentelor de prima generație a fost de obicei făcută întâmplător sau pe baza rezultatelor unei analize independente, ceea ce este firesc, deoarece la acel moment procesul de formare atât a limbajului în sine. iar instrumentele de dezvoltare au avut loc. Produsele de a doua generație au fost alese în principal ca urmare a unei analize independente sau a sfatului unui prieten. Se pare că acest lucru se datorează faptului că până atunci s-au format atât un cerc de programatori Java profesioniști, cât și o piață pentru dezvoltatorii principali de instrumente IDE.

Tabelul 7. Motive pentru alegerea unui IDE

Astfel, astăzi liderii dintre IDE-urile de dezvoltare Java sunt IntelliJ IDEA, Eclipse și NetBeans. În general, toate au aproximativ aceeași funcționalitate și este destul de dificil de evaluat care este cel mai bun. Prin urmare, atunci când alegeți un instrument, trebuie în mod evident să vă concentrați pe IDE-ul pe care este dezvoltat proiectul dacă programatorul se alătură unei echipe de dezvoltare sau să alegeți cel mai accesibil dacă intenționați să dezvoltați un proiect independent.

Lista surselor utilizate

  1. Zhmailov B.B. Avantajele și dezavantajele dezvoltării de programe Java fără utilizarea instrumentelor IDE. Revista „Buletinul Tehnologiilor Informatice și Informatice” Nr. 6, 2006.
  2. , Sergey Berdachuk,"Oracle JDeveloper 10g - Java Application Development Environment"
  3. , Alexey Litvinyuk, „Introducere în mediul de dezvoltare integrat Eclipse”
  4. , Alexander Demyanenko, „Scurtă prezentare a IDE - Jbuilder”
  5. , Alexander Demyanenko, „Scurtă prezentare a IDE - Idee”
  6. , Boris Zhmailov, „Scurtă prezentare generală a IDE - Gel”
  7. , Prezentare generală a instrumentelor de refactorizare automată în IDE-ul Java

Aproape toate cărțile și tutorialele despre Java pentru începători încep cu o descriere a OOP: cât de minunat și de magnific este. Este clar, deoarece în Java este pur și simplu imposibil să faci orice altă programare decât cea orientată pe obiecte, atunci mai întâi se propune să stăpânești 40..80 de pagini de analogii nebunești cu ierarhia pisici/câini/rățe/mașini și doar după aceea se propune să scrie „Hello, World!” . :-)

Este de remarcat faptul că absolut toate antrenamentele Java se bazează pe cea mai primitivă ieșire a rezultatului către consolă. Aceea nu este aplicație de consolăîn înțelegerea obișnuită, și anume ieșirea unor date linie cu linie. Ei bine, de exemplu, Turbo Pascal 3.0 a fost lansat în 1985 și avea deja suport pentru modurile grafice. În 1990, a apărut Turbo Vision - un lucru foarte tare - adica Windows doar pentru DOS. Și în Java în 2018, numai ieșirea din consolă este posibilă. Și tot acest entuziasm și răcoare este cumva spulberată deja la etapa „Bună ziua, lume!”... Singurul lucru mai rău este probabil să te distrezi pe un calculator programabil MK-61 sau MK-52 - dar ce? există aceeași ieșire linie cu linie.

Dar cel mai amuzant lucru este că în Java poți de fapt să creezi programe folosind programarea vizuală! Am aflat despre asta doar când am citit (sau mai bine zis m-am familiarizat cu) o carte de 500 de pagini, unde într-unul din ultimele capitole a devenit brusc clar că pentru Java există GUI-uri (interfețe grafice de utilizator) obișnuite și poți proiecta programe cu butoane, câmpuri de introducere și meniuri normale. Se pune întrebarea: de ce ai petrecut atât de mult timp chibzuind cu această consolă proastă când ai fi putut face totul frumos și îngrijit deodată?

După ce am petrecut câteva zile studiind această problemă, am aflat câteva nuanțe amuzante.

Primul- GUI pentru Java are trei tipuri (biblioteci): A.W.T., Leagăn(cine vine cu astfel de nume?) și JavaFX.

Astăzi (Java 8 și 9) toate sunt incluse în JDK: adică totul funcționează din cutie și nu trebuie să vă obosiți să le instalați. Acesta este un mare plus.

Dar AWT este prima și foarte veche implementare, așa că nu este nevoie să o folosești. În general - nu cușer. Swing nu este, de asemenea, cușer, pentru că ceva s-a încurcat acolo și programele sunt teribil de lente din cauza asta. Nu pot spune mai precis, nu am înțeles, dar se pare că nu mai este dezvoltat oficial pentru mai multe versiuni. Dar JavaFX este un zgomot și viitorul nostru strălucit.

Există o altă urâciune - applet-uri java, cele care funcționează în browser și în același timp îl „atârnă” strâns, la fel ca Flash, doar și mai rău. Din fericire, acest lucru/aceste lucruri/lucruri practic nu mai sunt folosite, așa că pierderea timpului studiindu-le este inutilă.

Deci, singurul lucru pe care merită să-l petreci timp este JavaFX.

Al doilea punct. Nu este atât de simplu. Să luăm în considerare Delphi (sau Visual Studio, Lazarus, nu contează). Chiar și pentru un începător „verde”, crearea unui program simplu (un buton și un câmp de text pentru ieșire) va decurge astfel:

  • lansează Delphi;
  • se creează automat un nou proiect cu formularul principal;
  • selectați un buton din paleta componentelor și plasați-l pe formular; totul este vizual
  • în mod similar, plasăm un câmp de text pe formular;
  • dacă este necesar, în panoul de proprietăți puteți specifica textul butonului, dimensiunile etc.;
  • lansare - Delphi se va oferi să salveze, să salveze.

Adică nu am scris o singură linie de cod, IDE-ul a făcut totul singur. Dacă te uiți la codul generat, nu îl poți numi simplu - necesită deja anumite cunoștințe, dar Delphi este suficient de inteligent pentru a înțelege cum să lucrezi cu el.

Dacă vrem să adăugăm o acțiune, de exemplu, când se face clic pe un buton, completați un câmp de text cu expresia „Bună ziua!”, atunci facem acest lucru:

  • faceți dublu clic pe butonul (sau selectați evenimentul onClick);
  • Delphi creează codul pentru acest handler de evenimente și ne transferă în editor;
  • introducem numele câmpului de text și Delphi oferă indicii care vă pot ajuta să vă dați seama ce să faceți și cum să faceți acest lucru.

Adică, din nou, IDE-ul a făcut toată treaba murdară.

Dar acest lucru este în alte limbi, Java își urmează drumul. Pentru a crea un buton în JavaFX, trebuie să creați manual un Stage - „scena de teatru” (numele este complet serios!) și pe ei plasează o scenă. Există un fel de container în care sunt deja plasate alte elemente.

Se presupune că fiecare element și fiecare dintre proprietățile sale trebuie programate individual. Iată un exemplu de două butoane și o etichetă din cartea mea de antrenament

Răspuns = new Label ("Apăsați un buton"); Button btnUp = new Button ("Sus"); Button btnDown = new Button ("Jos"); btnUp.setOnAction(noul EventHandler () ( public void handle(ActionEvent ae) ( response.setText("Ai apăsat Sus."); ) )); btnDown.setOnAction(noul EventHandler () ( public void handle(ActionEvent ae) ( response.setText("Ai apăsat în jos."); ) )); rootNode.getChildren().addAll(btnUp, btnDown, răspuns); ...

Când există o duzină de butoane, plus 20 de elemente de meniu, plus alte 30 de componente, codul nu va părea mic. Și asta fără codul care este responsabil pentru proprietăți suplimentare, cum ar fi alinierea, dimensiunile, fontul... Și aici este al doilea indică faptul că tutorialele JavaFX arată exact cum să scrieți manual „cod fx”. Melancolie, într-un cuvânt...

Dar aici vine harul mântuitor a treia nuanță. Se pare că oamenii inteligenți (aparent familiarizați cu IDE-urile cu drepturi depline) au dezvoltat un alt tip de aplicație, în care un fișier xml descriptiv numit fxml, iar astfel de programe sunt schimbate ca „ Aplicații FXML JavaFX»

Este absolut surprinzător pentru mine că învățarea Java nu începe cu astfel de aplicații. Chiar dacă nu este Delphi, este totuși de un milion de milioane de ori mai bine decât să lucrezi cu consola și să-ți umple capul cu alte gunoaie despre motivul pentru care trebuie să folosești sute de linii de POO, unde în alte limbi este nevoie de o procedură simplă. ;-)

Acum hai să fim serioși. Dacă nu ați programat niciodată în Java, puteți încerca chiar acum. De fapt, este destul de mișto, deși va dura puțin timp să te obișnuiești cu programele. Dacă aveți experiență cu „IDE-uri vizuale”, atunci și mai bine - veți întâlni o mulțime de oameni pe care îi cunoașteți.

JDK

Java trebuie să fie instalat pe computer. Nu voi oferi link-uri despre cum să faceți acest lucru - Google vă va ajuta, deoarece totul este prea simplu.

IDE

În Java nu există un singur program - mediul de dezvoltare, așa că există exemple pe Internet din diferite programe. Cele mai primitive, precum Notepad++, sunt potrivite doar pentru ieșirea pe consolă, dar dacă luăm în considerare ceva mai serios, atunci ies în evidență doar trei candidați: NetBeans, Eclipse și IntelliJ IDEA.

NetBeans- cel mai simplu program care se lanseaza rapid (fata de altii) si functioneaza destul de bine.

Eclipsă- de asemenea, o opțiune bună, mai puternică decât NetBeans, dar mai slabă decât IntelliJ IDEA.

IntelliJ IDEA- arată cel mai tare, dar trebuie să plătești pentru asta cu viteză. Este de remarcat faptul că Android Studio se bazează pe IntelliJ IDEA, dar din anumite motive studioul funcționează mult mai lent.

Un punct important este legat de programarea pentru Android. Dintre aceste trei IDE-uri, doar IntelliJ IDEA este mai mult sau mai puțin potrivit pentru asta. Există o mulțime de materiale pe Internet despre programarea pentru Android în Eclipse, dar toate sunt deja depășite - nu vă pierdeți timpul lansând un plugin ADT vechi și încercând să faceți măcar ceva cu el. Poate că vechiul SDK Android va funcționa, dar toate cele noi nu vor mai funcționa.

Vă voi arăta cum să creați o aplicație FXML JavaFX în toate cele trei programe, dar înainte de a începe, trebuie să instalați încă un program: SceneBuilder (utilizați versiunea Java 8). Acesta este programul cheie în care, de fapt, se realizează toată construcția vizuală. SceneBuilder Poate funcționa singur fără un IDE, așa că îl puteți rula și vedeți cum funcționează. Ieșirea va fi un fișier fxml care conține toate markupurile necesare. Acest fișier este folosit în IDE, în loc să scrie megatoni de cod. :-)

TK

Programul creat va fi foarte simplu - un buton și un câmp de text. Când faceți clic pe butonul, lăsați textul „Bună ziua!” să fie adăugat în câmpul de text.

În fiecare program, trebuie să specificați setarea în avans - cea folosită de JDK. Dacă nu vă puteți da seama cum să o faceți, căutați-l pe Google.

NetBeans

Înainte de a începe, trebuie să vă conectați SceneBuilder: Instrumente - Opțiuni - Java - JavaFX - Pagina de pornire a Scene Builder. Selectați directorul programului. Configurarea trebuie făcută o singură dată. Acest lucru se aplică tuturor IDE-urilor.

Creați un nou proiect în care trebuie să selectați „FXML JavaFX Application”.

Faceți clic pe „Finish” și, după ceva lucru de către NetBeans, vedem fișierele terminate:

  • Myfx.java- acesta este fișierul principal, care lansează de fapt întregul program.
  • FXMLDocumentController.java- acesta este „controlerul”, unde va avea loc cea mai mare parte a programării.
  • FXMLDocument.fxml- acest fișier stochează partea vizuală.

Acum rulați programul. Mai întâi, va avea loc asamblarea și compilarea (destul de rapid), după care va apărea fereastra programului nostru.

Acest lucru este grozav pentru că nu am scris o singură linie de cod, dar avem deja un program cu un buton de lucru. :-)

Dacă ați specificat corect calea către SceneBuilder, puteți selecta elementul de meniu "Deschis" la dosar FXMLDocument.fxml. Același lucru se va întâmpla dacă faceți dublu clic. Se va deschide SceneBuilder. Dacă nu există niciun element, atunci calea este specificată incorect, verificați setările.

Principiul de funcționare în SceneBuilder este același pentru toate IDE-urile, așa că deocamdată voi descrie doar puncte generale, apoi vă puteți da seama singur.

Este de remarcat faptul că, după editarea fișierului, nu trebuie să închideți SceneBuilder. Trebuie doar să salvați (Ctrl+S) și să comutați la IDE - acesta va prelua singur modificările.

Fereastra SceneBuilder este împărțită în trei părți:

  • în stânga sunt seturi de componente, ierarhie și controler, unde este indicată clasa principală (acest lucru este important!)
  • în centru se află forma însăși, unde are loc construcția vizuală.
  • în dreapta sunt proprietățile componente, împărțite în trei file (aceasta este o diviziune condiționată). Fila Cod este responsabilă pentru ceea ce va fi folosit în fișierul java.

Crearea de programe FX ar trebui să înceapă cu un container. În acest exemplu, NetBeans a folosit AnchorPane. Este destul de convenabil, permițându-vă să configurați indentarea „corectă” pentru elementele imbricate. Tab Containere contine si alte recipiente cu care te poti exersa pe cont propriu (n-am invatat nici macar jumatate din el :-)).

Ierarhia componentelor este un lucru foarte convenabil, permițându-vă să selectați rapid elementul dorit.

Conform termenilor caietului de sarcini, trebuie să avem un câmp de text. NetBeans folosește Label, dar nu vom elimina nimic, doar adăugăm un nou element TextField pe forma (arbitrar dupa gustul tau).

Previzualizarea este posibilă în SceneBuilder (Ctrl+P). În acest mod, doar forma și toate elementele sunt afișate „fără programare java”.

Acum un punct important: pentru a putea folosi o componentă într-un program java (în codul nostru), trebuie făcute două lucruri.

Prima este să verificați dacă este specificat controlerul corect. În cazul nostru, NetBeans însuși a făcut deja totul și a specificat myfx.FXMLDocumentController .

După cum puteți vedea, acesta este controlerul din fișier FXMLDocumentController.java(pachet.controler). IDE-urile nu indică întotdeauna acest lucru, dar acest lucru este important, deoarece fișierul fxml (mai precis, codul java) îl folosește pentru legare.

Al doilea punct este că componenta utilizată trebuie să aibă propriul ID - acesta este parametrul fx:id. Aici am indicat textField1.

Un mesaj triunghi galben va apărea în partea de sus, indicând că se presupune că nu există nicio legătură între acest id și controler. Nu-i acorda atenție momentan, vom vorbi despre asta mai târziu.

Butonul care va umple câmpul de text trebuie să aibă și propriul id, precum și o metodă de eveniment onAction (acesta este evenimentul principal al componentei, și nu onClick, ca în Delphi). NetBeans s-a ocupat deja de asta, așa că nu va trebui să scriem nimic.

În acest moment construcția vizuală poate fi finalizată. Salvați și comutați la NetBeans. Vedem că dosarul FXMLDocument.fxml schimbat: adaugat textField1:

Acum trebuie să folosim cumva câmpul de text în codul java. Spre deosebire de Delphi, NetBeans nu creează niciun cod pentru asta, așa că va trebui să-l adăugăm semi-manual. Pentru a face acest lucru, diferite IDE-uri folosesc metode diferite, dar principiul general este că trebuie să plasați cursorul pe câmpul dorit din editor și să efectuați câteva "acțiune". În NetBeans se numește Instalați controlerulîn meniu Sursă. (Da, Java are probleme mari cu denumirea...)

După executarea acestei comenzi, va avea loc o tranziție la fișier FXMLDocumentController.java, unde la cod va fi adăugată o declarație de variabilă textField1:

Rețineți „@FXML” - această adnotare indică faptul că codul este utilizat în FXML într-un fel. După aceste modificări, SceneBuilder nu va mai emite un avertisment așa cum a făcut anterior triunghiul galben. Dacă rulați din nou SceneBuilder, puteți verifica acest lucru.

Lansăm programul de execuție pentru test. Acum sarcina noastră este să completăm câmpul de text făcând clic pe butonul. După cum ați înțeles deja metoda handleButtonAction face exact treaba potrivită. Adăugăm în el:

TextField1.setText("Bună ziua!");

Fiți atenți la modul în care funcționează completarea codului după ce punctul este apăsat.

Pe măsură ce tastați, NetBeans va restrânge opțiunile de unde puteți selecta opțiunea dorită. Această caracteristică face viața foarte ușoară pentru programatori, deoarece există prea multe opțiuni și acest lucru vă permite să evitați diferite tipuri de erori de sintaxă la tastare.

Această caracteristică este prezentă în toate IDE-urile, deși există diferențe în implementare și utilizare.

Lansăm programul și vedem că totul funcționează așa cum trebuie.

A trebuit să scriem o singură linie de cod și să facem câțiva pași suplimentari în editor.

Eclipsă

Eclipse durează puțin mai mult să pornească decât NetBeans. Mai întâi trebuie să specificați calea către SceneBuilder. Acest lucru se face în Fereastra - Preferințe - JavaFX.

Vă rugăm să rețineți că Eclipse nu este un program rusesc (nici măcar nu știu dacă există o limbă rusă pentru el).

Creați un nou proiect și selectați JavaFX.

Clic Următorulși accesați pagina de setări. Aici am indicat denumirea proiectului, ca si pana acum myfx(Am directoare de proiecte diferite pentru diferite IDE-uri, astfel încât acestea să nu se suprapună unele cu altele).

Aici trebuie să selectați tipul de aplicație, tipul de container și numele controlerului. Clic finalizarea iar Eclipse generează rapid scheletul viitorului nostru program.

Totul aici este foarte asemănător, a mai fost adăugat un singur fișier aplicație.css- da, da, în JavaFX poți folosi CSS pentru a personaliza designul! Eclipse a generat imediat codul de conectare pentru acest fișier.

Să rulăm programul și să ne asigurăm că nu există erori.

Spre deosebire de NetBeans, acest formular este complet gol. Să-l deschidem în SceneBuilder folosind meniul contextual.

Și aici vedem că nu există formă. Dar, de fapt, există - doar că dimensiunea calculată (înălțime și lățime) este utilizată implicit, care în acest caz este zero. Nu există componente! În cazul nostru, acest lucru nu este exact ceea ce avem nevoie, așa că vom selecta BorderPane în lista ierarhică și în proprietăți Lățimea prefȘi Înălțime Pref Să indicăm câteva valori. Aceste proprietăți specifică lățimea și înălțimea „dorite”. După aceasta, forma imediat „apare”.

Containerul BorderPane este format din 4 părți: sus, dreapta, jos, stânga și centru. Componentele ar trebui să fie plasate în părți diferite - poziția lor va depinde de aceasta atunci când dimensiunea ferestrei este schimbată.

Este destul de dificil de explicat în cuvinte, doar încercați să plasați câteva butoane, apoi redimensionați fereastra în previzualizare.

Nu m-am încântat prea mult și am plasat un câmp de text în partea de sus și un buton în centru.

Acum să verificăm dacă controlerul este specificat: în acest caz aplicație.SampleController- Eclipse a făcut treaba pentru noi.

Acum trebuie să specificăm id-ul pentru elementele noastre. Pentru butonul pe care l-am setat btn1, și câmpul de text textField1. Am primit din nou mesajul „triunghi galben”.

Pentru buton, specificam o metoda pentru eveniment - btn1Click.

Să salvăm și să revenim la Eclipse. Vom vedea că fișierul Sample.fxml actualizat, dar pictogramele de avertizare au apărut lângă unele rânduri.

Situația de aici este exact aceeași ca în NetBeans - trebuie să faceți editări într-un mod „semi-manual”. În Eclipse, acest lucru se face folosind meniul contextual pentru al doilea buton al mouse-ului: Soluție rapidă sau tastă rapidă Ctrl+1(oricare este mai convenabil).

În același timp, apare un indiciu despre acțiunea intenționată. De exemplu pentru textField1 Se propune adăugarea unui identificator la controlor:

iar pentru buton există și o metodă de gestionare a evenimentelor:

În același timp, Eclipse încetinește puțin și modificările nu sunt afișate imediat pe ecran. Aici trebuie fie să comutați la fișierul controlerului, fie să așteptați puțin. Ca urmare, modificările necesare vor fi adăugate codului și pictogramele de avertizare vor dispărea.

Să adăugăm codul nostru așa cum am făcut înainte în NetBeans.

Observați cum funcția de completare automată funcționează mai inteligent. În modul automat încetinește puțin, dar dacă apeși Ctrl+Spațiu(aceeași combinație este folosită în multe IDE-uri), acest lucru vă permite să obțineți ajutor bun.

Să lansăm programul nostru.

Și adăugăm un alt IDE la meritul nostru. :-)

IntelliJ IDEA

IntelliJ IDEA se lansează destul de lent, astfel încât să vă puteți verifica e-mailul. :-)

Din nou, specificați calea către SceneBuilder: Fișier - Setări:

Și indicați numele acestuia (ca de obicei - myfx):

IntelliJ IDEA se va inițializa și vom vedea cele trei fișiere deja familiare. Să rulăm programul pentru a verifica erorile.

Aceasta este, de asemenea, o formă goală, dar titlul programului este indicat. Dacă te uiți la cod Main.java, apoi vom vedea linia:

PrimaryStage.setTitle("Bună lume");

Acesta este titlul aplicației. În alte IDE-uri această linie lipsește, dar acum știm pentru ce este „scena teatrului”. ;-)

Comutați la SceneBuilder (similar cu Eclipse): cu al doilea buton al mouse-ului trebuie să selectați Deschideți în SceneBuilder.

Aici este și o formă goală, dar cu recipient GridPane. Instalare Lățimea prefȘi Înălțime Pref pentru a afișa formularul.

GridPane în sine este o grilă de celule pentru elemente. Cred că nu are rost să ne repetăm ​​- toate acțiunile vor fi similare:

  • plasați un buton și un câmp de testare,
  • atribuiți-le un ID,
  • pentru buton, specificați o metodă de procesare a clicului,
  • nu uitați să verificați dacă controlerul este specificat ( eşantion.Controller).

Închideți SceneBuilder și reveniți la IntelliJ IDEA. Aici trebuie să adăugați ID-uri la cod și, de asemenea, să creați o metodă de a reacționa la un clic pe buton.

IntelliJ IDEA oferă două moduri de a face acest lucru. În primul rând, când treceți mouse-ul peste „zona cu probleme”, va apărea un indiciu pe care puteți face clic pe:

Al doilea este o tastă rapidă Alt+Enter

De fiecare dată când îl adăugați, treceți la fișierul controlerului, unde puteți vedea imediat modificările.

În acest caz, rețineți că linia „@FXML” nu este adăugată. Dacă îl adăugăm manual înainte de variabile și metodă, atunci IntelliJ IDEA va oferi imediat să adauge clasa java necesară:

În general, IntelliJ IDEA dă dovadă de inteligență destul de bună și acționează ca asistent în scrierea codului. Și o face independent, fără apăsări inutile de butoane.

Ei bine, să adăugăm codul nostru pentru handler și să rulăm programul:

Super, totul funcționează!

Total

Concluzia principală este Programarea vizuală este posibilă în Java. Poate că nu este ideal, dar este destul de potrivit, mai ales pentru începători. Învățarea unei limbi este mult mai interesantă atunci când există un rezultat tangibil - OOP, cursurile și alte înțelepciuni sunt bune, dar este mai bine să începeți cu butoane, câmpuri de introducere, meniuri și tot ceea ce implică un program normal. Și consola este plictisitoare și neinteresantă.

Am adus trei IDE-uri nu întâmplător. Există o mulțime de exemple pe Internet pentru Java și toate sunt pentru diferite programe. Personal, încă nu m-am hotărât asupra preferinței mele, deoarece toate au atât argumente pro, cât și contra. Probabil că trebuie să lucrăm cu toată lumea, atunci va fi clar.

Dar punctul cheie este capacitatea de a lucra cu SceneBuilder. Construirea unui formular în JavaFX este ușor diferită de Delphi, în primul rând prin utilizarea containerelor complexe (pot fi imbricate unul în celălalt). Prin urmare, ar trebui să vă ocupați mai întâi de ele, apoi puteți prelua singuri componentele.

Cele mai bune articole pe această temă