BlueJ e Greenfoot: i migliori IDE per imparare Java

Dici che vuoi imparare Java. Può essere un linguaggio scoraggiante. Potrebbe anche sembrare impenetrabile se sei un nuovo programmatore. Ma fai un respiro profondo e decidi di fare un tentativo. Ok, per prima cosa: hai bisogno di uno di quegli ambienti di sviluppo integrato (IDE) di cui hai letto. Un'unica applicazione in cui puoi modificare, creare, eseguire, eseguire il debug e distribuire la tua applicazione Java di prossima scrittura.

Sono disponibili diversi IDE Java popolari e gratuiti: Eclipse, NetBeans e l'edizione per la comunità di IntelliJ, ad esempio. Ne scegli uno, lo scarichi e lo installi, e in pochissimo tempo ti accorgi che ora hai due cose da imparare: Java e l'IDE. Lo strumento di sviluppo che hai scelto è impenetrabile quanto il linguaggio con cui dovrebbe aiutarti.

Entrano BlueJ e Greenfoot, due IDE progettati specificatamente per i principianti. Sono il prodotto di un team con sede al King's College di Londra (anche se, a volte, i membri del team sono stati affiliati con università in Australia e Danimarca). I creatori di BlueJ e Greenfoot hanno selezionato il set di funzionalità e il design dell'interfaccia per non sopraffare i principianti.

Infatti, come spiega Neil Brown, lo sviluppatore principale, le funzionalità di BlueJ e Greenfoot vengono "... rivelate quando gli utenti si rivolgono a loro". Non sei gettato nell'estremità profonda della piscina. Di conseguenza, entrambi forniscono una facile introduzione non solo al linguaggio Java, ma anche agli strumenti e alle tecniche necessari per creare applicazioni in quel linguaggio.

Impara Java con BlueJ

BlueJ è apparso per la prima volta nel 1999, chiamato semplicemente Blue. A quel tempo, era sia un ambiente di sviluppo che un linguaggio. Quando è apparso Java, lo strumento è stato ricostruito utilizzando Java come linguaggio e il nome è stato cambiato in BlueJ.

Esistono edizioni di BlueJ per Linux, MacOS e Windows. BlueJ è disponibile anche in una forma generica: confezionato come file JAR in modo che BlueJ possa essere installato su qualsiasi sistema che supporti Java. La versione corrente di BlueJ (4.2.2 al momento della stesura di questo documento) richiede JDK 11 o successivo, e come tale deve essere eseguito su un sistema operativo a 64 bit. In precedenza, esistono versioni a 32 bit, ma non vengono più sviluppate.

Sono venuto a conoscenza di BlueJ (e Greenfoot) per la prima volta quando li ho trovati preinstallati su un Raspberry Pi 4 che avevo ottenuto l'anno scorso. In seguito ho appreso che BlueJ era stato installato sul Raspberry Pi dal 2015.

Apri un progetto in BlueJ e ti viene presentata una finestra rinfrescante e sparsa: barra dei menu nella parte superiore, barra degli strumenti a sinistra di un'ampia area del banco di lavoro e un riquadro del banco degli oggetti più piccolo in basso. I pulsanti sulla barra degli strumenti consentono di creare una classe, definire una relazione di ereditarietà o compilare una classe. Le classi di progetto appaiono nel workbench come una sorta di diagramma UML ridotto e, sebbene BlueJ non sia un ambiente di sviluppo visivo completo, ne è sufficiente uno in modo che tu possa vedere le relazioni tra le entità nel tuo programma, ma senza perdere di vista del codice.

Fai doppio clic sull'icona di una classe nel workbench e la sua fonte si apre nell'editor, dove viene rivelata un'altra assistenza visiva: l'evidenziazione dell'ambito. Con l'evidenziazione dell'ambito, i blocchi di codice annidati vengono letteralmente evidenziati in sfondi colorati diversi, in modo da poter vedere rapidamente l'area coperta da un metodo all'interno di una classe, un forciclo all'interno di un metodo, ifun'istruzione all'interno di quel forciclo e così via. La struttura del codice è resa immediatamente evidente.

Fai clic con il pulsante destro del mouse su una classe nel workbench e viene visualizzato un nuovo menu che, a seconda della natura e della composizione della classe, ti consente di compilare la classe, ispezionarne il contenuto, creare una classe di test corrispondente (ne parleremo più avanti), eseguire un metodo di classe o istanziare un oggetto della classe. Qui, l'interattività di BlueJ è al centro della scena.

