Come configurare smartphone e PC. Portale informativo
  • casa
  • Interessante
  • Eclipse, NetBeans o IntelliJ IDEA? Scelta di un IDE per lo sviluppo Java. Ambiente di programmazione Java

Eclipse, NetBeans o IntelliJ IDEA? Scelta di un IDE per lo sviluppo Java. Ambiente di programmazione Java

Presentiamo alla vostra attenzione un adattamento di un articolo di Martin Heller, programmatore ed editore della risorsa JavaWorld. Probabilmente hai già sentito parlare dei primi tre IDE per lo sviluppo Java. Il 90% dei programmatori industriali utilizza Eclipse o NetBeans o IntelliJ IDEA e ciascuno di questi IDE presenta vantaggi e svantaggi. In questo articolo cercheremo di descriverli in modo che tu capisca quale è giusto per te. Anche se, ovviamente, è meglio provarli tutti e tre al lavoro e scoprire cosa funziona meglio per te. Nessuna recensione può sostituirlo. Ho già lavorato con questi IDE in precedenza, ma per questa ricerca ho installato IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE e NetBeans 8.1 Java EE su un laptop MacBook Pro. Ho testato l'IDE su diversi progetti Java open source.

Cosa aspettarsi da un IDE

Un moderno IDE "sviluppatore Java sano" dovrebbe supportare Java 8, Scala, Groovy e altri linguaggi di macchine virtuali Java che usa regolarmente. Sarebbe utile anche il supporto per i principali server di applicazioni e i framework Web più popolari, inclusi Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails e Vaadin. L'IDE dovrebbe essere compatibile con qualsiasi build di controllo della versione come Ant, Maven o Gradle, insieme a Git, SVN, CVS, Mercurial o Bazaar. Inoltre, per l'ambiente di sviluppo, è importante essere in grado di lavorare con i database e il livello client del tuo stack, avere il supporto per JavaScript nativo, TypeScript, HTML, SQL, JavaServer Pages, Hibernate e Java Persistence API. Infine, è logico sperare che l'IDE ti permetta di modificare, creare, eseguire il debug e testare i sistemi senza stress inutili. Idealmente, se l'ambiente di sviluppo supporta non solo il completamento intelligente del codice, ma anche il refactoring intelligente e le metriche del codice. In molti casi, sarà utile supportare framework e stub di test. Se il tuo team utilizza un sistema di ticketing e CI/CD, hai bisogno dell'IDE per poterti connettere. Inoltre, decidi se è necessario distribuire ed eseguire il debug in container e cloud. Abbiamo elencato solo le principali aspettative (forse hai qualcosa da aggiungere), e ora diamo un'occhiata più da vicino ai nostri rivali.

IntelliJ IDEA


IntelliJ IDEA è disponibile in due versioni in termini di caratteristiche e prezzo: un'edizione Community gratuita e un'edizione Ultimate a pagamento con funzionalità estese. L'edizione della community è per lo sviluppo JVM e Android. La versione gratuita supporta Java, Kotlin, Groovy e Scala; androide; Maven, Gradle e SBT funziona con i sistemi di controllo della versione Git, SVN, Mercurial e CVS. L'edizione Ultimate è su misura per lo sviluppo web e aziendale. Questa versione dell'IDE funziona non solo con Git, SVN, Mercurial e CVS, ma anche con Perforce, ClearCase e TFS; in esso puoi scrivere in JavaScript e TypeScript; naturalmente, c'è il supporto per Java EE, Spring, GWT, Vaadin, Play, Grails e una serie di altri framework. E, naturalmente, non senza SQL e strumenti di database. L'idea da cui gli sviluppatori di questo IDE sono guidati quando formano una politica dei prezzi è che la sua versione commerciale (Ultimate) prenderà il suo posto sui computer dei professionisti, grazie alla quale le loro prestazioni aumenteranno. Se un programmatore Java guadagna $ 50.000 (o più) all'anno, il ritorno sull'investimento speso per l'IDE IntelliJ IDEA IDE a pagamento ($ 500 per un abbonamento annuale) sarà molto veloce grazie anche all'accelerazione del suo lavoro. Negli anni successivi il prezzo per le imprese cala, per startup, liberi professionisti è notevolmente più basso e per studenti, insegnanti, campioni Java e sviluppatori open source è completamente gratuito. IntelliJ IDEA colpisce per la sua profonda comprensione del codice, l'ergonomia intelligente, le funzionalità di sviluppo integrate e il supporto per molti linguaggi.
Figura 1. IntelliJ IDEA mostra il numero di avvisi (avvisi) e supposizioni in base all'analisi statistica del codice Java. Puoi esplorare le ipotesi in modo più dettagliato facendo clic su di esse, come mostrato nell'immagine; in molti casi otterrai un elenco con scelte e opzioni per le correzioni.

Comprensione profonda del codice

L'evidenziazione della sintassi e il semplice completamento del codice sono comuni in qualsiasi moderno editor Java. IDEA ha fatto un ulteriore passo avanti offrendo il "completamento automatico intelligente". Questo termine significa che l'ambiente di sviluppo mostra un elenco dei simboli più rilevanti applicabili in un determinato contesto. L'elenco dei simboli dipende non solo dal contesto in quanto tale, "generalmente accettato", ma dallo stile di programmazione dello sviluppatore, dalla frequenza con cui utilizza determinati operatori. "Completamento catena" mostra un elenco di caratteri applicabili consentiti tramite metodi o getter nel contesto corrente. Inoltre, nel caso di membri o costanti statici, IDEA aggiunge automaticamente tutte le istruzioni di importazione necessarie. In tutti i casi di completamento automatico, IDEA cerca di indovinare il tipo di carattere in fase di esecuzione, perfezionare la sua scelta e persino applicare il cast del tipo, se necessario. Il codice Java include spesso frammenti di altre lingue come stringhe. IDEA può iniettare codice SQL, XPath, HTML, CSS o JavaScript in stringhe letterali Java. In questo senso, l'IDE può refactoring del codice in più lingue. Ad esempio, se si rinomina una classe in una mappatura JPA, IDEA aggiornerà l'entità JPA e la classe di espressione corrispondente. Quando si esegue il refactoring di un pezzo di codice, lo sviluppatore ha un desiderio (abbastanza naturale): che anche tutti i duplicati di questo codice vengano refactoring. IDEA Ultimate trova duplicati e frammenti simili e li refactoring. IntelliJ IDEA analizza il codice al caricamento e direttamente sul tipo. Indica problemi sospetti (come nella nostra immagine sopra) e facoltativamente offre un elenco di probabili soluzioni rapide ai problemi rilevati.

Ergonomia


IntelliJ IDEA è progettato per non espellere uno sviluppatore da uno stato di produttività del threading se si trova già in esso. La finestra Progetto, mostrata nella prima figura a sinistra, scompare con un semplice clic del mouse in modo che il programmatore possa concentrarsi sulla finestra dell'editor di codice. Per tutte le azioni necessarie durante la scrittura del codice, sono disponibili scorciatoie da tastiera per la loro chiamata rapida, inclusa la definizione dei simboli nelle finestre pop-up. All'inizio, tutte queste combinazioni sono difficili da ricordare, ma gradualmente ti ci abitui e le usi solo. Tuttavia, anche se un programmatore non usa le scorciatoie da tastiera, come dimostra la pratica, si abitua a lavorare in IDEA facilmente e velocemente. Segnalo in particolare il debugger IDEA: i valori delle variabili vengono visualizzati direttamente nella finestra dell'editor, accanto al codice sorgente corrispondente. Quando lo stato di una variabile cambia, cambia anche il colore di evidenziazione.

Strumenti integrati

IntelliJ IDEA fornisce un'unica interfaccia per interagire con la maggior parte dei sistemi di controllo delle versioni, inclusi Git, SVN, Mercurial, CVS, Perforce e TFS. Puoi gestire le modifiche direttamente nell'IDE, il che è molto conveniente. Quando ho testato IDEA, desideravo che l'ultima modifica al codice sorgente fosse mostrata nella finestra dell'editor come un'annotazione (come accade, ad esempio, in Visual Studio). Come si è scoperto, IDEA ha un plug-in speciale per questo. IDEA include anche strumenti di compilazione, un runtime di test, strumenti di copertura e una finestra terminale integrata. IntelliJ non ha un proprio profiler, ma quelli di terze parti possono essere collegati ad esso usando plugin. Ad esempio, YourKit, creato da un ex sviluppatore principale di JetBrains o VisualVM (è una versione riconfezionata del profiler NetBeans). Il debug in Java può essere agonizzante quando ogni sorta di cose strane accadono a classi per le quali non hai il codice sorgente. Il pacchetto IDEA include un decompilatore per questi casi. La programmazione Java lato server implica una frequente interazione con i database, quindi i programmatori IDEA Ultimate apprezzeranno la comodità di SQL e degli strumenti di database. Ma se le loro capacità non sono sufficienti per qualcuno, puoi acquistare la versione IDEA Ultimate con un IDE SQL integrato (DataGrip). È vero, sarà un po' più costoso di un normale abbonamento IDEA Ultimate. IntelliJ IDEA supporta tutti i principali server di applicazioni JVM e consente di distribuire ed eseguire il debug su questi server, eliminando le difficoltà familiari a tutti i programmatori Java Enterprise. IDEA supporta anche Docker (utilizzando un plug-in che aggiunge una speciale finestra dello strumento Docker all'ambiente di sviluppo. A proposito, IDEA ha un mare di plug-in.

Vero poliglotta

IDEA ha ampliato il supporto del codice per Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS e altri framework. Potresti aver notato che non tutti sono correlati a Java. IDEA immediatamente "capisce" altri linguaggi: Groovy, Kotlin, Scala, JavaScript, TypeScript e SQL. Se non hai trovato la tua lingua in questo elenco, ci sono attualmente 19 plugin di lingua IntelliJ, in particolare per supportare R, Elm e D.


Eclipse per molti anni ha mantenuto con sicurezza il palmo della popolarità tra gli IDE Java. Questo ambiente è completamente gratuito, open source, scritto principalmente in Java. Tuttavia, la sua architettura modulare consente di utilizzare Eclipse anche con altri linguaggi. Il progetto Eclipse, avviato da IBM, è apparso nel 2001. Volevano sostituire la famiglia di ambienti di sviluppo IBM Visual Age basata su Smalltalk. Ebbene, l'obiettivo principale, come dice anche il nome, era quello di eclissare Microsoft Visual Studio (eclipse in inglese significa eclipse). La portabilità di Java aiuta Eclipse a essere multipiattaforma: l'IDE funziona su Linux, Mac OS X, Solaris e Windows. Nel bene e nel male, Java Standard Widget Toolkit (SWT) è almeno in parte responsabile dell'aspetto grafico di Eclipse. Eclipse deve le sue prestazioni (o, come dicono alcuni sostenitori, la sua mancanza) alla JVM. Eclipse è piuttosto lento perché è radicato in hardware piuttosto vecchio e versioni antiche della JVM. Anche oggi sembra essere lento, soprattutto se ci alleghi molti plugin. Parte del costo delle risorse di Eclipse può essere attribuita al suo compilatore incrementale integrato, che viene eseguito ogni volta che viene caricato un file o aggiornato il codice. Una cosa utile, è lei che cattura gli errori durante l'inserimento del testo. Indipendentemente dall'assieme, un progetto Eclipse mantiene un modello di contenuto che contiene informazioni sulla gerarchia dei tipi, i riferimenti e le dichiarazioni degli elementi Java. L'attuale versione di Eclipse si chiama Neon (4.6.0). Ho installato Eclipse Java EE IDE per sviluppatori Web (questa è tutt'altro che l'unica opzione, puoi scegliere qualcos'altro). Contiene un Eclipse SDK minimo e i plugin vengono aggiunti su richiesta. A proposito, lavorare con i plugin in questo IDE non è per i deboli di cuore. I plugin di terze parti sono spesso in conflitto tra loro, anche se le loro specifiche ufficiali non dicono nulla al riguardo.
Figura 2. Da sinistra a destra, ci sono quattro barre degli strumenti di Eclipse: Package Explorer, Java Editor, Java Class Structure ed Task List. Il progetto caricato in Eclipse in questa figura è un framework di test JUnit. I pannelli possono essere facilmente scambiati.

Supporto plug-in

L'ecosistema di plugin di Eclipse è sia la forza di questo IDE che uno dei suoi maggiori problemi. È a causa dell'incompatibilità dei plugin che a volte cadono interi assembly e i programmatori devono iniziare a lavorare dall'inizio. Attualmente ci sono oltre 1700 plugin scritti per Eclipse, ufficiali e non, che potrebbero funzionare o meno alla grande. I plug-in Eclipse supportano oltre 100 linguaggi di programmazione e quasi 200 framework di sviluppo di applicazioni. È supportata anche la maggior parte dei server Java: se si designa una nuova connessione al server da Eclipse, verrai indirizzato all'elenco delle cartelle dei produttori con circa 30 server delle applicazioni. Solo le varianti di Apache Tomcat saranno fino a nove pezzi. I fornitori commerciali tendono a raggruppare le loro soluzioni insieme: ad esempio, c'è un solo elemento Red Hat JBoss Middleware, mentre all'interno troverai WildFly e gli strumenti server EAP, oltre a JBoss AS.

Editing, refactoring e debugging

La prima esperienza con Eclipse può essere fonte di confusione e persino confusione. Il primo passaggio consiste nell'impostare Eclipse e abituarsi alla sua architettura concettuale di spazi di lavoro, viste e viste. Tutto questo è determinato dai plugin che hai installato. Per lo sviluppo Java lato server, utilizzerai probabilmente le viste di navigazione Java, Java EE e Java, la vista Package Explorer, la vista debug, la vista sincronizzazione comandi degli strumenti Web, la vista sviluppo database e la vista debug database. In pratica, tutto ha un senso quando apri le finestre di cui hai bisogno. Eclipse offre quasi sempre diversi modi per risolvere un problema particolare. Ad esempio, puoi visualizzare il codice utilizzando la prospettiva di navigazione Java. Cosa scegliere è una questione di gusto e di scelta. Java Special Search consente di trovare dichiarazioni, riferimenti e occorrenze di pacchetti, tipi, metodi e campi Java. Puoi anche utilizzare l'accesso rapido per la ricerca e l'anteprima. Modelli di codice comuni possono essere generati da modelli di codice. Il refactoring Java in Eclipse supporta 23 operazioni, che vanno da operazioni di ridenominazione comuni a trasformazioni meno ovvie (come nel libro di Martin Fowler). Eclipse supporta il debug sia in locale che in remoto, a condizione che tu stia utilizzando una JVM che supporta il debug remoto. Il debug è piuttosto standard: definisci i punti di interruzione e poi guardi le variabili nella scheda di debug. Naturalmente, puoi scorrere il tuo codice e valutare le espressioni. Eclipse ha un vasto database di documentazione di tutte le età, valori e utilità. Purtroppo, trovare un'immagine nelle istruzioni che non corrisponde alla versione corrente, ad esempio con un'interfaccia obsoleta e un layout dei pulsanti, è una cosa comune per questo IDE. Sfortunatamente, il problema degli aggiornamenti tardivi della documentazione è molto comune per tutti i progetti con codice sorgente.


NetBeans è nato come progetto universitario studentesco a Praga nel 1996. Nel 1997, l'IDE è diventato un prodotto commerciale e nel 1999 è stato acquistato da Sun Microsystems (i genitori di Java) e l'anno successivo ha presentato una versione open source. L'attuale versione 8.1 funziona su macchine che eseguono Windows, Mac OS X, Linux e Solaris. Bene, il pacchetto portatile può essere eseguito su qualsiasi sistema per il quale è presente una macchina Java. Per quanto mi riguarda, ho scaricato il bundle Java EE, questo è uno dei sei possibili pacchetti di download. Questo bundle supporta JavaScript e HTML, GlassFish e Tomcat, ma non supporta PHP, C/C++/Fortran, Groovy e Grails: puoi ottenerli nel pacchetto All Inclusive (o solo All). Tuttavia, se lo desidero, posso scaricare in qualsiasi momento il supporto per le lingue di cui sopra selezionando il plugin appropriato (e qualsiasi altro). Ce ne sono meno in NetBeans che in Eclipse, ma di solito non sono in conflitto tra loro. Questo autunno, Oracle (che ha acquisito NetBeans dopo aver acquisito Sun Microsystems) ha deciso di portare l'ambiente di sviluppo sotto l'ala della Apache Software Foundation, insieme a tutti i diritti, codice sorgente, marchio, dominio "netbeans.org" e una serie di altri elementi infrastrutturali. Pertanto, il futuro del progetto è ancora vago, sebbene il sistema avesse alcuni privilegi correlati. Quindi, è stato NetBeans che è stato il primo a ricevere il supporto per Java 8 quasi subito dopo il rilascio della piattaforma aggiornata, ed è stato chiamato "IDE ufficiale per Java 8". Tuttavia, un mese dopo il rilascio, questo vantaggio è andato perso: è stato allora che anche altri IDE hanno ricevuto il supporto per l'ottavo Java. Tuttavia, vorrei sottolineare che il supporto NetBeans Java 8 è davvero buono e questo IDE è ottimo per intrecciare i trucchi dell'ottava versione nel "vecchio" codice. I suoi editor, analizzatori di codice e convertitori aiuteranno il programmatore ad aggiornare il codice utilizzando costrutti specifici di Java 8: espressioni lambda, operatori di funzioni e riferimenti ai metodi. I plugin JavaScript in NetBeans 8 fanno un ottimo lavoro nel supportare Node.js e gli ultimi strumenti JavaScript come Gulp e Mocha, oltre al supporto per l'interprete JavaScript Nashorn.
Figura 3. Qui NetBeans esegue lo stesso progetto basato su Maven che IntelliJ IDEA è stato aperto nella Figura 1. Notare la funzionalità estesa nel menu contestuale e nel sottomenu di refactoring

Editing e refactoring

L'editor NetBeans supporta le lingue, rileva gli errori durante la digitazione e ti aiuta con suggerimenti e completamento intelligente del codice. Soggettivamente, l'IDE gestisce questo compito più velocemente di Eclipse, ma leggermente più lento di IntelliJ IDEA. Inoltre, NetBeans dispone di una gamma completa di strumenti di refactoring (mostrati nella Figura 3) che consentono al programmatore di ristrutturare il codice senza romperlo, eseguire l'analisi del codice sorgente e offrire un'ampia gamma di suggerimenti per correzioni rapide o estensioni del codice. NetBeans include uno strumento di progettazione per la GUI Swing, precedentemente noto come "Project Matisse". Gli sviluppatori apprezzano lo strumento di refactoring automatizzato Inspect & Transform introdotto in NetBeans 7.1. Consente di analizzare il codice del progetto e apportare le migliorie proposte. Anche se personalmente preferisco controllare prima tutto il mio codice con unit test e solo successivamente eseguire strumenti in grado di apportare modifiche drastiche. Ho ripetutamente sofferto di ogni sorta di correzioni automatiche, che hanno portato a conseguenze irreparabili.

Costruzione, debugging e profilazione

NetBeans ha un ottimo supporto pronto all'uso per Maven e Ant, oltre a un plug-in per Gradle. Sono stato molto felice quando ho scoperto che i progetti Maven sono percepiti dal sistema come "nativi". Ciò significa che possono essere semplicemente aperti e non importati. NetBeans include anche un display grafico attraente (e utile) per le dipendenze Maven. Il debugger Java NetBeans non è male, ma con avvertimenti. Un debugger visivo separato consente al programmatore di acquisire schermate della GUI ed esaminare le interfacce delle applicazioni realizzate con JavaFX e Swing. Il profiler NetBeans rende più ovvio come vengono utilizzate CPU e memoria e dispone di ottimi strumenti per trovare perdite di memoria.

Tre giganti a confronto

Ho usato tutti e tre gli IDE, Eclipse, NetBeans e IntelliJ IDEA, per anni in ordine cronologico. Ogni volta che passavo a un altro IDE, sentivo che la mia produttività aumentava. Ma anche quando ero fermamente convinto che la mia scelta finale fosse IDEA, a volte dovevo tornare a uno dei due IDE rimanenti. Questo era il caso, ad esempio, in un momento in cui Eclipse era l'unico strumento che supportava lo sviluppo Android (oggi c'è Android Studio, l'attuale IDE ufficiale per Android, basato su IntelliJ IDEA). Naturalmente, tutti e tre gli IDE hanno i loro fan e detrattori. Conosco molti sviluppatori Java che amano IntelliJ IDEA, così come i fedeli fan di Visual Studio C++ e C#. Il più delle volte, queste persone sono contente del fatto che la loro produttività sia aumentata e il costo di un abbonamento annuale viene restituito solo per poche settimane di utilizzo della versione a pagamento di IDEA. Tuttavia, anche gli utenti di NetBeans ed Eclipse sono spesso legati ai loro strumenti e si chiedono perché altri programmatori siano disposti a pagare soldi per IDEA. Consiglierei agli sviluppatori Java principianti di stare lontano da Eclipse. Sebbene sia ancora l'IDE Java più popolare, è difficile per i principianti perdersi nelle terre selvagge di Eclipse, sia durante l'implementazione del sistema che durante il lavoro quotidiano. Eclipse ha l'ecosistema di plug-in più esteso di tutti gli IDE e anche il più probabile che si arresti in modo anomalo a causa dell'installazione di un set incompatibile di questi stessi plug-in. Sfortunatamente, durante l'utilizzo di Eclipse, ho dovuto rimuovere ripetutamente un'altra build non funzionante di questo IDE e installare un bundle "pulito". NetBeans è adatto alla maggior parte degli sviluppatori, ha un ottimo profiler e lo uso occasionalmente. Tuttavia, preferisco pagare per IntelliJ IDEA Ultimate. E il futuro di NetBeans è ancora vago. Per gli sviluppatori Java inesperti che non hanno ancora i fondi per acquistare un toolkit, consiglio di utilizzare NetBeans o IntelliJ IDEA Community Edition a seconda delle loro esigenze. Il primo dovrebbe essere scelto da chi sta codificando server Java, ma solo se non rientri nella categoria di coloro che possono ottenere IntelliJ IDEA Ultimate gratuitamente o con uno sconto enorme (studenti o programmatori che sviluppano un progetto open source ).

IDE Java "leggeri".

Oggi, la maggior parte degli sviluppatori Java utilizza IDEA, NetBeans o Eclipse, ma a volte sono necessari ambienti di sviluppo "più leggeri" o anche editor di codice come Sublime Text, emacs o vim che supportano i plug-in Java. Di seguito ho elencato opzioni ragionevoli per coloro che cercano qualcosa di più semplice:
  • DrJava è un piccolo ambiente di sviluppo gratuito. È stato creato per gli studenti della Rice University ed è diventato molto popolare: DrJava è già stato scaricato più di 2 milioni di volte. DrJava è progettato per sviluppare lo sviluppo basato sui test (sviluppo basato su test). L'ambiente contiene un editor di codice intelligente, un pannello di interazione per la valutazione del codice dell'applicazione, un debugger a livello di sorgente e strumenti di unit test.
  • BlueJ è un ambiente di sviluppo Java gratuito creato dall'Università del Kent per programmatori principianti. Questo ambiente è gestito da Oracle. BlueJ ha un'interfaccia molto più pulita e semplice rispetto agli IDE professionali come NetBeans o Eclipse e include anche un tutorial di base OOP dedicato.
  • JCreator è un altro piccolo IDE Java per Windows scritto in C++ (per motivi di prestazioni). La versione Pro a pagamento ha un debugger, supporto Ant e procedure guidate del codice, mentre la versione gratuita (LE) no.
  • Eclipse Che è un IDE cloud basato su browser che supporta Java, C++, JavaScript, Python, PHP, Ruby e SQL.

Scelta di un IDE Java a seconda del progetto

Ho cercato di descrivere gli importanti vantaggi di ciascuno dei tre IDE Java più significativi e ho menzionato brevemente i loro utili piccoli rivali. Per scegliere l'IDE giusto, devi soppesare i pro ei contro e confrontarli con le tue esigenze e con le esigenze dei tuoi progetti. Se ti unisci a un team, è una buona idea utilizzare lo stesso IDE degli altri sviluppatori, anche se non è necessario. Se il tuo team ospita su GitHub, sarà naturalmente più conveniente se il tuo IDE supporta GitHub. Sì, puoi gestire il commit senza un IDE usando il client GitHub o la riga di comando git. Ma quanto saranno efficaci tali salti tra i diversi sistemi? È anche importante che l'IDE supporti il ​​sistema di compilazione. Ad esempio, se è Maven, probabilmente non vuoi ricostruire il tuo sistema in Ant per i test locali. Fortunatamente, tutti e tre i fantastici IDE Java supportano Ant, Maven e Gradle, pronti all'uso o con un plug-in. Ma per IDE "piccoli", questo potrebbe non essere vero. È naturale che l'ambiente di sviluppo supporti la versione di JRE utilizzata nel progetto. Se le versioni non corrispondono, c'è un'alta probabilità di ottenere molti bug non necessari, che, ad esempio, appariranno per te, ma non per altri membri del team. È improbabile che una situazione del genere abbia un buon effetto sul tuo karma. Ad essere sinceri, è più probabile che le discrepanze JRE siano causate da errori di configurazione che da IDE non supportati, a meno che l'IDE non sia ancora aggiornato a una nuova versione di Java. Credimi: se il tuo IDE supporta pienamente i framework e le tecnologie utilizzate nel progetto, aiuta davvero ad accelerare il lavoro. Molto probabilmente sarai in grado di farlo. Ma, se l'IDE comprende come le istruzioni JPA si riferiscono alle classi e alle espressioni di entità JPA (come IntelliJ), trascorrerai molto meno tempo sul codice relativo a JPA rispetto al caso di totale incomprensione. E se l'IDE supporta il framework di test e l'esecutore di codice utilizzato per il progetto, puoi eseguire test senza modificare l'ambiente di lavoro. Ciò accelererà anche il processo di sviluppo. Infine, il lavoro va più veloce se l'IDE è compatibile con il bug tracker e il sistema di ticket del progetto. Anche in questo caso, puoi utilizzare un client web o standalone, ad esempio JIRA, ma è difficile non essere d'accordo sul fatto che il controllo dei biglietti sia molto più veloce senza cambiare la finestra, rimanendo direttamente nell'IDE.

Gratuito o a pagamento?

Dopo averlo testato da IntelliJ IDEA Ultimate, ho avuto la sensazione del giusto ambiente di sviluppo. Una sorta di Cadillac del mondo IDE. Ancora una volta, sebbene non sia gratuito, trovo che i guadagni in termini di prestazioni derivanti dall'utilizzo valgano l'abbonamento annuale. Per i principianti che non possono permettersi un abbonamento annuale IntelliJ IDEA Ultimate, consiglio di utilizzare NetBeans anziché Eclipse. Ovviamente, l'ecosistema dei plugin di Eclipse è molto più sviluppato oggi di qualsiasi altro IDE, ma è molto incolto e trasandato: uno sviluppatore alle prime armi rischia di impantanarsi nelle terre selvagge dell'IDE invece di tuffarsi nel lavoro. Ho anche accennato alle alternative "leggere", due delle quali sviluppate appositamente per scopi educativi. Bene, se stai appena iniziando a imparare le lingue e preferisci un ambiente minimalista, perché no?

Quasi tutti i possessori del telefono cellulare più primitivo hanno familiarità con il concetto di piattaforma Java. L'ambiente di sviluppo Java prevede la creazione di applicazioni universali che possono essere utilizzate per l'esecuzione, indipendentemente dal sistema operativo installato. Considera gli aspetti principali del suo funzionamento e della sua applicazione.

Sviluppo Java?

L'ambiente di sviluppo, infatti, è puramente un linguaggio di programmazione basato su comandi generici riconosciuti dal Java Runtime.

In parole povere, gli ambienti di sviluppo del linguaggio Java non funzioneranno nello stesso Windows senza una piattaforma inizialmente installata. Ma tale supporto viene fornito inizialmente, il che evita a qualsiasi utente la necessità di installare componenti aggiuntivi.

Applicazione nella tecnologia informatica

Inizialmente, questo progetto è stato sviluppato da Sun Microsystems Corporation, che è stata successivamente supportata da Oracle.

Ma alla fine, l'ambiente di sviluppo Java è completamente indipendente dai sistemi desktop o mobili.

Moduli integrati di sistemi mobili

Quando si parla di smartphone e tablet, la stessa versione di Java) si riferisce solo all'utilizzo di un'applicazione grafica che consente di creare un'applicazione Java in pochi minuti.

Infatti, nell'applicazione stessa viene effettuato un qualche tipo di indirizzamento o richiesta, le cui funzioni sono previste nel sistema operativo.

E questo vale per i dispositivi mobili. Hai notato che a volte, nel tempo, sia Windows Phone che Android iniziano a "sputare" in termini di offerta di aggiornamento immediato? Non è altro che due componenti:

  • Runtime Java
  • Microsoft.NET Framework.

La cosa più triste è che il primo componente non è associato a errori di sistema. Questa piattaforma è completamente indipendente ed eseguibile in termini di comandi per impostazione predefinita.

JAVA IDE: l'applicazione più semplice

Nessuno dubita del fatto che questo sistema venga utilizzato nelle versioni mobile. L'ambiente di sviluppo Java Android è supportato, per non parlare dei prodotti "apple".

Tuttavia, in termini di applicazioni eseguibili, le cose non sono così semplici. Ed ecco perché.

Applet eseguibili

Innanzitutto, dovresti prestare immediatamente attenzione al sistema in cui deve essere installato l'archiviatore appropriato (WinRAR - almeno, meglio - 7-Zip).

L'ambiente di sviluppo Java si riferisce al fatto che i dati vengono salvati come un archivio che non è disponibile per l'apertura con gli strumenti standard di Windows.

Dati archiviati

Nella migliore delle ipotesi, puoi utilizzare estrattori come quelli sopra menzionati. Ma se le tecnologie del metodo di compressione aggiuntivo (massimo) sono state utilizzate durante la formazione dell'archivio, non c'è nulla che possa aiutare qui.

Anche l'aggiornamento dell'archiviatore non sarà in grado di apportare le modifiche necessarie. Qui dovrai applicare l'aggiornamento dell'intera piattaforma, anche se inizialmente il messaggio sull'aggiornamento disponibile "si blocca" nella barra delle applicazioni.

Aggiornamento della piattaforma

L'aggiornamento è fatto in modo molto semplice. È sufficiente fare clic nella barra delle applicazioni su un'icona lampeggiante che offre l'installazione di un aggiornamento disponibile. Il riconoscimento può richiedere fino a diversi minuti. Questo va bene.

Se non vuoi aspettare, nessun problema: vai alla risorsa ufficiale di Microsoft e scarica il programma da lì. Non ti piace questo metodo? Installiamo JDK o J2SE, che è un'estensione Java, quindi installiamo il modulo desiderato tra quelli selezionati, dopodiché l'attivazione avviene automaticamente. Al termine del processo, potrebbe essere necessario riavviare completamente il sistema.

Perché Java non dipende dal sistema operativo?

Come già accennato, questo linguaggio di programmazione è orientato agli oggetti (simile a C + / C ++, su cui è programmato Windows).

Ma la sua essenza è tale che la macchina virtuale Java è in grado di tradurre i comandi delle applicazioni eseguibili in bytecode speciali che vengono riconosciuti da qualsiasi sistema informatico, indipendentemente dal suo sviluppatore. L'ambiente di sviluppo Java è ugualmente ben utilizzato su PC, piattaforme Intel e Android, Blackberry, iOS e altri sistemi mobili.

Nell'ambiente software del sistema operativo stesso, esiste già un modulo integrato responsabile dell'esecuzione dei comandi del linguaggio. E non si rivolge in alcun modo ad ambienti specifici come Microsoft .NET Framework o altri che i fornitori di sistemi operativi sviluppano per il funzionamento delle proprie applet.

Dispositivi mobili

Come anche i normali telefoni cellulari senza sistema operativo a bordo, hanno anche il supporto nativo per questa piattaforma. Di norma, gli installatori hanno estensioni JAR o JAD e vengono installati semplicemente anche su telefoni primitivi.

Nei sistemi operativi, puoi utilizzare archivi come WinRAR che riconoscono senza problemi tali archivi autoestraenti come i file SFX. Se fai doppio clic su tale file, il suo contenuto verrà estratto automaticamente e l'archiviatore, insieme alla piattaforma Java, in questo caso, funzionerà in background.

Cosa posso dire, perché anche i vecchi giochi sui telefoni più semplici possono essere installati semplicemente. Sebbene si ritenga che non utilizzino sistemi operativi "avanzati", non è così.

Anche i modelli più antichi del tipo hanno una piattaforma. In che altro modo funzionerebbe il telefono? Nello stesso sistema, come è già chiaro, c'è anche il supporto integrato, che è responsabile degli ambienti di sviluppo Java.

Per quanto riguarda i comandi stessi utilizzati per creare applicazioni, la loro descrizione può richiedere troppo tempo. Ma se comunque è nata l'idea di creare un'applicazione basata su questo linguaggio, è meglio installare un programma specializzato come la piattaforma offerta dall'ambiente Delphi è molto simile).

Conclusione

Come puoi vedere, l'ambiente di sviluppo Java è universale e compatibile con qualsiasi sistema. Ma funziona molto più velocemente della traduzione dei comandi basata su C++/C++. Secondo alcuni studi, la velocità di lavoro può essere 20-30 volte superiore, sebbene il consumo di risorse di memoria sia di livello superiore.

Ma per riassumere, vale la pena notare la reale versatilità che offre l'ambiente di sviluppo Java. In effetti, è compatibile con tutti i sistemi, il che lo rende il più popolare quando si creano le stesse applicazioni multimediali o giochi.

Separatamente, vale la pena ricordare che le ultime versioni di Java si basano sul supporto per strumenti di programmazione generici, che si basano sulle tecnologie Eiffel e C#, che sono fondamentalmente diverse dagli strumenti C++. Qui è possibile utilizzare la conversione automatica dei tipi di dati scalari e l'importazione dei cosiddetti campi statici, senza dimenticare la possibilità di creare documentazione di accompagnamento con codice sorgente.

Java SE 6 ha molte nuove funzionalità che includono anche il riconoscimento dei calendari giapponese e buddista, la possibilità di creare un server HTTP a tutti gli effetti, lo streaming di classi più veloce e il trasferimento di dati compressi con un miglioramento delle prestazioni fino al 70%, per non parlare della JConsole dashboard. , che supporta OpenGL e DirectX.

Questo vale principalmente per gli adattatori grafici, anche se può essere applicato anche all'uso di dispositivi audio (il più delle volte virtuali basati su driver ASIO4ALL). Lo stesso vale per alcuni sintetizzatori software o tastiere MIDI. Ma l'uso di applet Java eseguibili non è sempre previsto.

Dall'autore: Tra tutti i linguaggi utilizzati nello sviluppo web, Java è il più sensibile. Questo PL è caratterizzato da sintassi complessa, tipizzazione dei dati elevata e immunità agli errori. Ecco perché questo strumento per Java - IDE è così richiesto. L'ambiente di sviluppo aiuta a bypassare le insidie ​​che attendono un programmatore che scrive in un editor di testo. Se non vuoi intraprendere la lunga e spinosa strada della scrittura di testi, benvenuti nella recensione dei migliori ambienti di sviluppo più adatti al linguaggio del caffè.

Hai bisogno di un IDE per lo sviluppo

Java è uno di quei linguaggi per i quali l'ambiente di sviluppo non è un capriccio dei singoli specialisti, ma un vero e proprio mezzo di sopravvivenza. Un linguaggio complesso non può essere letto ed eseguito finché tutti gli elementi del sistema non sono configurati correttamente. A volte, è difficile per uno sviluppatore web capire perché ha bisogno di un software così ingombrante e produttivo. Tutti i linguaggi web come HTML/CSS, JavaScript e PHP possono essere implementati senza software aggiuntivo (sebbene esista anche un IDE a pagamento per quest'ultimo: PHPStorm). Ma, non appena si tratta di Java, tutto va a posto. I documenti di codice lunghi e complessi sfidano l'organizzazione manuale.

Ma, come sempre, ci sono oppositori dell'ideologia. Alcuni sviluppatori chiamano gli IDE "stampelle" che sono necessarie solo ai programmatori meno addestrati. Per loro, scaricare un ambiente di sviluppo è come barare sui fondamenti. Sfortunatamente, questo approccio può lasciare indietro lo sviluppatore nell'evoluzione della programmazione: i grandi progetti aziendali, come le applicazioni web altamente funzionali, richiedono una stretta interazione tra i membri del team, avvio rapido e debug del codice. Inoltre, la capacità di lavorare con i principali IDE è un criterio per l'impiego nelle posizioni migliori.

Naturalmente, ci sono quelli che possono creare i loro strumenti di sviluppo così bene che un IDE a tutti gli effetti diventa superfluo. Comunque sia, l'ambiente di sviluppo consuma le risorse del dispositivo necessarie per garantire il funzionamento del resto degli strumenti di sviluppo. Ciò è particolarmente evidente nelle versioni obsolete di Windows/Linux: non appena l'ambiente di sviluppo viene avviato, il resto delle risorse ristagna.

Gli sviluppatori Web preferiscono quasi sempre gli editor di testo. Sono più leggeri e ti permettono di creare soluzioni sul ginocchio. Nessuno strumento aggiuntivo, nessuna configurazione approfondita richiesta e la gamma di software è molto più ampia. Questa visualizzazione viene conservata dai programmatori Web fino a quando non iniziano a utilizzare Java.

Voglio scegliere un programma

Il campo della programmazione offre molte soluzioni per la creazione di codice completo. In particolare, questo vale per vari ambienti di sviluppo. Non sono solo le grandi aziende come Oracle a creare IDE. Lavorare su tali software, di regola, è prerogativa dei professionisti che vogliono ottimizzare le proprie attività. Questo è esattamente quello che è successo a Visual Studio: uno dei migliori IDE di tutti i tempi. Microsoft, che era in pieno svolgimento per introdurre una versione di Windows nel nuovo secolo, ha semplicemente presentato i suoi strumenti in un'unica applicazione. Ora VS è la scelta di milioni di persone.

Sfortunatamente, non puoi chiamarlo "per sviluppatori Java". No, questo non significa affatto che non sarà possibile scrivere qualcosa in Java in questo ambiente di sviluppo: ci sono anche delle estensioni speciali. È solo che è più focalizzato su C, C # e alcuni altri prodotti Microsoft. Java ha il suo IDE top, che presenteremo oggi. Ma, prima, dobbiamo capire che tipo di IDE ideale vogliamo vedere (in sintonia).

Per prima cosa puoi decidere subito che chi lavora online non è adatto a uno sviluppatore Java. Creeranno problemi di interpretazione e blocchi costanti scoraggeranno solo la programmazione. Una soluzione più intelligente sarebbe scaricare uno dei software presentati oggi. È meglio fare clic su download una volta che sopportare costantemente i bug. L'era degli IDE cloud deve ancora venire.

Inoltre, l'ambiente di sviluppo Java deve supportare una serie di tecnologie necessarie per una codifica efficiente. Tra questi ci sono i linguaggi delle macchine virtuali Java: principalmente Java 10, ma anche Groovy e Scala. Anche il controllo della versione è uno dei punti chiave. Git da solo non basterà: hai bisogno di Mercurial, SVN e altri. È impossibile indovinare quale sarà popolare tra qualche anno (Git, ovviamente ☺). Uno sviluppatore web trarrà vantaggio dal supporto di un'ampia gamma di linguaggi, inclusi database PL, linguaggi web, sia front-end (TS, JS, HTML) che back-end (uno dei popolari linguaggi generici). Poiché una caratteristica della JVM è la conversione delle parole del linguaggio di programmazione in byte code, sono necessari anche potenti interpreti. Sono loro che possono rendere Java veloce in teoria, veloce in pratica.

Bene, ovviamente, come lo stesso linguaggio Java, l'ambiente di sviluppo per esso deve essere multipiattaforma. Tutte le altre soluzioni ostacolano lo sviluppo del programmatore. Dato che ha scelto Java, ha scelto l'universalità.

I tre elefanti dello sviluppo di Java

Come sempre, c'è una top tre e tutte le altre. Questo è già utilizzato nel settore dello sviluppo web e non cambieremo le tradizioni. Il vantaggio della nostra recensione è che non ci sarà (quasi) nessun software a pagamento. Puoi scaricare liberamente ogni ambiente di sviluppo dal sito ufficiale. Inoltre, sarà una di quelle classifiche in cui scegliamo soggettivamente un vincitore. Bene, puoi sommare la tua decisione, in base alla tua esperienza e alle nostre conclusioni.

Idea per lo sviluppo web

IntelliJ IDEA è un IDE rilasciato da JetBrains basato su Java Virtual Machine. Anche l'ambiente stesso è scritto in Java e in parte in Python ed è destinato a loro. Si sono subito identificati come l'ambiente per Java, già nel 2001. Poi l'ambiente di sviluppo ha introdotto un'intera libreria di strumenti di refactoring, che ha immediatamente portato IDEA al top. Gli sviluppatori hanno fatto una scelta non tanto a favore della comodità, ma a favore della produttività. Alcune operazioni di routine vengono eseguite completamente dall'ambiente di sviluppo.

Abbiamo promesso che oggi non ci sarebbe stato alcun software a pagamento. Ma la verità è che la versione definitiva di IDEA ha un suo costo, anche se insignificante (fino a $ 500), come per un IDE. Se sei un giavista professionista che guadagna da $ 20 all'ora, questa è una sciocchezza. A proposito, solo nel pacchetto Ultimate lo sviluppatore sarà in grado di lavorare con la piattaforma Java EE.

Ma esiste anche una versione gratuita di IDEA, che non è una versione ridotta. Sì, mancano alcune funzionalità, ma il supporto della lingua è simile alla versione commerciale. È conveniente scrivere le prime righe di codice su di esso ed espanderlo con i plug-in.

Tendenze e approcci moderni nello sviluppo web

Impara l'algoritmo per una rapida crescita da zero nella creazione di siti web

IDEA è uno di quegli ambienti di sviluppo che possono essere definiti veramente intelligenti. Invece di correzioni ed evidenziazioni, che anche il più semplice editor di testo ha, IDEA offre il completamento automatico: frammenti del programma finito vengono generati per mano dello sviluppatore. Non vale nemmeno la pena ricordare che tutte le parentesi e altre chicche sintattiche verranno chiuse automaticamente. E se qualcosa va storto e IDEA non riesce a gestire il problema, segnalerà immediatamente lo sviluppatore Java dall'altra parte dello schermo.

Tangenti e refactoring, che avviene immediatamente in diverse lingue. I giavisti sanno che il codice non è mai puro Java, specialmente quando si tratta di sviluppo web. Ciò include le lingue del database, l'ipertesto e così via. A questo punto, IDEA fa ciò di cui molti non sono ancora capaci: analizzando il programma scritto, l'IDE separa i linguaggi l'uno dall'altro e li analizza separatamente.

Il programma ha tasti di scelta rapida ben implementati, a cui, ovviamente, dovrai abituarti. Ma, non appena tutto accade, la produttività si sposta. Possono anche causare il debug del codice che si verifica nella finestra successiva.

L'ambiente di sviluppo si distingue per il fatto che amplia costantemente il numero di tecnologie supportate. Tuttavia, gli sviluppatori non dipendono molto da questi aggiornamenti. In qualsiasi momento possono scaricare il plugin appropriato.

Eclipse IDE

Questo ambiente di sviluppo è popolare non solo tra gli sviluppatori Java, ma anche tra gli sviluppatori web in generale. Un vantaggio significativo rispetto a IDEA sarà sicuramente il prezzo: Eclipse è completamente gratuito, così come i componenti aggiuntivi. A proposito, i creatori dell'ambiente di sviluppo non avevano intenzione di competere con IDEA: volevano oscurare il successo che ha ricevuto Visual Studio. In una certa misura, ci sono riusciti: i programmatori web medi preferiscono quasi sempre Eclipse.

