Mise à jour du 26.07.2010 par Katleen
Les langages statiques sont-ils trop sophistiqués et complexes ? Un cadre de Google montre Java et C++ du doigt
Il y a trois jours, dans l'Oregon, lors de la conférence O'Reilly consacrée à l'open source, le prestigieux ingénieur de Google Rob Pike a tenu des propos assez durs envers "les langages de programmation industrielle".
Il reproche aux langages actuels (Java et C++ en tête de liste) d'être trop complexes et pas assez adaptés aux environnements informatiques d'aujourd'hui.
"Ces langages sont trop difficiles à utiliser, trop subtils. Ils sont bien trop verbeux et leur subtilité, leur complexité et leur verbosité semble ne jamais cesser d'augmenter. En plus, ils sont vendus de façon excessive et bien trop largement utilisés.", assène-t-il.
Pour argumenter ses propos, il a montré quelques exemples de code C++, dont une déclaration variable qui s'étendait sur presque une ligne complète de l'écran. Pour lui, "de telles choses" ne peuvent assurément pas être "le standard de l'informatique enseigné à l'école et utilisé dans l'industrie".
Pour lui, ce type de programmation est "trop bureaucratique : il faut justifier de tout auprès du compilateur".
Il explique ensuite que le C++ a été crée pour répondre à la frustration des programmeurs à propos du langage low-level C. Java est ensuite arrivé pour simplifier C++. Mais de nouvelles fonctionnalités ont été ajoutées aux deux langages, les rendant encore plus complexes. A l'inverse, ils s'accommodent très mal des processus multicoeurs (qui sont apparus après leur développement et s'adaptent mal à ces environnements.
Le mois dernier, lors de la conférence annuelle USENIX, un autre ingénieur de renom à tenu un discours similaires. Adam de Boor (Gmail) a ainsi révélé que le service de mail en ligne de Google était intégralement écrit en Javacript (443.000 lignes de code) et ce, à la main.
Si Java est plus expressif, il est aussi plus verbeux selon lui. Face à cela, les langages comme JavaScript, Ruby et Python (qui ont été développés en réponse à la complexité grandissante de C++ et de Java), ont aussi leurs défauts : "leur syntaxe est plus simple, mais ils sont plus lents et peuvent abriter davantage d'erreurs", a-t-il argumenté.
"La saisie dynamique n'est pas forcément une bonne chose, vous obtenez des erreurs statiques en run time que vous pourriez éviter en compilant", termine-t-il.
Revenons à Rob Pike. Il a terminé sa keynote en présentant Go, un nouveau langage de programmation qu'il a développé avec d'autres ingénieurs de Google.
Il explique qu'il s'agit d'une tentative de fusion des meilleures qualités des deux catégories de langages (dynamiques et statiques) : "Go a pour but de combiner la sécurité et la performance des langages statiques avec la praticité et la décontraction des langages dynamiques".
Source : Déclarations de Rob Pike
Voir aussi
Installer Go
Et vous ?
Pensez-vous que Java et C++ soient devenus trop complexes ?
Pourquoi les langages gagnent-ils toujours en complexité ?
Que pensez-vous de l'initiative Go ?
Go deviendra-t-il à terme aussi compliqué que les autres langages lorsqu'il sera beaucoup utilisé ?
Partager