BlueJ et Greenfoot: les meilleurs IDE pour apprendre Java

Vous dites que vous voulez apprendre Java. Cela peut être une langue intimidante. Cela peut même sembler impénétrable si vous êtes un nouveau programmeur. Mais, vous prenez une profonde inspiration et vous décidez de l'essayer. Ok, tout d'abord: vous avez besoin d'un de ces environnements de développement intégrés (IDE) que vous avez lu. Une application unique dans laquelle vous pouvez modifier, créer, exécuter, déboguer et déployer votre application Java qui sera bientôt écrite.

Plusieurs IDE Java populaires et gratuits sont disponibles: Eclipse, NetBeans et l'édition communautaire d'IntelliJ, par exemple. Vous en choisissez un, le téléchargez et l'installez, et en très peu de temps vous vous rendez compte que vous avez maintenant deux choses à apprendre: Java et l'IDE. L'outil de développement que vous avez choisi est aussi impénétrable que le langage avec lequel il est censé vous aider.

Entrez BlueJ et Greenfoot, deux IDE spécialement conçus pour les débutants. Ils sont le produit d'une équipe basée au King's College de Londres (bien que les membres de l'équipe aient parfois été affiliés à des universités d'Australie et du Danemark). Les créateurs de BlueJ et Greenfoot ont sélectionné l'ensemble de fonctionnalités et la conception de l'interface pour ne pas submerger les débutants.

En fait, comme l'explique Neil Brown, le développeur principal, les fonctionnalités de BlueJ et Greenfoot sont «... révélées au fur et à mesure que les utilisateurs les consultent». Vous n'êtes pas jeté au fond de la piscine. Par conséquent, les deux fournissent une introduction facile non seulement au langage Java, mais aux outils et techniques nécessaires pour créer des applications dans ce langage.

Apprenez Java avec BlueJ

BlueJ est apparu pour la première fois en 1999, nommé simplement Blue. À cette époque, c'était à la fois un environnement de développement et un langage. Lorsque Java est apparu, l'outil a été reconstruit en utilisant Java comme langage et le nom a été changé en BlueJ.

Des éditions de BlueJ existent pour Linux, MacOS et Windows. BlueJ se présente également sous une forme générique: emballé sous forme de fichier JAR afin que BlueJ puisse être installé sur n'importe quel système prenant en charge Java. La version actuelle de BlueJ (4.2.2 au moment de la rédaction de cet article) nécessite JDK 11 ou une version ultérieure et, en tant que telle, doit être exécutée sur un système d'exploitation 64 bits. Auparavant, des versions 32 bits existaient, mais elles ne sont plus en cours de développement.

J'ai découvert BlueJ (et Greenfoot) pour la première fois lorsque je les ai trouvés préinstallés sur un Raspberry Pi 4 que j'avais acheté l'année dernière. J'ai appris plus tard que BlueJ était installé sur le Raspberry Pi depuis 2015.

Ouvrez un projet dans BlueJ et vous êtes présenté avec une fenêtre clairsemée rafraîchissante: barre de menus en haut, barre d'outils à gauche d'une grande zone de travail et un plus petit volet de banc d'objets en dessous. Les boutons de la barre d'outils vous permettent de créer une classe, de définir une relation d'héritage ou de compiler une classe. Les classes de projet apparaissent dans l'atelier comme une sorte de diagramme UML épuré, et bien que BlueJ ne soit pas un environnement de développement visuel à part entière, il en suffit d'un pour que vous puissiez voir les relations entre les entités de votre programme, mais ne pas perdre de vue du code.

Double-cliquez sur une icône de classe dans l'atelier, et sa source s'ouvre dans l'éditeur, où une autre aide visuelle est révélée: la mise en évidence de la portée. Avec la mise en surbrillance de la portée, les blocs de code imbriqués sont littéralement mis en surbrillance dans différents arrière-plans colorés, de sorte que vous pouvez rapidement voir la zone couverte par une méthode dans une classe, une forboucle dans une méthode, une ifinstruction dans cette forboucle, etc. La structure du code est rendue immédiatement apparente.

Cliquez avec le bouton droit sur une classe dans l'atelier et un nouveau menu apparaît qui, en fonction de la nature et de la composition de la classe, vous permet de compiler la classe, d'inspecter son contenu, de créer une classe de test correspondante (plus d'informations à ce sujet plus tard), d'exécuter une méthode de classe, ou instanciez un objet de la classe. Ici, l'interactivité de BlueJ occupe le devant de la scène.

Les classes peuvent être compilées individuellement; vous n'avez pas besoin de reconstruire un projet entier si vous avez modifié une seule classe. Choisissez d'exécuter une méthode de classe et une boîte de dialogue apparaît, vous demandant les entrées de méthode. Entrez les entrées, cliquez sur OK et une autre boîte de dialogue se matérialise, affichant la valeur de retour et son type de données.

Si vous instanciez une classe, une icône représentant le nouvel objet apparaît dans le banc d'objets. Comme pour les classes, vous pouvez cliquer avec le bouton droit de la souris sur l'icône de l'objet et examiner le contenu de l'objet. Vous pouvez également exécuter des méthodes d'instance d'objet individuelles; des boîtes de dialogue apparaissent (comme ci-dessus) pour saisir les arguments d'entrée et afficher les valeurs de retour.

BlueJ ne serait pas un IDE complet sans un débogueur. Vous pouvez définir les points d'arrêt du débogueur dans BlueJ de la même manière que vous le feriez dans d'autres IDE. Dans l'éditeur, il suffit de cliquer dans la colonne à gauche de la ligne de code source ciblée. Lorsque, pendant l'exécution, le point d'arrêt est déclenché, la fenêtre contextuelle du débogueur de BlueJ s'ouvre, affichant les threads, la pile d'appels, les variables statiques de verrouillage et d'instance, ainsi que les contrôles de débogage familiers (étape, étape, continuer et arrêter). Encore une fois, la présentation épurée de BlueJ ne vous sépare pas de la tâche à accomplir.

Comme mentionné ci-dessus, BlueJ peut créer une classe de test à partir du menu contextuel d'une icône de classe. La classe créée automatiquement est une classe de test JUnit squelettique (JUnit 4 est intégré à BlueJ). Il se compose d'un constructeur vide setUp()et de tearDown()méthodes. Vous pouvez soit créer des méthodes de test en ouvrant la source de la classe dans l'éditeur, soit utiliser une sorte d'assistant intégré qui, via une série de boîtes de dialogue, vous guide dans la création de méthodes de test.

De même, BlueJ fournit une assistance pour la création d'applications graphiques JavaFX et Swing. Des didacticiels sont fournis et l'utilisation du didacticiel JavaFX révèle le réel avantage de l'utilisation de la capacité de BlueJ à exécuter des méthodes sur des objets «vivants» (pendant que l'application est en cours d'exécution). Vous pouvez en fait voir le résultat d'un appel de méthode sur un composant graphique.

Les didacticiels interactifs intégrés de BlueJ vous permettent de décoller. Si vous avez besoin d'encore plus de matériel pédagogique, le livre Objects First with Java , co-écrit par le créateur de BlueJ Michael Kölling, utilise BlueJ comme environnement de développement pour présenter une approche novatrice de la programmation orientée objet en Java.

Apprenez Java avec Greenfoot

Construit sur BlueJ par le même créateur, Michael Kӧlling, Greenfoot est un IDE plus spécialisé que BlueJ. Alors que BlueJ est souvent utilisé dans le cadre d'un cours d'introduction à la programmation de niveau universitaire, Greenfoot s'adresse aux jeunes utilisateurs; aussi jeune que 14 ans. Pour capter et retenir l'attention d'un public plus jeune, Greenfoot a été conçu comme un «simple environnement Java IDE et animation». Ce qui signifie que c'est pour créer des jeux.

Pour comprendre Greenfoot, vous devez d'abord apprendre sa terminologie. Un projet Greenfoot est un «scénario». Chaque scénario a un «monde», qui est le terrain de jeu de votre jeu. C'est un contenant bidimensionnel habité par des «acteurs». Soyez prudent ici - un acteur Greenfoot n'est pas le type particulier d'entité de programmation concurrente orientée objet du même nom (voir //en.wikipedia.org/wiki/Actor_model). Les acteurs de Greenfoot sont les pièces de jeu de votre jeu.

Un acteur de Greenfoot a des attributs et des méthodes (caractéristiques et comportements). L'une des caractéristiques d'un acteur est son apparence - l'icône affichée dans le monde pour représenter cet acteur. Greenfoot est livré avec une variété d'images d'acteurs pour vous aider à démarrer, ou vous pouvez créer et importer votre propre image.

La disposition visuelle de Greenfoot est une image miroir de BlueJ. La fenêtre principale de Greenfoot est le monde. À sa droite, une barre d'outils verticale est remplie de diagrammes d'héritage des classes de projet. En règle générale, il existe deux «arbres» d'héritage dans la barre d'outils, l'un enraciné dans la Worldclasse de base , l'autre enraciné dans la Actorclasse de base . Les classes dérivées partent de ces deux racines.

Comme avec BlueJ, un double-clic sur l'icône d'une classe ouvre sa source associée dans une fenêtre d'éditeur. L'éditeur Greenfoot est identique à celui de BlueJ, ce qui n'est pas surprenant, car presque tout BlueJ s'exécute sous Greenfoot. L'éditeur de Greenfoot a donc mis en évidence la portée de BlueJ, et le débogueur de Greenfoot fonctionne exactement comme celui de BlueJ.

Modifiez une classe dans l'éditeur et son icône dans le diagramme d'héritage est hachurée. Cela indique que la classe doit être recompilée avant de pouvoir être utilisée pour instancier un objet. De plus, tous les objets du monde dérivés de cette classe deviennent flous (plus de reliefs nets) pour montrer qu'ils sont désormais obsolètes. Heureusement, comme dans BlueJ, vous pouvez compiler des classes individuellement.

Une fois que vous avez instancié un acteur, vous pouvez le placer dans le monde en faisant glisser et en déposant son icône dans le volet de la fenêtre du monde. À proprement parler, il n'est pas nécessaire de mettre un acteur dans le monde avant que l'une des méthodes de l'acteur puisse être appelée. Cliquez avec le bouton droit sur un acteur pour sélectionner une méthode à appeler. Si la méthode nécessite des paramètres d'entrée, une boîte de dialogue s'ouvre et vous permet de fournir le paramètre.

Le temps doit s'écouler dans le monde de Greenfoot pour que les acteurs aient du mouvement. Mais c'est un monde numérique, donc le temps avance en ticks d'une horloge interne - une boucle de mise à jour. Deux boutons - Act et Exécuter - contrôlent l'exécution de cette boucle. Cliquez sur le bouton Act et la boucle s'exécute une fois. Cliquez sur Exécuter, le bouton devient Pause et la boucle s'exécute jusqu'à ce que vous cliquiez à nouveau sur le bouton pour l'arrêter. Ces boutons sont bien sûr extrêmement utiles pour tester et déboguer votre jeu.

Si vous devez suspendre la session de développement de votre scénario et que vous voulez reprendre là où vous l'avez laissé, vous pouvez sauver le monde (ce qui est beaucoup moins dramatique qu'il n'y paraît). Greenfoot capturera l'emplacement et l'état des acteurs dans le monde, et encodera ces informations pour une méthode appelée par le constructeur des acteurs. Le résultat: votre scène se réassemble la prochaine fois que vous démarrez l'EDI Greenfoot.

Pendant le jeu, que se passe-t-il lorsque deux acteurs se heurtent? Ou quelque chose explose? Un jeu doit avoir des effets sonores. Greenfoot peut importer des fichiers .wav dans un scénario, et les méthodes vous permettent de jouer ces sons lorsque des événements spécifiques sont déclenchés. Rien ne vous empêche d'emprunter l'un des sons fournis avec les différents tutoriels sur le site Web de Greenfoot. Mais si vous souhaitez créer le vôtre, Greenfoot fournit un enregistreur de son intégré. Les capacités d'édition de l'enregistreur sont simples mais utilisables. Il s'agit essentiellement d'un système de «capture et découpage».

Enfin, si vous avez besoin d'idées de jeux autres que celles fournies dans les didacticiels de Greenfoot, le site Web de Greenfoot regorge de scénarios créés et téléchargés par des utilisateurs du monde entier. Certains peuvent même être joués en ligne. La qualité est naturellement inégale, mais la variété des jeux témoigne de la polyvalence de Greenfoot.

Tremplins vers la programmation Java professionnelle

Selon le créateur Michael Kӧlling, alors que BlueJ est généralement utilisé dans le cours d'introduction à la programmation d'une université, Greenfoot convient à une utilisation au lycée. Néanmoins, quel que soit votre âge, vous pouvez obtenir beaucoup de kilomètres avec l'un ou l'autre IDE si vous venez de mettre le pied sur la voie de l'auto-éducation Java.

Au-delà des tutoriels déjà mentionnés, il existe une quantité considérable de supports sur les sites Web BlueJ et Greenfoot. Nous avons déjà mentionné le manuel BlueJ; un manuel existe également pour Greenfoot, Introduction à la programmation avec Greenfoot . (Consultez les sites Web pour obtenir des informations d'achat.)

Aucun des IDE n'est adapté à la création d'applications Java de niveau entreprise prêtes à l'emploi. Mais en tant que véhicules d'introduction pour tous les nouveaux utilisateurs de Java, ils cochent toutes les cases et ne vous surchargent pas avec la complexité des barres d'outils et des menus. Ce sont des tremplins solides et lisses vers le développement Java de qualité professionnelle.