Java un langage complexe ?

Plus de 10 années se sont écoulées depuis ce janvier 1998 où par un concours de circonstance je me retrouvais à devoir apprendre un langage à la mode pour mon mémoire de Maîtrise. Java s’avéra par la suite être le langage de programmation unique de ma carrière professionnelle. A l’étude de ce langage je fus très surpris par son efficace simplicité. La structure du langage permet à un néophyte d’écrire un code robuste tout en autorisant les plus chevronné à écrire du code plus sophistiqués mais uniquement sur les bases simples du langage qui sont les suivantes:

  • une syntaxe simple sans les signes cabalistiques du macro-assembleur C
  • une éviction de la notion d’adressage
  • polymorphisme automatique
  • héritage simple
  • notion d’interface

Qu’en est-il aujourd’hui ? Le langage a subtilement évolué: les assertions sont apparues, les types génériques ont franchis la barrières des langages en passant de la forme de template C++ au Java, des simplification de syntaxes de boucle sont désormais accessibles…mais nous assistons bel et bien a une complexification du langage.

En effet le néophyte se retrouve maintenant confronté à des notions complexes qui vont au delà d’une syntaxe plus complexe. Les génériques qui a première vue viennent d’une intention louable d’avoir des listes typées, ont un revers de médailles plus inquiétant: utilisés dans les types de retours et de paramètres en combinaison avec les notions d’héritages de type générique, nous arrivons à une réelle complexité de la syntaxe qui me rappelle la complexité de celle relative à l’adressage en C++. Les notions sont elles aussi devenues plus complexes. En effet les dernières version ajoute la notion de covariant dans la signature des méthodes ainsi que les listes d’arguments de taille variable. La maîtrise de ces notions demande une réelle compréhension de leur interprétation par la JVM, un peu à la manière du programmeur C qui doit comprendre la syntaxe par la manière dont le compilateur va le traduire en assembleur.

Mon sentiment est que le langage se complexifie or mon expérience m’a montré que beaucoup de programmeurs ne maitrisent pas les notoins de base du langage. L’avenir est donc prometteur pour les profils experts en Java, comme il l’a été il y a quelques années pour les profils experts en C++.

Contribution écologique: mutualisons !

Afin d’apporter ma pierre à la protection de l’environnement, j’ai décidé de mettre en terme à mon hébergement personnel. Depuis 2001 je mettais en oeuvre un serveur web (PC de bureau windows, portable puis linux box) et cela me procurait l’avantage du choix de la technologie, la rapidité de mise à jour et la sécurité relative des données. Hélas laisser continuellement une machine allumée pour cela n’est pas très efficient compte tenu du faible volume de transaction. Aujourd’ui je préfère laisser à un hébergeur le soin de maintenir l’infrastructure d’autent plus que l’avènement des connexions rapides (ADSL) rend la mise à jour d’un site hébergé confortable.

Jusqu’à ce que je me familiarise avec WordPress, les billets de mon ancien blog se trouvent sous réserve que ma machine soit allumée.

//perso.bressure.net/snipsnap

Contribution écologique: mutualisons !

Afin d’apporter ma pierre à la protection de l’environnement, j’ai décidé de mettre en terme à mon hébergement personnel. Depuis 2001 je mettais en oeuvre un serveur web (PC de bureau windows, portable puis linux box) et cela me procurait l’avantage du choix de la technologie, la rapidité de mise à jour et la sécurité relative des données. Hélas laisser continuellement une machine allumée pour cela n’est pas très efficient compte tenu du faible volume de transaction. Aujourd’ui je préfère laisser à un hébergeur le soin de maintenir l’infrastructure d’autent plus que l’avènement des connexions rapides (ADSL) rend la mise à jour d’un site hébergé confortable.

Jusqu’à ce que je me familiarise avec WordPress, les billets de mon ancien blog se trouvent sous réserve que ma machine soit allumée.

//perso.bressure.net/snipsnap