Bah, je me suis permis de citer ce chiffre parce que bon, ça donne une idée, et c'est effectivement tiré d'une étude réelle faite par Booz Allen en 92:
- took 100+ senior programmers and trained them on NeXTstep, then asked them to write the same app on both NeXT and their previous system.
- First application written was written 2 - 5 times faster.
- Savings were 90%
- 83% less lines of code in the NEXTstep version
- 82% said NeXTstep was better in ALL categories
- It isn't faster to code on NeXTstep; you just have to write less of it. The revolution is "getting rid of software".
Bien évidemment, comme toute étude, c'est à prendre avec des pincettes. Maintenant, je n'imagine pas que, simplement parce que je cite ce chiffre, tout le monde va juste le croire simplement sur ma bonne poire :-)
Si je le cite, c'est parce que ça reste intéressant, et surtout parce qu'empiriquement, cela confirme mon expérience personnelle : j'ai la certitude que je développe beaucoup plus vite avec GNUstep que ce que je faisait avec Qt par exemple (que j'avais déja trouvé épatant pourtant). Et je ne pense pas que cela soit complètement anecdotique: tous les gens que je connaisse qui ont touché au dev sous Cocoa/GNUstep apprécient beaucoup le framework et trouvent qu'ils vont plus vite.
Certes, il y a d'autres facteurs qui jouent, mais un point reste valide -- "it isn't faster to code on NeXTstep; you just have to write less of it". À mon avis, ça s'explique d'une part grâce à la qualité de l'api, vraiment bien fichue et qui évite trois tonnes de code, et d'autres part aux outils de dev (en particulier Gorm) qui évitent pas mal de code aussi, pour se concentrer sur le code réellement utile.
Bon par contre je viens de voir que j'avait fait une gaffe de taille :-) -- l'étude parle de 2 à 5 fois plus vite alors que j'ai mis de 5 à 10 fois (ah là là, ce que c'est que l'enthousiasme ^_^). Ceci dit, l'étude porte sur les API NeXTSTEP, et l'api OpenStep est encore meilleure (et couvre de plus la partie non-graphique), et j'ai effectivement vu quelques fois ce chiffre de 5 à 10 fois. Mais bon, j'avoue, j'ai honte, mea culpa :-)
Maintenant, quand tu dis que le dev informatique a évolué, oui, et non. Le dev sous OSX est tout à fait similaire au dev sous gnustep et tout à fait similaire au dev sous NeXTSTEP en 90 (tiens, regarde la vidéo mis en lien dans la dépêche, et refait la même chose sous OSX -- c'est vraiment pareil). Et que je sache les gens restent impressionné par InterfaceBuilder et par Cocoa. Donc on a peut être évolué, mais pas tant que ça ... ;-) (la récente vidéo de Steve Jobs faisant une démo de NeXTSTEP 3.0 est assez rigolote/triste de ce point de vue, on croirait voire une démo de OSX http://www.openstep.se/jobs/(...) -- finalement on a pas tant que ça progressé...)
Ceci dit, il y a nombre de choses que j'aimerait avoir sous GNUstep et qui amélioreraient les choses -- style des outils de refactoring automatique intégrés dans l'IDE -- mais il reste qu'en l'état actuel, c'est déja très, très confortable... et quand tu parles d'amélioration de l'informatique depuis les années 90, et que je regarde les environnements de développements Smalltalk des années 80/90, ben, y'a encore du chemin à faire, hein.. mais bon.
La force d'Objective-C et d'OpenStep, c'est d'être exceptionnellement bien adaptés à "l'agrégation" de composants et à la production d'interfaces graphiques. Mon avis, c'est qu'il faut essayer d'utiliser le bon outil pour un travail donné. Pour faire un moteur 3D qui tue, C++ est certainement bien meilleur qu'Objective-C. Pour faire une interface graphique, OpenStep est largement mieux, y'a pas photo. Pour batir un logiciel avec des "briques", Objective-C est idéal pour créer les dites briques, car on profite de toute la souplesse du langage. Par contre, pour implémenter le "contenu" de la brique, un autre langage peut être plus adapté, comme C++ par exemple.. enfin, c'est mon avis.
Bref. Tout ça est très simple à vérifier après tout: y'a plein de docs en lignes, tout est en free software, allez-y !
[^] # Re: trop génial
Posté par Nicolas Roard . En réponse à la dépêche Sortie de la distribution GNUSTEP 0.9.4, GNUstep news, et vidéo. Évalué à 10.
- took 100+ senior programmers and trained them on NeXTstep, then asked them to write the same app on both NeXT and their previous system.
- First application written was written 2 - 5 times faster.
- Savings were 90%
- 83% less lines of code in the NEXTstep version
- 82% said NeXTstep was better in ALL categories
- It isn't faster to code on NeXTstep; you just have to write less of it. The revolution is "getting rid of software".
Bien évidemment, comme toute étude, c'est à prendre avec des pincettes. Maintenant, je n'imagine pas que, simplement parce que je cite ce chiffre, tout le monde va juste le croire simplement sur ma bonne poire :-)
Si je le cite, c'est parce que ça reste intéressant, et surtout parce qu'empiriquement, cela confirme mon expérience personnelle : j'ai la certitude que je développe beaucoup plus vite avec GNUstep que ce que je faisait avec Qt par exemple (que j'avais déja trouvé épatant pourtant). Et je ne pense pas que cela soit complètement anecdotique: tous les gens que je connaisse qui ont touché au dev sous Cocoa/GNUstep apprécient beaucoup le framework et trouvent qu'ils vont plus vite.
Certes, il y a d'autres facteurs qui jouent, mais un point reste valide -- "it isn't faster to code on NeXTstep; you just have to write less of it". À mon avis, ça s'explique d'une part grâce à la qualité de l'api, vraiment bien fichue et qui évite trois tonnes de code, et d'autres part aux outils de dev (en particulier Gorm) qui évitent pas mal de code aussi, pour se concentrer sur le code réellement utile.
Bon par contre je viens de voir que j'avait fait une gaffe de taille :-) -- l'étude parle de 2 à 5 fois plus vite alors que j'ai mis de 5 à 10 fois (ah là là, ce que c'est que l'enthousiasme ^_^). Ceci dit, l'étude porte sur les API NeXTSTEP, et l'api OpenStep est encore meilleure (et couvre de plus la partie non-graphique), et j'ai effectivement vu quelques fois ce chiffre de 5 à 10 fois. Mais bon, j'avoue, j'ai honte, mea culpa :-)
Maintenant, quand tu dis que le dev informatique a évolué, oui, et non. Le dev sous OSX est tout à fait similaire au dev sous gnustep et tout à fait similaire au dev sous NeXTSTEP en 90 (tiens, regarde la vidéo mis en lien dans la dépêche, et refait la même chose sous OSX -- c'est vraiment pareil). Et que je sache les gens restent impressionné par InterfaceBuilder et par Cocoa. Donc on a peut être évolué, mais pas tant que ça ... ;-) (la récente vidéo de Steve Jobs faisant une démo de NeXTSTEP 3.0 est assez rigolote/triste de ce point de vue, on croirait voire une démo de OSX http://www.openstep.se/jobs/(...) -- finalement on a pas tant que ça progressé...)
Ceci dit, il y a nombre de choses que j'aimerait avoir sous GNUstep et qui amélioreraient les choses -- style des outils de refactoring automatique intégrés dans l'IDE -- mais il reste qu'en l'état actuel, c'est déja très, très confortable... et quand tu parles d'amélioration de l'informatique depuis les années 90, et que je regarde les environnements de développements Smalltalk des années 80/90, ben, y'a encore du chemin à faire, hein.. mais bon.
La force d'Objective-C et d'OpenStep, c'est d'être exceptionnellement bien adaptés à "l'agrégation" de composants et à la production d'interfaces graphiques. Mon avis, c'est qu'il faut essayer d'utiliser le bon outil pour un travail donné. Pour faire un moteur 3D qui tue, C++ est certainement bien meilleur qu'Objective-C. Pour faire une interface graphique, OpenStep est largement mieux, y'a pas photo. Pour batir un logiciel avec des "briques", Objective-C est idéal pour créer les dites briques, car on profite de toute la souplesse du langage. Par contre, pour implémenter le "contenu" de la brique, un autre langage peut être plus adapté, comme C++ par exemple.. enfin, c'est mon avis.
Bref. Tout ça est très simple à vérifier après tout: y'a plein de docs en lignes, tout est en free software, allez-y !