Comme on ne peut poster des commentaires sur le blog de Genezys, je vais poster le mien ici, à propos de son humeur sur les langages de haut niveau tels que java, C# etc..

Donc voilà, déjà trois petites choses :

  • renseigne toi sur les différences entre langage interprété, compilé, semi compilé (byte code). Java n'est pas un langage interprété, ni même C# ou autre langage .Net (même PHP n'est qu'à moitié interprété). Surtout que maintenant les machines virtuelles modernes traduisent le byte-code en langage machine avant execution... Donc...
  • Révise ton histoire d'informatique : Le premier langage fut l'assembleur, le second est le C/C++. Qu'est ce qu'il ne faut pas entendre ! :-D Cobol, Fortran .. Ça te dis quelque chose ? ;-) Surtout que même encore de nos jours, le nombre de programmes existants écrit en C/C++ est une goutte d'eau par rapport à tout ceux réalisés en Cobol.

Ensuite, attardes toi un peu plus sur la finalité, l'objectif de ces langages semi-compilés, parce qu'en fait, tout le reste de ton billet, c'est un peu n'importe quoi. C'est comme si tu comparais des choux et des gateaux.

Je pense qu'il te manque une donnée importante issues du monde réèl (Mais c'est normal pour un étudiant :-) ) : plus de 90% des programmes réalisés de par le monde, c'est fait pour faire de la gestion de données. Les programmes systèmes comme linux, gnome ou les outils comme Mozilla, c'est une goutte d'eau dans l'océan de la production mondiale de ligne de code.

Balade toi dans les SSII, les grosses boîtes, et tu te rendras compte d'une chose : c'est que l'on fait des programmes pour gérer des choses, pas des programmes "systèmes". Et à ce jeu là, le C/C++ n'est clairement pas à la hauteur. Il est même anti-productif. Je vais faire une comparaison qui va faire sourire, mais là où en quelques lignes de code de Cobol tu implémentes une gestion de donnée structurée dans des fichiers, en c/c++ il va te falloir multiplier ce nombre par .. beaucoup. Là où en Java, Cobol, Python, tu peux te concentrer mieux et plus rapidement sur le fonctionnel de ton logiciel, en C/C++ il te faut d'abord résoudre les problèmes de gestion de mémoire, de pointeur etc... Des trucs rébarbatifs quoi. Ce n'est clairement pas l'objectif de l'informatique en général. Et puis entre nous, il n'a jamais été dit que Java était déstiné à réaliser un système d'exploitation donc pourquoi le critiquer sur ce terrain ?

Cela nous amène à se mettre en tête une autre donnée : l'ordinateur, c'est un outil. Rien de plus. Ce n'est pas une finalité. L'objectif de l'informatique, est d'automatiser les traitements d'informations, pas de taper des lignes et des lignes de code.

C'est pourquoi des langages comme Java, des technologies comme XPCOM ont été inventés : se débarrasser le plus possible des contraintes du bas-niveau (gestion mémoire etc..), de la réécriture de code (d'où XPCOM, les Dll etc..), et donc pouvoir mieux se concentrer sur l'objectif du logiciel : réaliser une tâche précise.

Quant aux critiques sur Minimo ( et pas Minimoz ), et bien si tu penses faire mieux, yaka ;-) Mais faire tenir un analyseur XML/SGML (avec mode quirks+strict) + un analyseur CSS + interpreteur JS dans peu de place, ce n'est pas chose facile.

Bref, pour tes souhaits pour le futur, tu oublies, tu ouvres les yeux, tu continues d'étudier et tu utilises les bonnes technologies pour tes besoins ;-)

Qu'on oublie pas qu'on est sur un ordinateur : Eh bien si, c'est clairement le but de l'informatique, même si ça peut paraître paradoxal.

PS : et tout ça, c'est un fana du C/C++ et de l'assembleur qui te le dis ;-)