Le C# et le Java sont un peu dans le même bateau, ce sont deux langages assez semblables, créés en réaction à la complexité extravagante du C++, pour permettre à une masse de programmeurs bas de gamme de travailler sur des gros projets sans trop tout casser, en forçant partout des contraintes de programmation orienté objet dans des proportions malsaines et parfois comiques, et encourageant des "design patterns" qui dans leur majorité sont des béquilles pour compenser le manque de dynamisme du langage, la difficulté de manipuler les traitements comme des données, et les couplages introduits par l'utilisation déraisonnable de la relation d'héritage.
Programmer en C# ou en Java, c'est sortir des outils d'une boîte à outils géante, qui font à peu près ce qu'on veut faire mais pas tout à fait, et taper avec jusqu'à ce que ça rentre. On finit avec un programme qui fait à peu près ce qu'on veut faire, dont on prie que l'implémentation cachée derrière n niveaux d'abstractions et une hiérarchie de classes imbitable fonctionne correctement et soit adaptée à nos besoins, avec des performances acceptables et sans occuper toute la RAM.
Dans 99% des cas, le C# ou le Java permettent d'accomplir ce qu'on veut, avec une approche systématique pour ne pas dire ennuyeuse, sans trop se casser le cul.
Ces langages relèvent parfois davantage de l'outil de propagande corporatiste auprès d'une génération de programmeurs lobotomisés et consentants, que réellement de la programmation. Ce sont des langages efficaces, productifs, charmeurs, mais qui pouponnent les programmeurs pour en faire des esclaves de telle plate-forme propriétaire aux garanties de performance ou de sécurité parfois vagues.
___________
Adopter un langage de programmation copyrighté défini par une entreprise plutôt que par des comités internationaux indépendants, c'est aussi vendre son âme au diable en échange de confort, de facilité de déploiement ou de gestion de la médiocrité générale des programmeurs impliqués dans le projet. S'il s'agit de faire des logiciels pour gérer les factures pour le compte d'un grand groupe multinational dans une SSII, alors oui tu trouveras ces langages partout.
__________
Java tiendra plus longtemps que C# (quelques projets intéressants sont basés sur Java : Hadoop, Cassandra, le langage Scala) mais ils disparaîtront comme tendent à disparaître toutes les tentatives de les généraliser au-delà des contextes que l'entreprise qui les gère peut les supporter (Mono, implémentations alternatives de la jvm, etc.).
Il y aura une inertie d'au moins quinze ou vingt ans sur C# et Java, donc ce sont encore des alternatives très viables pour le moment, d'un point de vue purement "perspectives d'avenir pour des professionnels de l'informatique".
Partager