Le classi possono essere compilate individualmente; non devi ricostruire un intero progetto se hai modificato una singola classe. Scegli di eseguire un metodo di classe e viene visualizzata una finestra di dialogo che richiede gli input del metodo. Immettere gli input, fare clic su OK e un'altra finestra di dialogo si materializza, mostrando il valore restituito e il tipo di dati.

Se crei un'istanza di una classe, un'icona che rappresenta il nuovo oggetto appare nel riquadro degli oggetti. Come con le classi, puoi fare clic con il pulsante destro del mouse sull'icona dell'oggetto ed esaminare il contenuto dell'oggetto. È inoltre possibile eseguire metodi di istanza di oggetti individuali; vengono visualizzate le finestre di dialogo (come sopra) per l'immissione di argomenti di input e la visualizzazione dei valori di ritorno.

BlueJ non sarebbe un IDE completo senza un debugger. Puoi impostare i punti di interruzione del debugger in BlueJ nello stesso modo in cui faresti in altri IDE. Nell'editor, fai clic nella colonna a sinistra della riga del codice sorgente di destinazione. Quando, durante l'esecuzione, viene attivato il punto di interruzione, si apre il popup del debugger di BlueJ, che mostra thread, stack di chiamate, blocco statico e variabili di istanza, nonché i controlli di debug familiari (passaggio, passaggio, continua e interruzione). Ancora una volta, la presentazione ordinata di BlueJ non si frappone tra te e il compito da svolgere.

Come accennato in precedenza, BlueJ può creare una classe di prova dal menu di scelta rapida dell'icona di una classe. La classe creata automaticamente è una classe di test JUnit scheletrica (JUnit 4 è integrato con BlueJ). Consiste di un costruttore vuoto setUp()e di tearDown()metodi. È possibile creare metodi di test aprendo il codice sorgente della classe nell'editor oppure utilizzare una sorta di procedura guidata incorporata che, tramite una serie di finestre di dialogo, guida l'utente attraverso la creazione di metodi di test.

Allo stesso modo, BlueJ fornisce assistenza per la creazione di applicazioni grafiche JavaFX e Swing. Vengono forniti dei tutorial e il lavoro attraverso il tutorial JavaFX rivela il reale vantaggio dell'utilizzo della capacità di BlueJ di eseguire metodi su oggetti "live" (mentre l'applicazione è in esecuzione). Puoi effettivamente vedere il risultato di una chiamata al metodo su un componente grafico.

I tutorial interattivi integrati di BlueJ ti fanno decollare. Se hai bisogno di ancora più materiale didattico, il libro Objects First with Java , co-scritto dal creatore di BlueJ Michael Kölling, utilizza BlueJ come ambiente di sviluppo per presentare un approccio per principianti alla programmazione orientata agli oggetti in Java.

Impara Java con Greenfoot

Realizzato su BlueJ dallo stesso creatore, Michael Kӧlling, Greenfoot è un IDE più specializzato di BlueJ. Mentre BlueJ è spesso utilizzato nell'impostazione di un corso introduttivo di programmazione a livello universitario, Greenfoot si rivolge a utenti più giovani; a partire da 14 anni. Per catturare e mantenere l'attenzione di un pubblico più giovane, Greenfoot è stato creato come un "semplice IDE Java e framework di animazione". Il che significa che serve per costruire giochi.

