|
Publicité | |||||||||||||||||||||||
|
|
#1 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : juillet 2009 Messages : 1 553 ![]() |
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 GoEt 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é ?
Dernière modification par dourouc05 ; 26/07/2010 à 12h30. |
|
|
00
|
|
|
#2 | ||||||||||
|
Membre expérimenté
![]() Développeur Java Inscription : mars 2004 Messages : 614 ![]() |
Citation:
Citation:
C'est sûr que le Cobol ou Logo sont moins subtiles. En plus, ils sont moins utilisés.Le fait qu'un langage soit vendu de façon excessive peut irriter, mais qu'ils soient trop largement utilisés, là, faut rappeler au gars, dans ce cas, qu'il y a la même chose avec l'anglais. Trop vendu, trop utilisé. Je suis sûr qu'il sera d'accord pour abandonner l'anglais et passer l'Espérento Citation:
Citation:
![]() Citation:
Jamais entendu dire ça. Citation:
Citation:
Citation:
Citation:
Je suis sûr qu'il veut le vendre de façon excessive et qu'il soit trop largement utilisés Citation:
Ils l'ont toujours été. Parce que l'humain est réticent, à réapprendre tout, tout les 4 matins. A suivre. Certainement
__________________
Plus j'apprend et mieux j'évalue l'étendu de mon ignorance. Mes programmes : http://www.bubulemaster.fr Dernière modification par Mejdi20 ; 26/07/2010 à 10h32. |
||||||||||
|
|
100
|
|
|
#3 |
|
Invité de passage
![]() A FInscription : juin 2010 Messages : 4 ![]() |
L'inférence des types peut être une solution au problème (Scala, Haskell ... )
Dernière modification par Mejdi20 ; 26/07/2010 à 10h14. |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Julien BodinIngénieur développement logiciels Inscription : février 2009 Messages : 440 ![]() |
En fait il essaye de vendre sa came quoi
Quelqu'un a déjà essayé "Go" ? |
|
|
30
|
|
|
#5 |
|
Membre habitué
![]() Inscription : octobre 2006 Messages : 57 ![]() |
Je me demande s'il ne s'agit pas plus ici d'une opération de self marketing pour mettre en avant un produit maison : Go
Ceci à part vu le nombre de développeur utilisant Java et connaissant tout aussi bien d'autre langages tel que Python je ne pense pas l'avis de Rob Pike représente un courant de pensée largement partagé. Du moins je ne le partage pas et je reste d'avis que chaque langage a sa raison d'être pour un usage donnée ou un environnement de déploiement précis. De plus l'industrie a besoin de standard robuste et éprouvé, ayant la communauté la plus large possible pour faire face aux coûts et à la pérennité dans le temps pour supporter et améliorer leurs outils. Enfin je terminerais sur un petit détail, mais qui à son importance. Pour moi , comme pour beaucoup d'autres je le suppose, que ce soit le Java ou le C++ si l'on ne devait connaitre qu'un langage , cela serait l'un ou l'autre car dès le moment ou l'on connait et que l'on maitrise un minimum l'un de ces deux langage on peut très facilement "apprendre" n 'importe quel autre, ce qui n'est pas du tout vrai dans l'autre sens. (Et non l'ASM ne permet pas ça ... ) Donc facile de critiquer et de désavouer des langages qui leur ont permis d'en développer d'autre, mais c'est comme tout il y a des étapes et je pense que avant de savoir courir il faut savoir marcher. Dernière modification par Mejdi20 ; 26/07/2010 à 10h16. |
|
|
12
|
|
|
#6 | |
|
Membre extrêmement actif
![]() Inscription : janvier 2007 Messages : 1 424 ![]() |
Citation:
|
|
|
|
10
|
|
|
#7 |
|
Invité de passage
![]() Moussa Diao Inscription : juin 2010 Messages : 3 ![]() |
Cependant je ne mettrais pas Java dans le même sac que Go et C++, car il est pour de la programmation d'application plutôt que système, et ça fait une petite différence en terme d'utilisation, car beaucoup de bibliothèque pour java.
A mon avis, toute langage profite de la notoriété que lui donne le mouvement des programmeurs de son époque. L'idée de Go est très bonne (plus de rapidité et moins de complexité que C++), alors ce n'est qu'une question de temps pour qu'il détrône la place à C++, surement. |
|
|
02
|
|
|
#8 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 406 ![]() |
Il n'existe pas de langages meilleurs qu'un autre. Pour chaque type de projet des langages se prêtent plus ou moins bien. Les décideurs choisissent donc le langages dit le plus productif, ce qui est extrêmement dur à quantifier si ce n'est de faire le projet avec les deux langages en parallèles...
Les seuls arguments actuels sont sur des vieux projets ( C, C++/MFC, ... ) et c'est vrai que lorsqu''on se focalise sur le rendement on oublie la pérennité des projets. Du code C# de 2 ans n'est plus valide dans une nouvelle MV, alors que de vieux projets C ou C++ (10ans) n'ont pas pris une ride!
__________________
________________________________________________ Dernière modification par Mejdi20 ; 26/07/2010 à 14h09. |
|
21
|
|
|
#9 | |
|
Membre éclairé
![]() Lycéen Inscription : novembre 2008 Messages : 83 ![]() |
Citation:
Pour Go, de mémoire, il me semble que lorsqu'il était sorti certains avaient testé et que c'était vraiment pas terrible... Il faudrait retrouver la news sur ce même site. |
|
|
|
10
|
|
|
#10 |
|
Membre confirmé
![]() ![]() Benoît DissertConseil - Consultant en systèmes d'information Inscription : avril 2010 Messages : 42 ![]() |
Je suis presque d'accord sur la conclusion, à avoir les langages mainstream actuels sont trop complexes et pas adaptés aux besoins d'aujourd'hui, mais les arguments développés sont complètement à côté de la plaque (voire dépassés) et non étayés. Je pense, comme les autres, qu'il cherche à vendre son langages, mais ses arguments sont mauvais.
Je suis d'accord avec le fait que Java (je ne m'exprimerai pas sur C++) soit trop verbeux, mais c'est la contrepartie au fait que le langage soit relativement simple. Si on fait du Scala, par exemple, il faut apprendre plein de nouvelles notions abstraites compliquées qui nous permettent de bénéficier des mêmes API qu'en Java, mais avec trois fois moins de code. Après il faut voir de quels développeurs on bénéficie et de l'écosystème, des contraintes ... Pour faire un système complexe, en ce qui me concerne, je prendrais aujourd'hui un langage statique. Pour certains usages, essentiellement marginaux, oui, j'ai envie d'utiliser des langages dynamiques, voire des DSL (donc statiques). Il serait intéressant de savoir quels usages Go est capable d'adresser de la manière la plus pertinente. Mais si l'objectif de Go est de devenir un langage mainstream pour gros systèmes, à la place de Java et C++, d'une part je lui souhaite bonne chance, d'autre part je lui souhaite de meilleurs promoteurs. |
|
30
|
|
|
#11 |
|
Inactif
Inscription : février 2003 Messages : 4 343 ![]() |
C'est de la pub pour un langage développé par Google.
|
|
|
30
|
|
|
#12 | |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 250 ![]() |
Pour être polyvalent, un langage a besoin de subtilités. Je ne comprends pas ce faux-problème.
En interne, Google utilise très fort Java (regardez le nombre de bibliothèques Java que Google crée et maintient) et ils ont des pontes du langage tel Josh Bloch. C'est quoi ce double discours ? Citation:
P.S. C'est bien "verbeux" et "verbosité" qu'il faut utiliser et non "verbal" et "verbalité". |
|
|
|
20
|
|
|
#13 |
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 2 309 ![]() |
__________________
Développeur | Zend Certified Engineer Étapes Pour mieux se servir du forum: 1. Commencez par lire les cours et tutoriels ; 2. Faites une recherche; 3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles; Nix>_Rien n'est plus pratique que la théorie |
|
|
00
|
|
|
#14 |
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 233 ![]() |
C'est un peu le discours de tous les nouveaux langages de programmation de prétendre que tel et tel est trop complexe, trop verbeux, trop lent etc...
J'ai toutefois l'impression que ce qui dicte le choix du langage n'est pas tant la qualité du langage en soi, mais plutôt son écosystème. C'est à dire ses frameworks et librairies disponibles. De plus en plus j'ai tendance à choisir la techno qui m'offre le plus d'outils correspondant à mes besoins. Or du coté de go, côté ecosystème pour l'instant c'est zéro .
|
|
|
00
|
|
|
#15 | |
|
Membre du Club
![]() Inscription : juin 2004 Messages : 58 ![]() |
Citation:
|
|
|
|
210
|
|
|
#16 | |
|
Membre expérimenté
![]() Jean-Baptiste BourgoinWebmaster Inscription : septembre 2006 Messages : 194 ![]() |
Citation:
Si seul le framework entrait en compte, Java n'aurait jamais décollé. Il a bien fallu qu'il commence un jour ! Et à ce moment, niveau framework, il n'était guère mieux pourvu que Go Ensuite il y a un phénomène tout à fait normal de pesanteur : pourquoi changer pour un meilleur langage quand l'outil que l'on utilise depuis 10 ans, bien pourvu, bien maintenu, bien maîtrisé, suffit ? Ce sont les problématiques nouvelles qui appellent de nouveaux langages, de nouveaux framework etc. Prenons l'exemple de Python par exemple. Python est un langage simple, et même simplisite. GvR n'aime pas la programmation fonctionnelle, GvR se moque de la programmation concurrentielle. Ce qui était un avantage lorsque ce langage est apparu (simplicité face à un Perl, très complet mais très complexe), risque de lui causer du tort à l'avenir. Java risque lui de souffrir des méthodes de développement "agiles" pour le web qui deviennent de plus en plus populaires. Java perd de plus en plus le marché du desktop. etc. etc. Reste ensuite les "niches" dans lesquels tel et tel langage continue d'être le maître. Dernière modification par Mejdi20 ; 26/07/2010 à 14h02. |
|
|
10
|
|
|
#17 | |
|
Membre chevronné
![]() Développeur informatique Inscription : avril 2009 Messages : 267 ![]() |
Citation:
|
|
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() Inscription : mars 2009 Messages : 60 ![]() |
On peut programmer de façon "simple" avec C++ et Java, mais à partir du moment où on veut faire des choses compliquées, je crois bien qu'on est obligé de programmer de façon "complexe".
S'il veut un langage peu verbeux, moi je lui propose Prolog, mais gare à l'entorse du cerveau pour pondre les quelques lignes permettant de résoudre une grille de Sudoku... Il ne faut pas se leurrer, on ne peut pas tout avoir sans virer dans l'utopie. |
|
|
70
|
|
|
#19 |
|
Invité de passage
![]() Inscription : mai 2009 Messages : 4 ![]() |
Personnellement je pense que ce vieux débat sur les langages est quelque peu stérile et dépassé.
Je pense qu'aujourd'hui les critères les plus importants sont ceux de plateforme, d'éco-système, de communauté et de facilité d'intégration. Je dirais donc que .NET et Java ont encore de beaux jours devant eux. Et si le langage Java en lui-même pose problème à certains il est toujours possible d'aller voir vers d'autres solutions pour la même plateforme : Groovy, Scala , Jython... |
|
|
00
|
|
|
#20 |
|
Membre chevronné
![]() Développeur informatique Inscription : avril 2009 Messages : 267 ![]() |
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com