Cosa c'è di meglio di IDEA? Accesso gratuito a Java EE. È immediatamente disponibile, senza pagamenti aggiuntivi e installazione di plugin. A proposito, circa l'ultimo. Installarli in Eclipse è un compito significativo. Possono "litigare" tra loro, causando disagi allo sviluppatore. Ma la cosa positiva è il loro numero. Vi consigliamo di scegliere quelli ufficiali, perché in questo modo è meno probabile che inizino a entrare in conflitto con l'ambiente di sviluppo.

Eclipse è progettato per essere personalizzato da te. Pertanto, la prima esperienza con l'IDE può allontanarti da un ulteriore utilizzo. Quel raro caso in cui è necessario un manuale per uno dei migliori ambienti di sviluppo. Fortunatamente, ce ne sono molti su YouTube.

NetBean

Questo è un ambiente di sviluppo che nasce dalla penna dei creatori di Java - Sun Microsystem. Volevano creare la soluzione migliore per la loro lingua, quindi hanno progettato un IDE che non fosse solo compatibile con Windows.

Nella nostra lista, è la più multipiattaforma. NetBeans può essere eseguito non solo sugli assi superiori, ma anche su qualsiasi altro dispositivo dotato di una JVM. Si vede subito l'approccio di Sun: volevano che il loro linguaggio funzionasse su tutti i dispositivi (dal computer alla lavatrice). Naturalmente, i "bean" sono stati chiamati l'ambiente di sviluppo ufficiale per Java, anche se non è così buono. Oggi, NetBeans è al lavoro da Oracle, che ha rilevato Sun.

NetBeans è intelligente come IDEA, capace di refactoring intelligente. Il sistema affronta questo compito molto meglio di Eclipse, ma peggio di IDEA.

Come si può capire dal volume di quanto detto, IDEA sarà nominata la migliore. Ecco un elenco di motivi:

comprensione della programmazione. Nessuno è veloce nel programmare e correggere i bug come IDEA;

efficienza del refactoring;

prezzo. Sì, Eclipse è completamente gratuito. Ma non compreresti cibo cattivo solo perché costa meno, vero?

Questa è la nostra visione! A proposito, Oracle ha un altro IDE nel suo arsenale chiamato JDeveloper, completamente su misura per Java. Provalo e trai le tue conclusioni. E abbiamo tutto!

Tendenze e approcci moderni nello sviluppo web

Impara l'algoritmo per una rapida crescita da zero nella creazione di siti web

In oltre un decennio di storia del linguaggio Java, non è cambiata una sola generazione di ambienti di sviluppo integrati (Integrated Development Environment - IDE). L'evoluzione degli strumenti IDE è dovuta a molti fattori, la cui totalità è chiamata informatica, comprese le componenti software e hardware, nonché lo sviluppo del linguaggio stesso, che avviene non solo in profondità, ottimizzazione di alcune funzionalità, che chiaramente dimostra l'arrivo di nuove librerie Swing al posto di quelle obsolete AWT, ma anche "in ampiezza", questo è l'emergere delle tecnologie JSP, una maggiore integrazione con DBMS e server applicativi, supporto per le tecnologie Spring, Hibernate, ecc.

E se i primi strumenti IDE, nella comprensione odierna, rappresentavano un primitivo editor di testo che serviva solo per una serie di codici sorgente, e tutto il resto del lavoro, dalla compilazione all'assemblaggio finale del progetto, doveva essere svolto manualmente, quindi quelli moderni di oggi sono in realtà dispositivi multifunzionali che assumono su di sé non solo le solite funzioni, ma anche una serie di altre aggiuntive, che vanno dalla generazione automatica di Javadoc, al refactoring, alla profilazione, alla progettazione di UML, un client per la connessione a qualsiasi DBMS e terminano con tali esotici che non sono correlati al processo di sviluppo, come il controllo ortografico.

Naturalmente, che il prezzo di tutte queste "comodità" è un aumento dei requisiti per le risorse del computer. Si ritiene che l'80% degli utenti utilizzi le funzionalità del software esistente solo per il 20%, questo può anche essere proiettato su strumenti IDE. Dal momento che solo un programmatore che ha sviluppato la tecnologia corrispondente per più di un anno può apprezzarne tutti i vantaggi. Ed è difficile per i programmatori inesperti valutare adeguatamente questo o quello strumento, quindi, di norma, la sua scelta indipendente avviene secondo due criteri: la comprensibilità intuitiva dell'interfaccia e varie caratteristiche delle risorse temporali, come il caricamento, la compilazione, l'avvio , RAM occupata. In effetti, all'inizio sono necessari solo un compilatore, un debugger e la stessa macchina Java.

Pertanto, lo scopo di questo articolo è quello di esaminare il mercato esistente degli strumenti IDE per lo sviluppo di programmi utilizzando il linguaggio Java, identificando i punti di forza e di debolezza di ciascuno secondo vari criteri, sulla base di un'analisi dei risultati del progetto: "Testing and analisi degli ambienti di sviluppo software per Java" ("Testing and analysiss IDE for Java" (TAIDEJ)), che è stato organizzato da noi, il gruppo di coordinamento del sito e si è svolto dal 01/01/2006 al 01/09/2006 sul sito www.sito.

Il progetto è stato suddiviso in più fasi. Nella prima fase, abbiamo sviluppato un questionario, tabella 2, e compilato un elenco di IDE Java, tabella 3, che sono stati sviluppati dall'avvento del linguaggio Java2 ad oggi, inclusi collegamenti a entrambi gli strumenti IDE che tutti sentono, e quelli piuttosto esotici. Questo elenco è stato periodicamente aggiornato grazie ai nostri membri. Qui vogliamo esprimere la nostra profonda gratitudine a tutti i partecipanti al progetto, nonché a tutti coloro che ci hanno discusso e criticato in modo costruttivo nei forum, tabella 1

Tabella 1. Java - forum
Java - Forum su Sources.Ru
RSDNhttp://www.rsdn.ru/?forum
Forum - Juga.Ruhttp://forum.juga.ru/
Forum di archivio IThttp://www.javable.com/forum
Forum Java - Programmazione Javahttp://forum.java.sun.com/
Forum java.nethttp://forums.java.net
javalobby.orghttp://www.javalobby.org/java/forums
Mondo Javahttp://www.javaworld.com/javaforums
Forum informatico Ru.Boardhttp://forum.ru-board.com
Programmazione - Hardware iXBT BBShttp://forum.ixbt.com
Forum JUG KPIhttp://jug.in.ntu-kpi.kiev.ua/forum
Forum CIThttp://forum.citforum.ru
Realcoding.NEThttp://forums.realcoding.net

Nello sviluppo del questionario, abbiamo cercato di scoprire quanto segue:

  1. una tendenza a cambiare le preferenze dei programmatori, dal momento che gli strumenti una volta di successo o hanno cessato completamente di svilupparsi, o per qualche motivo le aziende che li hanno sviluppati si sono allontanati, e quindi molti hanno dovuto passare da uno strumento IDE all'altro;
  2. come il programmatore ha scelto questo o quel mezzo;
  3. come il programmatore valuta gli strumenti con cui ha lavorato su una scala a cinque punti;
Tabella 2. Questionario

Ulteriori compiti erano l'elaborazione e l'analisi delle informazioni statistiche ottenute, per valutare l '"intensità delle risorse" degli strumenti popolari. Inoltre, sul sito web del progetto sono state preparate e pubblicate revisioni di alcuni strumenti.

Tabella 3. Elenco di IDE per Java.
NomeProduttorePagina web dei prodotti
1 Professionista progettista di appletOggetti TVhttp://www.tvobjects.com/
2 AttivitàSoftware di avanzamentohttp://apptivity.progress.com/
3 Awesume Jawa 1.0Fantastico design interattivohttp://www.awesume.se/en/index.htm
4 bluettestrumento Java RAD gratuitohttp://blue.donga.ac.kr/bluette/
5 BongoMarimbahttp://www.marimba.com/
6 Edizione Internet ClarionSocietà di massima velocitàhttp://www.topspeed.com/
7 CodeWarrior ProMetroWerkshttp://www.metrowerks.com/desktop/pro/
8 Codice CosmoSGIhttp://www.sgi.com/Products/cosmo/code/index.html
9 ED per WindowsMorbido come si ottienehttp://www.getsoft.com/ed_java.html
10 ElisirElisir Technology Pte Ltdhttp://www.elisir.com.sg/
11 Costruttore gratuitoCollettivo di FreeBuilderhttp://www.freebuilder.com/
12 PRESAProgetto GRASPhttp://www.eng.auburn.edu/grasp/
13 MacininoScambio di paradigmihttp://www.tpex.com/features.htm
14 IperfiloCinetixhttp://www.ktx.com/
15 Animatore di JambaInterfogliohttp://www.jamba.com/
16 JambaInterfogliohttp://www.jamba.com/
17 JavaManHartWarehttp://homepage.dave-world.net/~hartware/
18 Java StudioMicrosistemi solarihttp://www.sun.com/
19 GiavellottiUn passo avantihttp://www.ozemail.com.au/~stepsoft/
20 JaWizSistemi InfinityEdgehttp://www.infinityedge.com/
21 JBuilderIncuriositohttp://www.inprise.com/jbuilder/
22 JDesigner ProAntiproiettilehttp://www.bulletproof.com/
23 JDE per EmacsPaul Kinnucanhttp://sunsite.auc.dk/jde/
24 JADI SujalSciàhttp://dan.hcf.jhu.edu/sujal/winjadi/
25 GIGAS Cubohttp://www.scubed.cc/
26 JipeImmagina i servizi Internethttp://www.users.globalnet.co.uk/~eis/jipe.htm
27 JPadModelWorkshttp://www.modelworks.com/
28 CalimantanoImprese in tempo reale, Inc.http://www.real-time.com/java/kalimantan/index.html
29 KAWATEK-TOOLS Inc.http://www.tek-tools.com/kawa/
30 lavaDan Paginahttp://www.hnet.demon.co.uk/products/lava/index.html
31 Lemuredisegno dell'isolahttp://www.island-design.co.uk/
32 NetBeanNetBeans Inc.http://www.netbeans.com/
33 OEM 1.0Software innovativohttp://www.isg.de/OEW/Java/
34 PARTI per JavaObjectSharehttp://www.objectshare.com/p4j/p4j2info.htm
35 PowerJSybasehttp://www.sybase.com/products/powerj/
36 Rostieraintelligenza naturalehttp://www.roaster.com/roaster/
37 SNiFF+Prendi cinque softwarehttp://www.takefive.com/sniff/
38 SpiritoeVisNet Limitedhttp://www.evis.net/
39 sostituireSuper Cede, Inc.http://www.supercede.com/
40 vistojTecnologia software imperialehttp://www.ist.co.uk/
41 Visione GiadaSoftware per la visionehttp://www.visionsoft.com/
42 Visual Age per JavaIBMhttp://www.software.ibm.com/ad/vajava/
43 caffè visivoSymantechttp://cafe.symantec.com/
44 Visual J++Microsofthttp://www.microsoft.com/visualj/
45 Piattaforma di applicazioni WebSilverstreamhttp://www.silverstream.com/products/main/main_f.htm
46 Java WebIDEChami.comhttp://www.chami.com/webide/
47 Cancellaresoftwarebuero m&bhttp://www.softwarebuero.de/wipeout-eng.html
48 IntelliJ IDEAIntelliJ IDEAhttp://www.jetbrains.com/idea/
49 Eclisseeclipse.orghttp://www.eclipse.org
50 Sviluppatore JOracolohttp://www.oracle.com/technology/products/jdev/index.html
51 JCreatoreSoftware Xinoxhttp://www.jcreator.com/
52 jModificajModificahttp://www.jedit.org/
53 Sviluppo XSoftware Omnicorehttp://www.omnicore.com/
54 Gel IDEGExperts Inc.http://www.gexperts.com/
55 Sviluppatore di applicazioni IBM Web Sphere StudioSoftware IBMhttp://www-306.ibm.com/software/awdtools/studioappdev/
56 estendereROMANZOhttp://www.novell.com/products/extend/

In primo luogo, il metodo di distribuzione, rispettivamente, l'IDE può essere suddiviso in a pagamento (JBuilder, Visual Cafe ...) e gratuito (NetBeans, Eclipse, Gel), che chiunque può scaricare dal sito Web del produttore.

Abbiamo deciso di individuare la seconda caratteristica di classificazione non sulla base di alcune capacità specifiche, poiché, secondo questa caratteristica, sarebbe probabilmente possibile dividere l'IDE all'infinito, ma dalla totalità delle capacità dello strumento stesso, e le sue richieste di risorse. Naturalmente, in questo caso, viene prima la presenza di un visual interface builder, che a sua volta propone determinati requisiti per le risorse.

Secondo questo criterio, è possibile individuare strumenti che non dispongono di uno strumento visivo per lo sviluppo della GUI (semplice), ad esempio Gel, JCreator, e che hanno (complesso) - JBuilder, Idea.

Di conseguenza, il primo nella RAM durante il funzionamento occupa meno di 30 MB e il secondo più di 100 MB. Per quanto riguarda gli stessi strumenti di sviluppo visivo, secondo la mia esperienza e secondo l'opinione di molti colleghi programmatori con molti anni di esperienza, il loro utilizzo non è sempre giustificato per i programmatori inesperti, sebbene sembrino facilitare lo sviluppo da un lato, ma dall'altro mano rendono difficile capire concettualmente queste cose di base.Swing librerie come layout manager, gestione degli eventi, ecc.

Inoltre, un gruppo di studenti DSTU è stato coinvolto nel progetto (vorrei citare in particolare Yegorenkov V. e Lagutin D.), che avevano appena iniziato a studiare OOP, i cui compiti erano familiarizzare con l'IDE per Java, installarli , fissare i parametri durante il caricamento, emettere i loro commenti e, infine, la scelta indipendente dei mezzi per il lavoro iniziale. I risultati del test sono riassunti nella tabella 4.

Tabella 4. Risultati del test degli strumenti IDE
OpzioniGeIJCreator 3.5JBuilder XIdea 5NetBean 4.1
Tempo di installazione1 secondo1-1,5 sec58 sec22 sec50 sec
dimensione del pacchetto installato10,3 MB6,49 MB332 MB157 MB118 MB
Dimensione di distribuzione4,21 MB3,6 MB178 MB51,6 MB46,4 Mb
lanciare5s1-1,5 sec9 sec6 sec6 sec
Spazio occupato nella RAM17828 Kb12960 Kb74128 Kb65604 Kb61409 Kb
La quantità di memoria virtuale utilizzata9020 Kb14960 Kb78588 Kb76416 Kb70406 Kb

* Una macchina basata su: CPU Athlon64 3000+; RAM - 1024 MB DDR-SDRAM (pc3200)

Successivamente, si è tenuto un seminario in cui sono stati riassunti i risultati del lavoro, a seguito del quale si è riscontrato che nella fase iniziale del lavoro, quando il processo di studio delle caratteristiche sintattiche della lingua, non è necessario per utilizzare le funzionalità che rappresentano gli IDE complessi, anche se, ovviamente, molte persone sono interessate a modi per sviluppare rapidamente un'interfaccia, poiché questa funzionalità è la più intuitiva e consente di ottenere immediatamente risultati. Ma, come sapete, lo sviluppo dell'interfaccia è parte integrante, ma non la parte più importante dell'applicazione. E i maggiori requisiti di risorse da parte degli IDE complessi, soprattutto considerando che non tutti gli studenti hanno computer di casa con anche 512 MB di RAM, danno vantaggi innegabili agli IDE semplici, quindi Gel è stato riconosciuto come il leader tra gli studenti di tutti gli IDE disponibili.

Nome% di votiGrado
1 JBuilder21.47 3.0
2 Eclisse16.64 3.3
3 NetBean14.22 2.9
4 IntelliJ IDEA11.66 3.5
5 Sviluppatore J7.11 2.8
6 Visual J++5.26 1.8
7 JCreatore4.26 2.3
8 Visual Age per Java3.69 2.8
9 Java Studio3.41 2.0

Procedendo da ciò, analizzeremo da quali posizioni il programmatore si avvicina alla scelta indipendente dei mezzi.

  1. Interfaccia. Questo è il primo componente che l'utente incontra dopo l'installazione e che forma la prima impressione del programma, e sulla base del quale si può fare la scelta finale. Qui, non viene valutato solo il design generale, sebbene, ovviamente, influisca anche in un certo modo, ma anche la comodità di organizzare e configurare componenti come la finestra del codice sorgente, la finestra del progetto, ecc.
  2. Collocamento. Di conseguenza, dopo l'installazione e il primo avvio dell'ambiente di sviluppo, viene eseguita la sua configurazione, ad es. sono indicati i percorsi in cui si trovano gli SDK, DOCS, J2EE installati. In questa componente, di norma, non si osservano differenze significative. Inoltre, gli strumenti moderni, di regola, determinano in modo indipendente i componenti installati.
  3. Editor di codice. Anche l'impostazione della visualizzazione dei codici sorgente non differisce per varietà, in qualsiasi strumento è possibile regolare facilmente la dimensione e la dimensione del carattere, nonché il colore. Un vantaggio importante è la presenza di un assistente quando, quando il mouse "si blocca" su una qualsiasi variabile o metodo, compare una ToolTip (finestra di contesto) piuttosto dettagliata in cui vengono espansi tutti i parametri dell'oggetto. Ci sono anche molte piccole cose piacevoli, output della numerazione delle righe, visualizzazione della struttura della classe, visualizzazione dei simboli di paragrafo, controllo ortografico.

Dopo aver analizzato, in base a queste caratteristiche, tutti gli strumenti IDE attualmente esistenti, si può notare che non ci sono differenze significative tra di loro, fatta eccezione per il design dell'interfaccia, e ovviamente il concetto di convenienza è soggettivo.

Analisi dei risultati dell'indagine, tabelle 5.6. Come descritto sopra, nella nostra indagine, i fondi sono stati divisi in due gruppi, quelli che sono stati utilizzati in precedenza e quelli che sono attualmente utilizzati. E se tra i mezzi che sono stati utilizzati in passato c'è una varietà, abbiamo selezionato i mezzi che hanno ricevuto più del 3% dei voti sul totale dei partecipanti al sondaggio, allora tra quelli che sono attualmente utilizzati non c'è tale diversità, e siamo stati costretti a ridurre la percentuale di voti e, nonostante ciò, non hanno ricevuto molta diversità.

Come puoi vedere, il "semplice" strumento IDE JСreator è un partecipante invariabile alle selezioni, ciò è apparentemente dovuto al fatto che è abbastanza facile da imparare e non richiede risorse, quindi è popolare tra i programmatori alle prime armi. JBuilder è caduto in disgrazia, a quanto pare perché strumenti gratuiti come Eclipse e NetBeans lo stanno superando. Eclipse dovrebbe essere riconosciuto come il leader indiscusso, dal momento che non ha perso le sue posizioni piuttosto alte, ma si è addirittura aggiunto. La popolarità di JDeveloper dovrebbe essere attribuita al suo focus sul database Oracle. La popolarità di IntelliJ IDEA è dovuta al fatto che ad un certo punto gli sviluppatori sono riusciti a presentare un prodotto con potenti funzionalità, e per diversi anni hanno mantenuto con successo il suo marchio ad alto livello, il che è anche confermato da valutazioni degli utenti elevate.

In generale, va notato che i risultati della valutazione erano prevedibili, la domanda riguardava solo la distribuzione dei posti e la sorpresa per gli autori è stata che NetBeans ha ottenuto una percentuale di voti relativamente bassa, soprattutto considerando le capacità dell'ultima versione .

Un'analisi delle ragioni per la scelta di uno strumento IDE ha mostrato che la scelta degli strumenti di prima generazione veniva solitamente effettuata in modo casuale o sulla base dei risultati di analisi indipendenti, il che è naturale, poiché in quel momento il processo di formazione sia del linguaggio stesso e gli strumenti di sviluppo erano in corso. I fondi della seconda generazione sono stati scelti principalmente a seguito di analisi indipendenti o del consiglio di un amico. Ciò è dovuto, a quanto pare, al fatto che a quel punto si erano formati sia la cerchia dei programmatori Java professionisti che il mercato dei principali sviluppatori di strumenti IDE.

Tabella 7. Ragioni per la scelta di un IDE

Pertanto, oggi i leader tra gli strumenti di sviluppo IDE Java sono IntelliJ IDEA, Eclipse e NetBeans. In generale, hanno tutti approssimativamente la stessa funzionalità ed è abbastanza difficile valutare quale sia il migliore. Pertanto, quando si sceglie uno strumento, ovviamente, è necessario concentrarsi sull'IDE su cui si sta sviluppando il progetto, se il programmatore si unisce al team di sviluppo, oppure scegliere quello più accessibile se si intende sviluppare un progetto indipendente.

Elenco delle fonti utilizzate

  1. Zhmailov BB Vantaggi e svantaggi dello sviluppo di programmi Java senza l'utilizzo di strumenti IDE. Rivista "Bollettino di tecnologie informatiche e informatiche" №6, 2006
  2. , Sergey Berdachuk, "Oracle JDeveloper 10g - Ambiente di sviluppo Java"
  3. , Alexey Litvinyuk, "Introduzione all'ambiente di sviluppo integrato di Eclipse"
  4. , Alexander Demyanenko, "Una breve panoramica dell'IDE - Jbuilder"
  5. , Alexander Demyanenko, "Una breve panoramica di IDE - Idea"
  6. , Boris Zhmailov, "Una panoramica di IDE - Gel"
  7. , Una panoramica degli strumenti di refactoring automatizzati nell'IDE Java

Quasi tutti i libri e i tutorial su Java per principianti iniziano con una descrizione di OOP: quanto è bello e quanto è bello. È chiaro, poiché qualsiasi altra programmazione è semplicemente impossibile in Java, ad eccezione della programmazione orientata agli oggetti, all'inizio si propone di padroneggiare 40..80 pagine di pazze analogie con la gerarchia di gatti/cani/anatre/macchine, e solo dopo si propone di scrivere “Hello, World!” . :-)

Allo stesso tempo, vale la pena notare che assolutamente tutto il training Java si basa sull'output più primitivo del risultato alla console. Quello non è applicazione console nel senso comune, ovvero l'output di alcuni dati riga per riga. Bene, ad esempio, Turbo Pascal 3.0 è stato rilasciato nel 1985 e aveva già il supporto per le modalità grafiche. Nel 1990, Turbo Vision è apparso - una cosa molto interessante - a la Windows solo per DOS. E in Java nel 2018, è possibile solo l'output sulla console. E ora tutto questo entusiasmo e freddezza è in qualche modo infranto già nella fase "Hello, World!" ... Probabilmente il peggio è semplicemente divertirsi su una calcolatrice programmabile MK-61 o MK-52 - ma cosa? c'è lo stesso output riga per riga.

Ma la cosa più divertente è che in Java puoi effettivamente creare programmi usando la programmazione visiva! L'ho scoperto solo quando ho letto (o meglio conosciuto) un libro di 500 pagine, dove in uno degli ultimi capitoli, è diventato improvvisamente chiaro che ci sono normali GUI (interfacce grafiche utente) per Java e puoi progettare programmi con pulsanti, campi di immissione e menu normali. La domanda è: perché hai passato così tanto tempo su questa pessima console quando potevi fare tutto in modo bello e ordinato in una volta?

Dopo aver trascorso diversi giorni a studiare questo problema, ho scoperto alcune sfumature divertenti.

Primo- Esistono tre tipi di GUI per Java (librerie): A.W.T., Oscillazione(a chi vengono in mente questi nomi?) e JavaFX.

Oggi (Java 8 e 9) sono tutti inclusi nel pacchetto JDK: ovvero tutto funziona fuori dagli schemi e non devi preoccuparti di installarli. Questo è un grande vantaggio.

Ma AWT è la prima e molto vecchia implementazione, quindi non è necessario utilizzarla. In generale, non kosher. Anche lo swing non è kosher, perché lì qualcosa non va e i programmi sono terribilmente lenti a causa di ciò. Non dirò più precisamente, non l'ho capito, ma sembra che ufficialmente non stia più sviluppando diverse versioni. Ma JavaFX è in fermento e il nostro brillante futuro.

C'è un altro tale abominio - applet java, quelli che funzionano nel browser e allo stesso tempo lo "appendono" saldamente, proprio come Flash, solo peggio. Per fortuna questa/queste cose/cose non sono praticamente più utilizzate, quindi è inutile passare del tempo a studiarle.

Quindi l'unica cosa su cui vale la pena dedicare tempo è JavaFX.

secondo momento. Non è così semplice. Considera Delphi (o Visual Studio, Lazarus, qualunque cosa). Anche per un principiante "verde", la creazione di un semplice programma (un pulsante e un campo di testo per l'output) andrà così:

  • iniziare Delfi;
  • viene creato automaticamente un nuovo progetto con la maschera principale;
  • selezionare un pulsante nella tavolozza dei componenti e posizionarlo sul modulo; tutto è visivo
  • allo stesso modo lanciamo un campo di testo sul modulo;
  • se necessario, nel pannello delle proprietà, è possibile specificare il testo del pulsante, le dimensioni, ecc.;
  • corri - Delphi si offrirà di salvare, salvare.

Cioè, non abbiamo scritto una singola riga di codice, l'IDE ha fatto tutto da solo. Se guardi il codice generato, non puoi chiamarlo semplice: alcune conoscenze sono già richieste qui, ma Delphi è abbastanza intelligente da capire come lavorarci.

Se vogliamo aggiungere qualche azione, ad esempio, quando si fa clic su un pulsante, riempire il campo di testo con la frase "Ciao!", Quindi facciamo questo:

  • fare doppio clic sul pulsante (o selezionare l'evento onClick);
  • Delphi crea il codice del gestore per questo evento e ci lancia nell'editor;
  • digitiamo il nome del campo di testo e Delphi fornisce dei suggerimenti sui quali è possibile navigare cosa e come fare.

Quindi, ancora una volta, l'IDE ha fatto tutto il duro lavoro.

Ma è in altre lingue, Java va per la sua strada. Per creare un pulsante in JavaFX, devi creare manualmente uno Stage - "palcoscenico" (il nome è sul serio!) E su di essi posizionare la scena (Scena). Ad esso c'è un contenitore in cui sono già incorporati altri elementi.

Ciò presuppone che ogni elemento e ciascuna delle sue proprietà debbano essere programmati individualmente. Ecco un esempio per due pulsanti e un'etichetta dal mio libro tutorial

Risposta = nuova etichetta("Premi un pulsante"); Pulsante btnUp = nuovo pulsante ("Su"); Pulsante btnDown = nuovo pulsante ("Giù"); btnUp.setOnAction (nuovo EventHandler () ( public void handle(ActionEvent ae) ( response.setText("Hai premuto su."); ) )); btnDown.setOnAction (nuovo EventHandler () ( public void handle(ActionEvent ae) ( response.setText("Hai premuto Giù."); ) )); rootNode.getChildren().addAll(btnUp, btnDown, risposta); ...

Quando ci sono circa una dozzina di pulsanti, più 20 voci di menu, più 30 altri componenti, il codice non sembrerà piccolo. E questo senza il codice che è responsabile di proprietà aggiuntive, come allineamento, dimensione, carattere ... E questo secondo indica che i tutorial JavaFX mostrano come scrivere "codice fx" con le penne. Voglia, in una parola...

Ma ecco che arriva il salutare terza sfumatura. Si scopre che le persone intelligenti (apparentemente familiari con IDE a tutti gli effetti) hanno sviluppato un diverso tipo di applicazione, in cui un file xml descrittivo chiamato fxml e tali programmi cambiano come " Applicazioni JavaFX FXML»

È abbastanza sorprendente per me che l'apprendimento di Java non inizi solo con tali applicazioni. Anche se non è Delphi, è comunque un milione di milioni di volte meglio che lavorare con la console e riempirsi la testa di altre sciocchezze sul perché bisogna usare cento righe con OOP mentre in altre lingue basta una semplice procedura. ;-)

Ora sul serio. Se non hai mai programmato in Java, puoi provarlo subito. In realtà è piuttosto interessante, anche se ci vuole del tempo per abituarsi ai programmi. Se hai esperienza con gli "IDE visivi", allora ancora meglio: incontra molte persone che conosci.

JDK

Java deve essere installato sul computer. Non fornirò collegamenti su come farlo: Google aiuterà, perché tutto è troppo semplice.

IDE

In Java, non esiste un programma: l'ambiente di sviluppo, quindi ci sono esempi sul Web di diversi programmi. I più primitivi, come Notepad++, sono adatti solo per l'output su console, ma se consideriamo qualcosa di più serio, spiccano solo tre candidati: NetBeans, Eclipse e IntelliJ IDEA.

NetBean- il programma più semplice che si avvia velocemente (rispetto al resto) e funziona abbastanza bene.

Eclisse- anche una buona opzione, più potente di NetBeans, ma più debole di IntelliJ IDEA.

IntelliJ IDEA- sembra il più bello, ma devi pagarlo con la velocità del lavoro. Vale la pena notare che Android Studio è basato su IntelliJ IDEA, ma per qualche motivo lo studio è molto più lento.

Un punto importante è relativo alla programmazione per Android. Di questi tre IDE, solo IntelliJ IDEA è più o meno adatto a questo. C'è molto materiale sul Web sulla programmazione per Android in Eclipse, ma sono tutti obsoleti: non perdere tempo a eseguire un vecchio plug-in ADT e provare a fare qualsiasi cosa con esso. Forse il vecchio Android SDK funzionerà, ma tutti quelli nuovi no.

Ti mostrerò come creare un'applicazione JavaFX FXML in tutti e tre i programmi, ma prima di iniziare, devi installare un altro programma: SceneBuilder (usa la versione Java 8). Questo è il programma chiave in cui, di fatto, viene eseguita tutta la costruzione visiva. Costruttore di scene può funzionare da solo senza un IDE, quindi puoi eseguirlo e vedere come funziona. L'output sarà un file fxml che contiene tutto il markup necessario. Questo file viene utilizzato nell'IDE, invece di scrivere un megaton di codice. :-)

TK

Il programma che creerai sarà molto semplice: un pulsante e un campo di testo. Quando fai clic sul pulsante, lascia che il testo "Ciao!" venga aggiunto al campo di testo.

In ogni programma, è necessario pre-registrare l'impostazione, utilizzata da JDK. Se non riesci a capire come farlo, cercalo su Google.

NetBean

Prima di iniziare il lavoro, è necessario collegare SceneBuilder: Servizio - Opzioni - Java - JavaFX - Pagina iniziale di Scene Builder. Seleziona una directory di programma. L'impostazione deve essere eseguita solo una volta. Questo vale per tutti gli IDE.

Crea un nuovo progetto, dove devi selezionare "Applicazione FXML JavaFX".

Facciamo clic su "Fine" e, dopo un po' di lavoro da parte di NetBeans, vediamo i file finiti:

  • Myfx.java- questo è il file principale, che, di fatto, lancia l'intero programma.
  • FXMLDocumentController.java- questo è il "controllore", dove sarà principalmente la programmazione.
  • FXMLDocument.fxml- questo file memorizza la parte visiva.

Ora esegui il programma. Innanzitutto, l'assemblaggio e la compilazione andranno (abbastanza velocemente), dopodiché verrà visualizzata la finestra del nostro programma.

Questo è fantastico, perché non abbiamo scritto una singola riga di codice, ma abbiamo già un programma con un pulsante funzionante. :-)

Se hai specificato correttamente il percorso di SceneBuilder, puoi selezionare la voce di menu "Aprire" in archivio FXMLDocument.fxml. La stessa cosa accade se fai doppio clic. Si aprirà SceneBuilder. Se non è presente alcun elemento, il percorso non è corretto, verificare l'impostazione.

Il principio di funzionamento in SceneBuilder è lo stesso per tutti gli IDE, quindi per ora descriverò solo i punti generali, quindi lo capirai da solo.

Vale la pena notare che dopo aver modificato il file, non è necessario chiudere SceneBuilder. Devi solo salvare (Ctrl + S) e passare all'IDE: rileverà le modifiche stesse.

La finestra di SceneBuilder è divisa in tre parti:

  • a sinistra - insiemi di componenti, gerarchia e Controller, dove è indicata la classe principale (questo è importante!)
  • al centro c'è la forma stessa, dove avviene la costruzione visiva.
  • a destra - le proprietà dei componenti, divise in tre schede (questa è una divisione condizionale). La scheda Codice è responsabile di ciò che verrà utilizzato nel file java.

La creazione di programmi FX deve iniziare con un container. In questo esempio, NetBeans ha utilizzato AnchorPane. È abbastanza conveniente, permettendoti di impostare i rientri "corretti" per gli elementi nidificati. scheda Contenitori contiene altri contenitori con i quali puoi esercitarti da solo (io stesso non ne ho padroneggiato nemmeno la metà :-)).