Per capire Greenfoot, devi prima imparare la sua terminologia. Un progetto Greenfoot è uno "scenario". Ogni scenario ha un "mondo", che è il campo di gioco del tuo gioco. È un contenitore bidimensionale abitato da "attori". Fai attenzione qui: un attore di Greenfoot non è il tipo particolare di entità di programmazione concorrente orientata agli oggetti con lo stesso nome (vedi //en.wikipedia.org/wiki/Actor_model). Gli attori di Greenfoot sono le pedine del tuo gioco.

Un attore di Greenfoot ha attributi e metodi (caratteristiche e comportamenti). Una caratteristica di un attore è il suo aspetto: l'icona esposta nel mondo per rappresentare quell'attore. Greenfoot viene fornito con una varietà di immagini degli attori per iniziare, oppure puoi creare e importare la tua immagine.

La disposizione visiva di Greenfoot è un'immagine speculare di BlueJ. La finestra principale di Greenfoot è il mondo. Alla sua destra, una barra degli strumenti verticale è popolata con diagrammi di ereditarietà delle classi di progetto. Tipicamente, ci sono due "alberi" di ereditarietà nella barra degli strumenti, uno radicato nella Worldclasse base , l'altro radicato nella Actorclasse base . Le classi derivate si ramificano da queste due radici.

Come con BlueJ, facendo doppio clic sull'icona di una classe si apre la sorgente associata in una finestra dell'editor. L'editor di Greenfoot è identico a quello di BlueJ, il che non sorprende, poiché quasi tutto BlueJ viene eseguito sotto Greenfoot. Quindi l'editor di Greenfoot ha l'evidenziazione dell'ambito di BlueJ e il debugger di Greenfoot funziona esattamente come quello di BlueJ.

Modificare una classe nell'editor e la sua icona nel diagramma di ereditarietà è tratteggiata. Ciò indica che la classe deve essere ricompilata prima di poter essere utilizzata per istanziare un oggetto. Inoltre, tutti gli oggetti nel mondo derivati ​​da quella classe diventano sfocati (non più in netto rilievo) per mostrare che ora sono obsoleti. Fortunatamente, come in BlueJ, puoi compilare le classi individualmente.

Dopo aver creato un'istanza di un attore, puoi posizionarlo nel mondo trascinando e rilasciando la sua icona nel riquadro della finestra del mondo. A rigor di termini, non è necessario mettere un attore nel mondo prima di poter chiamare uno qualsiasi dei metodi dell'attore. Fare clic con il pulsante destro del mouse su un attore per selezionare un metodo da chiamare. Se il metodo richiede parametri di input, si apre una finestra di dialogo che consente di fornire il parametro.

Il tempo deve scorrere nel mondo di Greenfoot affinché gli attori abbiano movimento. Ma è un mondo digitale, quindi il tempo avanza in scatti di un orologio interno, un ciclo di aggiornamento. Due pulsanti, Act e Run, controllano l'esecuzione di quel ciclo. Fare clic sul pulsante Act e il ciclo verrà eseguito una volta. Fare clic su Esegui, il pulsante diventa Pausa e il ciclo viene eseguito finché non si fa nuovamente clic sul pulsante per interromperlo. Questi pulsanti sono, ovviamente, estremamente utili per testare e eseguire il debug del gioco.

Se devi sospendere la sessione di sviluppo del tuo scenario e vuoi riprendere da dove avevi interrotto, puoi salvare il mondo (il che è molto meno drammatico di quanto sembri). Greenfoot catturerà la posizione e lo stato degli attori nel mondo e codificherà tali informazioni per un metodo chiamato dal costruttore degli attori. Il risultato: il tuo palco si ricompone da solo la prossima volta che avvii l'IDE di Greenfoot.

Durante il gioco, cosa succede quando due attori si scontrano? O qualcosa esplode? Un gioco deve avere effetti sonori. Greenfoot può importare file .wav in uno scenario e i metodi ti consentono di riprodurre quei suoni quando vengono attivati ​​eventi specifici. Niente ti impedisce di prendere in prestito nessuno dei suoni forniti con i vari tutorial sul sito Web di Greenfoot. Ma nel caso in cui desideri crearne uno tuo, Greenfoot fornisce un registratore di suoni integrato. Le capacità di editing del registratore sono semplici ma utilizzabili. È fondamentalmente un sistema di "cattura e taglio".

Infine, se hai bisogno di idee di gioco oltre a quelle fornite nei tutorial di Greenfoot, il sito web di Greenfoot pullula di scenari creati e caricati da utenti di tutto il mondo. Alcuni possono anche essere giocati online. La qualità è comprensibilmente irregolare, ma la varietà di giochi testimonia la versatilità di Greenfoot.

Trampolini di lancio per la programmazione Java professionale

Secondo il creatore Michael Kӧlling, mentre BlueJ viene tipicamente utilizzato nel corso introduttivo di programmazione di un'università, Greenfoot è adatto per l'uso al liceo. Tuttavia, indipendentemente dalla tua età, puoi ottenere un sacco di chilometri da entrambi gli IDE se hai appena messo piede sulla strada per l'autoeducazione Java.

Oltre ai tutorial già menzionati, c'è una notevole quantità di materiale di supporto sui siti Web BlueJ e Greenfoot. Abbiamo già menzionato il libro di testo BlueJ; esiste anche un libro di testo per Greenfoot, Introduzione alla programmazione con Greenfoot . (Vedere i siti Web per informazioni sull'acquisto.)

Nessuno dei due IDE è adatto per la creazione di applicazioni Java di livello aziendale pronte per il prodotto. Ma come veicoli introduttivi per chiunque sia nuovo a Java, controllano tutte le caselle e non ti appesantiscono con la complessità della barra degli strumenti e dei menu. Sono solide e lisce trampolini di lancio per lo sviluppo Java di livello professionale.