Java un langage professionnel et ludique
Voici une petite présentation du langage Java (qui n'est PAS le même langage que Javascript).Java à été développé par Sun Microsystems en 1995, il s'agit d'un langage de haut niveau, plus haut que le c++ mais plus bas que Python ou Ruby. Il est depuis devenu un langage très important dans le domaine de l'informatique moderne et à donné naissance à des logiciels jeux et applications que vous connaissez tous (Minecraft par exemple). Il s'agit également, mais c'est un peu moins important, du langage qui m'a donné goût à la programmation et à l'informatique en général. Nous pourrions commencer par les avantages de mon petit préféré:
Un seul code pour toutes les plateformes (on pensera au C et a ses headers spécifiques à Windows comme Windows.h)
C'est le langage par défaut sur les appareils Android (remplacé depuis peu par Kotlin)
Objet-orienté (bien que certains considèrent que c'est un point négatif)
Populaire et bien documenté
Simple et amusant en syntaxe
Voici un tableau qui présente les différences entre le Javascript et Java (pour convaincre les gens qui ne le sont pas encore que ces deux langages sont différents, je pense notamment à certaines personnes dans ma classe…).
Tout d'abord, pour ceux qui ne connaissent pas certains mots de ce vocabulaire, laissez-moi vous les expliquer brièvement. L'objet orienté est un paradigme de programmation dans lequel tout est un objet avec des attributs, des variables et fonctions (appelées dans ce contexte des méthodes) qui leur sont propres. Par exemple, lorsqu' on veut rendre une fenêtre "window" visible avec la librairie swing dans Java, on va taper window.setVisible(true); avec la méthode setVisible() qui est propre à l'objet window (on notera que le C utilise aussi des points avec les structs mais ce n'est pas un langage orienté objet pour autant, il s'agit d'un langage fonctionnel). Ensuite, l'interpréteur est un programme qui permet de faire en sorte que votre ordinateur puisse comprendre notre code. Pour exécuter du code en python par exemple, on utilisera l'interpréteur python en tapant: python3 nom-du-fichier et bien pour Java, il s'agit de la JVM qui pourra lire notre code compilé en fichiers .class puis en .jar. Enfin, la collection de déchets ou garbage collection, est la libération de la mémoire lorsqu'un objet ou une variable n'est plus utilisé. Il s'agit de quelque chose d'un peu plus complexe et je ne suis moi-même pas certain de tout comprendre à ce sujet.
Mais donc vous vous demandez peut-être (ou peut-être pas d'ailleurs), pourquoi j'aime Java? Et bien premièrement pour ses librairies par défaut comme javax.Swing qui permet de faire des interfaces graphiques pour différents buts sans trop se casser la tête, bien que JavaFX soit devenu une alternative plus récente et préférée par beaucoup (celle-ci reste cependant, il me semble dans les librairies par défaut de java), pas besoin de passer directement par OpenGL, Vulkan ou autre API graphique de plus bas niveau et un bazar de pointeurs(d'ailleurs, Java n'a pas de pointeurs, c'est un avantage pour la simplicité mais un désavantage pour le développement de bas niveau, ce pourquoi Java n'a pas été conçu). En plus de cela, la communauté de développeurs Java reste toujours active et prête à aider, ce qui permet de progresser encore plus rapidement (une maîtrise totale de Java ne prendrait pas plus de 3 ans en autodidacte avec toutes les ressources disponibles et cela inclut l'apprentissage de quelques libraires pour le développement front-end ou back-end), même dans un contexte compétitif.Enfin, c'est un des langages les plus utilisés dans le développement back-end et les personnes qui me connaissent savent que je préfère très largement le développement back-end au développement front-end (je déteste par exemple javascript même si je me force à l'apprendre) que je trouve peu cohérent pour pas mal d'aspects on pourrait par exemple citer la possibilité d'additionner deux variables du type string comme si il s'agissait de int ou float, mais ça, il s'agit, encore une fois, d'une autre histoire). Malgré sa forte présence dans les différents secteurs de l'informatique, Java présente quelques désavantages que je vais maintenant évoquer.
Tout d'abord il est très descriptif ("verbose" in english) ce qui le rend peu adapté pour la compétition puisqu'il faut 5 lignes pour simplement faire ce qu'un print ferait en python....D'ailleurs pour ceux qui ne connaissent pas bien le monde de la programmation compétitive, sachez juste que c'est un sujet passionnant et qu'il permet de développer une grande aisance en code et en algorithmique et ce, peu importe le niveau de départ et le langage choisi. Et puis ce n'est pas son seul désavantage, en effet, depuis la mise en place de Kotlin en tant que langage par défaut sur les système d'exploitation Android, Java connaît un léger déclin en popularité et puis il a été remplacé dans plusieurs cursus scolaires par Python qui a été jugé plus adapté pour les débutants. Enfin, il est bien plus lent que des langages compilés en binaire comme le c++ (ou encore plus récent et rapide, le langage rust qui est le second et seul autre langage à être utilisé pour le développement du kernel Linux), ce qui le rend moins populaire pour de lourdes tâches comme les projets nécessitant des calculs d'ombres en 3 dimensions etc...Enfin, je dirais que son dernier point négatif, c'est l'adaptabilité, en effet, la plupart des développeurs java codent soit dans Eclipse, soit dans IntelliJ (et encore c'est bien plus rare) car sa manière de fonctionner le rend plus compliqué à configurer sur des éditeurs de texte comme GNU Emacs (avec lequel j'écris ce petit article, j'en ferai sûrement un sur lui) ou Vim. Si la faille de la librairie Log4J vous a donné une mauvaise opinion de Java sachez que malgré l'importance de cette faille, en tant que développeur débutant, Java sera sûrement votre meilleur ami et aussi votre compagnon de travail pour vos premières années en tant que développeur back-end, logiciel ou mobile. Java reste, malgré tous ses désavantages, un langage très important pour le monde de l'open source (coucou GNU/Linux) et mon premier langage de programmation (ah le beau livre "Head first Java" qui m'a accompagné pendant des nuits de lecture) ce qui fait naturellement de lui mon préféré. Je suis cependant en train d'apprendre le C étant donné que j'ai trouvé un ebook gratuit sur Amazon, je pense donc que mes prochains projets se feront avec, je compte notamment apprendre la librairie SDL...Mais ca, vous en saurez plus au prochain épisode…
Commentaires