La gerarchia dei componenti è una cosa molto utile che consente di selezionare rapidamente l'elemento desiderato.

Secondo i termini di riferimento, dovremmo avere un campo di testo. NetBeans utilizza Label, ma non rimuoveremo nulla, ma aggiungeremo solo un nuovo elemento Campo di testo sul modulo (a proprio piacimento).

L'anteprima è possibile in SceneBuilder (Ctrl+P). In questa modalità vengono visualizzati solo il form e tutti gli elementi "senza programmazione java".

Ora un punto importante: per poter utilizzare il componente in un programma java (nel nostro codice), bisogna fare due cose.

Il primo è verificare che sia specificato il controller corretto. Nel nostro caso, NetBeans ha già fatto tutto da solo e ha specificato myfx.FXMLDocumentController .

Come puoi vedere, questo è il controller dal file FXMLDocumentController.java(controllore.pacchetto). L'IDE non lo specifica sempre, ma è importante perché il file fxml (più precisamente, il codice java) lo usa per il binding.

Il secondo punto - il componente utilizzato deve avere un proprio ID - questo è il parametro fx:id. Qui ho indicato campo di testo1.

Un triangolo giallo apparirà nella parte superiore del messaggio che presumibilmente non esiste alcun collegamento tra questo ID e il controller. Ignoralo per ora, ne parleremo dopo.

Anche il pulsante che riempirà il campo di testo deve avere un proprio id, oltre a un metodo di evento onAction (questo è l'evento componente principale, non onClick, come in Delphi). NetBeans si è già occupato di questo, quindi non dobbiamo scrivere nulla.

Su questa costruzione visiva può essere completata. Salva e passa a NetBeans. Vediamo che il file FXMLDocument.fxml modificato: aggiunto campo di testo1:

Ora dobbiamo usare in qualche modo il campo di testo nel codice java. A differenza di Delphi, NetBeans non crea alcun codice per questo, quindi dovremo aggiungerlo in modo "semi-manuale". Per fare ciò, IDE diversi utilizzano metodi diversi, ma il principio generale è che devi posizionare il cursore sul campo desiderato nell'editor ed eseguire alcuni "azione". In NetBeans si chiama Installa controller sul menu Fonte. (Sì, Java ha grossi problemi con la denominazione...)

Dopo aver eseguito questo comando, andrà al file FXMLDocumentController.java, dove la dichiarazione della variabile verrà aggiunta al codice campo di testo1:

Presta attenzione a "@FXML": questa annotazione indica che il codice è in qualche modo utilizzato in FXML. Dopo queste modifiche, SceneBuilder non emetterà più un avviso come prima il triangolo giallo. Se esegui nuovamente SceneBuilder, puoi verificarlo.

Avviamo il programma per l'esecuzione del test. Ora il nostro compito è compilare il campo di testo facendo clic sul pulsante. Come hai già capito il metodo handleButtonAction solo facendo il lavoro giusto. In esso aggiungiamo:

TextField1.setText("Ciao!");

Presta attenzione a come funziona completamento del codice dopo aver premuto il punto.

Durante la digitazione, NetBeans restringerà l'area dei suggerimenti da cui è possibile scegliere. Questa caratteristica rende la vita molto facile ai programmatori, poiché ci sono troppe opzioni e ciò consente di evitare vari tipi di errori di sintassi durante la digitazione.

Questa funzionalità è presente in tutti gli IDE, sebbene vi siano differenze nell'implementazione e nell'utilizzo.

Eseguiamo il programma e vediamo che tutto funziona come dovrebbe.

Abbiamo dovuto scrivere solo una riga di codice, beh, ed eseguire alcune azioni aggiuntive nell'editor.

Eclisse

Eclipse impiega un po' più di tempo per iniziare rispetto a NetBeans. Per prima cosa devi specificare il percorso di SceneBuilder. Questo è fatto Finestra - Preferenze - JavaFX.

Presta attenzione anche al fatto che Eclipse è un programma non russo (non so nemmeno se esiste un Russifier).

Crea un nuovo progetto e seleziona JavaFX.

Clic Prossimo e vai alla pagina delle impostazioni. Qui ho indicato il nome del progetto, come prima myfx(Ho directory di progetto diverse per IDE diversi, quindi non si sovrappongono).

Qui è necessario selezionare il tipo di applicazione, il tipo di contenitore e il nome del controller. Clic Fine ed Eclipse genera rapidamente lo scheletro del nostro programma futuro.

Tutto è molto simile qui, è stato aggiunto solo un altro file applicazione.css- si, si, in JavaFX puoi usare i CSS per personalizzare l'aspetto! Eclipse ha generato immediatamente un codice di connessione per questo file.

Esegui il programma e assicurati che non ci siano errori.

A differenza di NetBeans, questo è un modulo completamente vuoto. Apriamolo in SceneBuilder usando il menu contestuale.

E qui vediamo che non c'è forma. Ma, in effetti, lo è - è solo che la dimensione calcolata (altezza e larghezza) viene utilizzata per impostazione predefinita, che in questo caso è zero. Non ci sono componenti! Nel nostro caso, questo non è esattamente ciò di cui abbiamo bisogno, quindi selezioneremo il BorderPane nell'elenco gerarchico e nelle proprietà Larghezza preferita e Altezza preferita impostiamo alcuni valori. Queste proprietà impostano la larghezza e l'altezza "desiderate". Successivamente, il modulo "appare" immediatamente.

Il contenitore BorderPane è composto da 4 parti: in alto, a destra, in basso, a sinistra e al centro. I componenti devono essere posizionati in parti diverse: la loro posizione dipenderà da questo quando la finestra verrà ridimensionata.

È piuttosto difficile da spiegare a parole qui, prova a posizionare alcuni pulsanti e quindi ridimensiona la finestra nell'anteprima.

Non sono diventato troppo intelligente e ho posizionato un campo di testo in alto e un pulsante al centro.

Ora controlla che sia specificato il controller: in questo caso application.SampleController- Eclipse ha fatto il lavoro per noi.

Ora dobbiamo specificare un id per i nostri elementi. Per il pulsante ho impostato btn1 e il campo di testo campo di testo1. Abbiamo di nuovo il messaggio "triangolo giallo".

Per il pulsante, specificare il metodo per l'evento - btn1Click.

Salva e torna a Eclipse. Vedremo che il file Esempio.fxml aggiornato, ma accanto ad alcune righe sono apparse icone di avviso.

La situazione qui è esattamente la stessa di NetBeans: è necessario apportare modifiche in modalità "semi-manuale". In Eclipse, questo viene fatto utilizzando il menu contestuale sul secondo pulsante del mouse: Soluzione rapida o tasto di scelta rapida ctrl+1(che è più conveniente).

Allo stesso tempo, viene visualizzato un suggerimento sull'azione prevista. Ad esempio per campo di testo1 si propone di aggiungere un identificatore al titolare del trattamento:

e per il pulsante c'è anche un metodo di gestione degli eventi:

Allo stesso tempo, Eclipse rallenta leggermente e le modifiche non vengono visualizzate immediatamente sullo schermo. Qui è necessario passare al file del controller o attendere un po'. Di conseguenza, le modifiche desiderate verranno aggiunte al codice e le icone di avviso scompariranno.

Aggiungiamo il nostro codice come abbiamo fatto prima in NetBeans.

Presta attenzione al lavoro più intellettuale di completamento automatico. In modalità automatica, rallenta leggermente, ma se si preme Ctrl+Spazio(la stessa combinazione è usata in molti IDE), permette anche di ottenere un buon aiuto.

Iniziamo il nostro programma.

E scriviamo un altro IDE sul nostro account. :-)

IntelliJ IDEA

IntelliJ IDEA si avvia piuttosto lentamente, puoi avere il tempo di controllare la tua posta. :-)

Di nuovo, specifica il percorso di SceneBuilder: Impostazioni dei file:

E specifica il suo nome (come al solito - myfx):

IntelliJ IDEA si inizializzerà e vedremo i tre file familiari. Eseguiamo il programma per verificare la presenza di errori.

C'è anche un modulo vuoto, ma è specificato il titolo del programma. Se guardi il codice Main.java, vedremo la riga:

PrimaryStage.setTitle("Hello World");

Questo è il titolo della domanda. In altri IDE questa linea manca, ma ora sappiamo a cosa serve il "palcoscenico". ;-)

Passa a SceneBuilder (simile a Eclipse): con il secondo pulsante del mouse devi selezionare Apri in SceneBuilder.

Anche qui c'è un modulo vuoto, ma con un contenitore Riquadro griglia. Installare Larghezza preferita e Altezza preferita per visualizzare il modulo.

Di per sé, GridPane è una griglia à la di celle per gli elementi. Penso che non abbia senso ripetere qui - tutte le azioni saranno simili:

  • posizionare il pulsante e il campo di prova,
  • dare loro un documento d'identità
  • per il pulsante, registrare un metodo per elaborare un clic,
  • non dimenticare di controllare se il controller è specificato ( campione.Controller).

Chiudere SceneBuilder e tornare a IntelliJ IDEA. Qui è necessario aggiungere identificatori ID al codice e anche creare un metodo per reagire al clic del pulsante.

IntelliJ IDEA offre due modi per farlo. Il primo - quando passi il mouse sopra il "posto problematico", apparirà un suggerimento su cui puoi fare clic:

Il secondo è un tasto di scelta rapida Alt+Invio

Ogni volta che aggiungi, passi al file del controller, dove puoi vedere immediatamente le modifiche.

Allo stesso tempo, nota che la riga "@FXML" non è stata aggiunta. Se lo aggiungiamo manualmente prima delle variabili e del metodo, IntelliJ IDEA offrirà immediatamente di aggiungere la classe java richiesta:

In generale, IntelliJ IDEA mostra una discreta ingegnosità e funge da assistente nella scrittura del codice. E lo fa da solo senza la pressione di alcun pulsante aggiuntivo.

Bene, aggiungiamo il nostro codice per il gestore ed eseguiamo il programma:

Ottimo, funziona tutto!

Totale

Conclusione principale - La programmazione visiva è possibile in Java. Potrebbe non essere perfetto, ma è abbastanza adatto, soprattutto per i principianti. Imparare una lingua è molto più interessante quando c'è qualche risultato tangibile: OOP, classi e altri trucchi sono buoni, ma è meglio iniziare con pulsanti, campi di input, menu e tutto ciò che implica un normale programma. E la console è noiosa e poco interessante.

Ho portato tre IDE non casualmente. Ci sono molti esempi Java sul Web e sono tutti per programmi diversi. Personalmente, non ho ancora deciso la mia preferenza, poiché tutti hanno sia vantaggi che svantaggi. Probabilmente serve lavorare con tutti, poi sarà chiaro.

Ma il punto chiave è la capacità di lavorare con SceneBuilder. Costruire un form in JavaFX è leggermente diverso dallo stesso Delphi, principalmente nell'uso di contenitori complessi (possono essere annidati l'uno nell'altro). Pertanto, dovresti prima affrontarli, dopodiché puoi già assumere i componenti stessi.

Articoli correlati in alto