vendredi 26 février 2010

Langage de programmation d'avenir et écologie

Je ne suis pas un développeur de la dernière vague. Ma spécialité c'est le C++. Les dernières générations de développeurs, ceux qui sortent des écoles à l'heure actuelle sont très orientés C# ou Java, des langages interprétés à machine virtuelle, dont les performances sont controversées. Ces langages répondraient à des problèmatiques différentes. Or... Ces derniers temps, on parle de plus en plus d'écologie... Vous n'avez pas remarqué ?
Ces langages, C# et Java, demandent pour fonctionner plus de mémoire et de puissance de calcul. Ainsi à puissance équivalente, un logiciel écrit en C#/Java tournera moins vite et donnera l'impression d'une machine plus lente. Pendant longtemps, on s'est moqué de la puissance de la machine en se disant que la prochaine génération d'ordinateurs pourrait faire tourner plus rapidement les logiciels d'aujourd'hui.

Pourtant, un virage s'amore timidement. On ne fait plus des machines de plus en plus puissantes et des logiciels de plus en plus consommateurs. On commence à vouloir des machines portables, légères, des unités centrales plus petites, qui ne chauffent pas, qui ne font plus de bruit, et les logiciels doivent s'adapter, consommer peu, demander peu de puissance. On veut des systèmes d'exploitation qui démarrent rapidement, et qui s'éteignent rapidement.

En ce sens, peut-on continuer à penser que des langages de développement comme Java ou C# représentent l'avenir ?

Peut-être qu'un scénario problable serait :
- Des stations clientes dont tout l'applicatif serait développé en C++ ou C.
- Des serveur web tout en Java ou C#, ou autre langage interpreté.

Et pourtant, par exemple le cas Facebook est assez parlant, même sur une niche comme le web, le C++ devient incontournable.

PS : Je sais que Java et C# ne sont pas à proprement dit des langages interprêtés, je connais le principe de byte-code, MSIL. Je ne sais juste pas où est l'abus de langage, car au bout du compte, le code généré doit quand même passer par une phase d'interprétation ou de juste-à-temps compilation... ce n'est toujours pas du binaire de la plateforme réelle. Et ne me parlez pas de Java machine ou de Java processor...

Aucun commentaire: