Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

Les langages statiques sont-ils trop sophistiqués et complexes ?
Un cadre de Google montre Java et C++ du doigt

Le , par Katleen Erna, Expert éminent sénior
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é ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de david06600 david06600 - Inactif https://www.developpez.com
le 29/07/2010 à 15:38
Citation Envoyé par Mister Nono  Voir le message
Encore un langage de plus. A quoi cela sert-il ?

A+

A faire avancer le schilmblick

Sinon je trouve ça bien moi un langage de plus, même si je l'utilise pas .
J'encourage les français aussi à sortir des langages, ou tout autre choses qui leur passe par la tête. Parfois réinventer la roue peut avoir du bon.
Avatar de _skip _skip - Expert éminent https://www.developpez.com
le 29/07/2010 à 15:42
S'il ne s'agit pas d'en inventer une carrée en prétendant que la ronde est démodée...
Avatar de Mister Nono Mister Nono - Membre expérimenté https://www.developpez.com
le 29/07/2010 à 15:44
Citation Envoyé par david06600  Voir le message
...Parfois réinventer la roue peut avoir du bon.

Tu as bien dit Parfois !!!!

Et puis le temps de réinventer la roue, il y en a d'autres qui roulent très loin avec des outils qui ont DEJA FAIT LEUR PREUVES.

A+
Avatar de maske maske - Membre éprouvé https://www.developpez.com
le 29/07/2010 à 21:34
Citation Envoyé par Katleen Erna  Voir le message
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 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.

Eh oui ! Faites du Smalltalk !
Avatar de hsyl20 hsyl20 - Membre à l'essai https://www.developpez.com
le 30/07/2010 à 0:32
Lisez Concepts Techniques and Models of Computer Programming (Peter Van Roy), vous comprendrez pourquoi il existe différents langages. Une des phrases du bouquin concernant les concepts supportés par les langages est : "plus n'est pas mieux que moins, juste différent".

Dans le cas de Go, la différence par rapport aux autres langages est qu'il supporte la programmation concurrente (go routines) avec variables de dataflow (channels). Il est possible de le faire avec d'autres langages mais là c'est très simple et très encouragé.

Après je ne l'ai jamais utilisé et je trouve la syntaxe pas terrible mais dans l'absolu, ça n'est pas mal qu'un langage de bas niveau intègre ces concepts.
Avatar de el_slapper el_slapper - Expert éminent sénior https://www.developpez.com
le 30/07/2010 à 9:14
C'est l'éternel débat architecture réduite/complexe. Mieux vaut-il une boite à outil limitée mais performante et maitrisée, ou bien une infinie liste de bibliothèques dont on ne sait ni ou elle commence ni ou elle finit?

Comme souvent en ingéniérie, la réponse est "ça dépend". Moi qui fait de la gestion sur grand système, un truc aussi simple que le cobol est parfait; mes problèmes ne sont pas techniques, il sont fonctionnels. Pour mon père qui fait des sites webs, avec le paiement, les différents navigateurs, les effets en tous genres, le support multi-langues, etc, un langage plus velu est indispensable.
Avatar de raoui raoui - Nouveau Candidat au Club https://www.developpez.com
le 02/08/2010 à 13:13
Les langages C++ et Java sont certes complexes et leur maitrise nécessite beaucoup de pratiques mais il permettent neanmoins d'accomplir des taches difficiles. Comme en robotique et en vision il permettent d'implémenter sur des robots des algos complexes et similaires au capacités humaines. Les langages interprétés comme tcl, python sont par contre faciles à matriser mais ils font des taches moins complexes comme la gestion des fonctions ( interfaces ) ou autres. Je pense que le développement d'un langage qui fusionne les capacités des langages statiques et dynamiques pourra resoudre ce problèmes. Il faudrait aussi une communauté assez active pour developper des fonctions et des librairies qui touchent un grand nombre de domaines
Avatar de oxyde356 oxyde356 - Membre éprouvé https://www.developpez.com
le 02/08/2010 à 15:48
Citation Envoyé par el_slapper  Voir le message
Pour mon père qui fait des sites webs, avec le paiement, les différents navigateurs, les effets en tous genres, le support multi-langues, etc, un langage plus velu est indispensable.

Oui enfin cet exemple n'est pas très correct il me semble parce que pour le web il n'existe pas un tel langage, on en allie plusieurs, html, css, mysql, javascript, php, c++ (pour le paiement par exemple et les modules binaires...), xml et bien d'autres !
Avatar de el_slapper el_slapper - Expert éminent sénior https://www.developpez.com
le 02/08/2010 à 17:00
Citation Envoyé par oxyde356  Voir le message
Oui enfin cet exemple n'est pas très correct il me semble parce que pour le web il n'existe pas un tel langage, on en allie plusieurs, html, css, mysql, javascript, php, c++ (pour le paiement par exemple et les modules binaires...), xml et bien d'autres !

Bon, il utilise un panel d'outils dont l'ensemble est complexe. Désolé de ne pas avoir été précis. Moi, j'ai pas besoin de tout ça. définir un format de fichier, lire, écrire, faire un bloc structuré de code, assigner, 4 opérations, aiguillages, et c'est à peu près tout ce dont j'ai besoin. Parfois, au pire, une base de données avec des accès simples. Fatalement, ce qui est bon pour moi est très insuffisant pour lui. Ah, et il fait aussi du flash, en plus de ta liste.....(mais c'est juste pour pichouiller)
Avatar de oxyde356 oxyde356 - Membre éprouvé https://www.developpez.com
le 02/08/2010 à 17:04
De l'Action Script tu veux dire (pour continuer a "pichouiller") vu que l'on parle de langages
Avatar de CyaNnOrangehead CyaNnOrangehead - Rédacteur https://www.developpez.com
le 20/01/2013 à 10:06
Un truc bien dans ce langage Go, c'est qu'il reprend les grandes ligne du BNF du c et du c++. De ce fait on n'est pas perdu pour le lire (je pense au contre exemple qu'est clojure)

L'autre truc important, c'est qu'il intègre en natif le first class function cher au paradigme fonctionnel et qui à mon sens deviens l'avenir des langages à objet.
Ceux qui en sont encore dépourvus commencent à en souffrir (java, vivement les closures de la 1.8)

Enfin, je trouve tout de même la syntaxe complexe.... Dommage que les fonctions ne soit pas anonymes (là je fait clairement de l'auto-pub pour mon algoid, mais c'est de bonne guerre, il en fait lui aussi pour son Go). Ca leur aurai simplifier cette syntaxe affreuse lors de la déclaration ect....

Bref l'idée est bonne, mais je reste sceptique.
Je ne suis pas sûr qu'ils apporte vraiment quelque chose par rapport à du c#.
Mais bon .net à d'autres défauts.
Offres d'emploi IT
Architecte électronique de puissance expérimenté H/F
Safran - Ile de France - Villaroche - Réau
Architecte technique des systèmes d'information H/F
Safran - Ile de France - Évry (91090)
Architecte systèmes études & scientifiques H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil