Journal
Java for Everything
Les critiques récurrentes envers Java sont, la plupart du temps, infondées. Celle de la verbosité est particulièrement absurde, le concept d'autocomplétion est plus vieux que moi. On retrouve aussi le grand débat "bytecode interprété vs. code compilé", qui n'intéresse que ceux qui ignorent l'existence des mécanismes de compilation à la volée. Java est un langage qui évolue depuis sa création, aussi bien au niveau de sa syntaxe (p. ex. l'opérateur diamant, le multicatch, le try-with-resource, les lambda) que de son SDK (p. ex. NIO, streams, gestion de la concurrence), mais il continue à être jugé sous le prisme de ses premières versions.
Globalement, et cela est vrai pour tout langage, les critiques portent soit (i) sur la façon dont les logiciels sont implémentés en utilisant le langage, soit (ii) sur des points de détail plus ou moins significatifs. Ce sont ces détails qui permettront, justement, de déterminer le meilleur langage en fonction des besoins.
La question "quel est votre langage de programmation préféré" est particulièrement intéressante. Apprendre un langage, c'est assez facile, mais maîtriser son écosystème (librairies, techniques avancées, environnements d'exécution, compilateurs, débogueurs, etc.) est un exercice long et complexe. D'où des développeurs qui vont finalement toujours utiliser leurs langages/outils préférés dans n'importe quelle situation et inventer des arguments abracadabrantesques pour justifier leurs choix (ou invalider celui des autres).
A la vérité, je n'ai pas encore trouvé un "bon" langage, tous ceux que j'ai essayé et que j'utilise au quotidien sont tout juste "potables". A un moment donné ou à un autre, tous ces langages m'ont agacés pour tel ou tel problème de syntaxe, de logique, de performance ou d'incomplétude. Le langage idéal, à mon sens, est celui qui permet de décrire rapidement les idées (concrètes) que l'on cherche à implémenter sans forcément avoir à gérer les limitations propres aux structures du langage, à ses primitives, à ses librairies et à son environnement. Peut être y a t'il de l'espoir dans les domain-specific language, du fait de leur spécialisation.
Globalement, et cela est vrai pour tout langage, les critiques portent soit (i) sur la façon dont les logiciels sont implémentés en utilisant le langage, soit (ii) sur des points de détail plus ou moins significatifs. Ce sont ces détails qui permettront, justement, de déterminer le meilleur langage en fonction des besoins.
La question "quel est votre langage de programmation préféré" est particulièrement intéressante. Apprendre un langage, c'est assez facile, mais maîtriser son écosystème (librairies, techniques avancées, environnements d'exécution, compilateurs, débogueurs, etc.) est un exercice long et complexe. D'où des développeurs qui vont finalement toujours utiliser leurs langages/outils préférés dans n'importe quelle situation et inventer des arguments abracadabrantesques pour justifier leurs choix (ou invalider celui des autres).
A la vérité, je n'ai pas encore trouvé un "bon" langage, tous ceux que j'ai essayé et que j'utilise au quotidien sont tout juste "potables". A un moment donné ou à un autre, tous ces langages m'ont agacés pour tel ou tel problème de syntaxe, de logique, de performance ou d'incomplétude. Le langage idéal, à mon sens, est celui qui permet de décrire rapidement les idées (concrètes) que l'on cherche à implémenter sans forcément avoir à gérer les limitations propres aux structures du langage, à ses primitives, à ses librairies et à son environnement. Peut être y a t'il de l'espoir dans les domain-specific language, du fait de leur spécialisation.
Ce journal est basé sur Ginger, un gestionnaire de lien minimaliste développé dans le cadre d'un stage de perfectionnement. Pour plus d'informations, consulter le wiki consacré à mes projets personnels.