|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Expert Confirmé
![]() ![]() Inscription : février 2006 Messages : 1 663 ![]() |
le c++0x n'a pas besoin de changer si profondément pour ne pas marcher, il a réussi à tant tarder que vs2010 est sorti ><
ça commence mal de ce coté là. peut être qu'il faut une évolution douce, je peux pas dire le contraire, mais ça va en aucun cas simplifier le codage, maintenant on aura c, c++, c99 et c++0x mélangé en même temps. et en aucun cas ça ne résoudra le codage crade des char* que je dénonce entre autre. personnellement ce que j'attendais c'était un assainissement du c++, et ça même si je devais tout (ou partiellement) recoder; malheureusement ça va être pire. |
|
|
00
|
|
|
#22 | ||
|
Membre Expert
![]() ![]() |
Citation:
Citation:
|
||
|
00
|
|
|
#23 | |
![]() ![]() Inscription : juin 2002 Messages : 2 036 ![]() |
Citation:
La solution 4 est clairement la moins couteuse à court et moyen terme. A titre personnel, je pense que passer en deprecated certaines constructions qui ne devraient pas être utilisées auraient pu être une bonne chose. Mais de là à en enlever le support dans 6 mois, 1 an ou même dans la version suivante de la norme, cela ne me semble pas être une bonne idée. |
|
|
|
00
|
|
|
#24 |
![]() ![]() Inscription : juin 2008 Messages : 7 631 ![]() |
Salut,
Pour rappel, il existe dans les entreprises des millions de lignes de code 'old style' qui ne seront jamais changées car : 1/ elles fonctionnent tant bien que mal ; 2/ personne ne veut payer un refactoring ; 3/ le risque d'une réécriture est trop important en terme de régression ; 4/ beaucoup de 'savoir' est dans le code et nulle part ailleurs (et surtout pas dans les specs). Sortir un compilateur qui ne permettrait pas de compiler ces programmes dans XXX mois aboutira à son rejet immédiat car personne ne voudra prendre le risque d'une migration subie. En revanche, sortir un compilateur qui propose des nouveautés et reste compatible avec l'existant permet de faire des transitions douces. En général, on propose des petits 'rafraichissements' ciblés et maitrisés dans le cadre d'une évolution moyenne ou importante ou lorsque le nombre de défauts sur une partie reste trop élevé. C'est comme ça qu'on fait vraiment évoluer la pratique du langage. Aussi paradoxal que cela puisse paraître, aujourd'hui beaucoup d'entreprise ont encore visual 6 (alors que plus supporté par microsoft) car il y a un risque levé sur une éventuelle migration. Nous n'avons pas tous la chance d'avoir le temps d'un labo de recherche ou d'un nouveau projet from scratch. |
|
|
00
|
|
|
#25 |
|
Expert Confirmé
![]() ![]() Inscription : février 2006 Messages : 1 663 ![]() |
je tilte pas, on arrive très bien à mixer c et c++ sur le même projet, qu'est ce qui empêcherait de faire pareil avec c++0x. le format binaire en sortie reste le même. ça permettrait de faire un dépoussiérage de c++ en tant que c++0x tout en pouvant se lier avec c et c++.
et point de vu personnel, ceux qui se servent de visual 6 doivent de toute façon s'en tamponner de c++0x. pareil pour ceux qui utilise gcc, vu les nombreux changements il y a pas encore si longtemps, ils ne mettent pas à jour leur compilo, donc ils sont pas concernés non plus. les seuls concernés seront ceux qui mettent à jour leur compilo, et les compilos du marché peuvent différencier c et c++, alors rajouter c++0x serait une partie de rigolade à ce niveau. et puis à force de pas vouloir réécrire pas mal de boites se retrouvent avec du code cobol ou assembleur que personne comprend avec toutes les conséquences qu'on connait. |
|
|
00
|
|
|
#26 |
|
Membre à l'essai
![]() Inscription : avril 2010 Messages : 27 ![]() |
Comme il a été suggéré, ces programmes pourraient "juste" ne pas passer la compilation en c++0x, mais compiler en c++98. Une nouvelle norme n'efface pas pour autant l'ancienne. [réponse au message de 3DArchi]
Si on a un programme écrit suivant le standard C++-pierrafeu et que notre compilateur supporte encore ce standard, hé bien c'est très bien, rien n'oblige à le compiler en C++-0X (quel intéret ?), ou alors, hé bien il faut se mettre au boulot, sinon, qu'apporte le standard dans tout ça ? Je n'ai pas vraiment le nez dans l'industrie, mais de mon modeste point de vue, j'y trouve un petit côté aberrant. Par contre, je trouve les arguments de gl assez convaincants, mais j'aimerais bien savoir en pratique la proportion des cas cités (qui n'a accès qu'à un vieux compilo tout en utilisant des trucs compilés par un compilo récent ?). J'avoue n'avoir presque aucune expérience de programmation en dehors du monde Unix, donc je ne sais même pas si MSVC++ propose des options du style -std=c++XX sous gcc. Si ce n'est pas le cas (même si ça devrait l'être pour un compilateur qui se veut "industriel" !) ne serait-ce pas de genre de compilateurs qui dicte au comité "je ne serai pas rétro compatible, donc merci de l'assurer à ma place si vous voulez que le langage soit pérenne et que l'industrie y trouve son compte" ? Il serait intéressant d'éplucher les discussions internes du fameux comité Et puis, une question est peut-être à soulever aussi : est-ce que la plupart des programmeurs professionnels maîtrisent à peu près les différents standards et leurs différences ? Parce qu'autant sur ce forum, c'est facile d'être un théoricien/intégriste des standards ("hé regarde, je compile en -std=c++0x -pedantic-error -Wall -W -Werror -Wextra, la classe non ?"), autant dans la pratique, j'imagine (à tort ?) que yen a pas mal même dans le milieu pro qui en ont rien à cogner, et que nos amis du comité n'ont pas envie de faire peur à une proportion (laquelle ?) de la "communauté" C++ et/ou de renvoyer 100000 personnes en formation... En espérant ne pas être trop à côté de la plaque, je serai ravi d'avoir de connaître l'avis de professionnels (surtout des chefs de projets) là dessus |
|
|
00
|
|
|
#27 | |
|
Expert Confirmé
![]() ![]() Inscription : février 2006 Messages : 1 663 ![]() |
Citation:
(c'est d'ailleurs pour ça que je propose d'avoir une option en plus : c++0x) |
|
|
|
00
|
|
|
#28 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
|
00
|
|
|
#29 |
|
Expert Confirmé
![]() ![]() Inscription : février 2006 Messages : 1 663 ![]() |
là je vais demander un éclaircissement, je comprend pas trop;
les décorations de c++98 (si je me trompe pas d'année) marcheront forcément en c++0x, le c++0x étant un sur-ensemble de c++ (ce qui implique une nouvelle décoration pour c++0x effectivement, bien sur c'est ce que je concevrai, donc pas de c++0x = c++98 + ajout à la stl). grosso modo faire comme le passage de c à c++, un "nouveau langage" avec de bon gros morceau des précédents. (c'est un peu tard vu que c'est décidé mais bon, je trouve ça dommage d'avoir loupé le coche pour faire quelque chose de propre) |
|
|
00
|
|
|
#30 | |||
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
Citation:
Citation:
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|||
|
|
00
|
|
|
#31 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
Pour qu'il soit décider de faire ce passage, la question est qu'est-ce que ça apporte? Est-ce que ça vaut le risque? Est-ce qu'il n'y a pas une autre action qui apporterait plus pour le même coût? Mon expérience (des deux côtés, comme client je râle de devoir changer ce qui fonctionne, comme fournisseur je râle de devoir supporter des vielles features alors que maintenant il y a mieux pour arriver à un effet équivalent) est que ce genre d'actions n'est que très rarement entreprise dans les gros projets tant qu'il n'y a pas de contraintes fortes pour y pousser.
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
|
00
|
|
|
#32 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
La décoration de noms n'est qu'un aspect d'une ABI. Un des aspects les plus simples qu'on choisit de rendre incompatible quand les aspects moins visibles le deviennent pour éviter les problèmes à l'exécution.
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
00
|
|
|
#33 |
|
Expert Confirmé
![]() ![]() Inscription : février 2006 Messages : 1 663 ![]() |
là je suis totalement incompétent, j'aurai du suivre plus attentivement mes cours de "fabrique ton compilateur c" ><
|
|
|
00
|
|
|
#34 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
Quand on fait intervenir la bibliothèque, les membres, les invariants, etc en font partie. Si la taille des stream change (par exemple pour ajouter un mutex vu qu'il me semble me souvenir y avoir des cas où on peut accéder à un stream à partir de différentes threads sans ajouter de synchro extern), l'ABI change aussi. Oui, il y a des changements qu'on peut faire en conservant la compatibilité de l'ABI (sous condition de lier avec la dernière lib), mais plus il y a de code exposé (inline, template), plus il y a de contraintes à respecter.
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
|
00
|
|
|
#35 | |||
![]() ![]() Inscription : juin 2008 Messages : 7 631 ![]() |
Salut,
Citation:
Citation:
Citation:
Je serais le premier à souhaiter qu'on nous donne le temps nécessaire pour réachitecturer les softs, pour explorer les nouveautés du langages, pour virer le C with classes et le remplacer par des pratiques plus 'modernes'. C'est beaucoup plus intéressant. Mais, et c'est tout aussi intéressant, on préfère ajouter des nouveautés que 'polir' l'existant qui marche. |
|||
|
|
00
|
|
|
#36 |
|
Expert Confirmé
![]() ![]() Inscription : février 2006 Messages : 1 663 ![]() |
réponse à Jean-Marc.Bourguet :
merci pour ces explications, vu comme ça, effectivement c'est loin d'être trivial. ça m'empêchera pas d'être toujours fasciné par la non cohérence du c++ et du futur c++0x alors >< |
|
|
00
|
|
|
#37 |
|
Membre émérite
![]() Inscription : mai 2006 Messages : 717 ![]() |
Pour revenir là dessus, comme C++ a quand même entre autre une vocation de langage pour la programmation système, je crois qu'on aura toujours des char*.
Mais oui sinon pourquoi pas dans le main utiliser directement des vector std::string en option. |
|
|
00
|
|
|
#38 | |||
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
Work around pas complique (mais loin d'etre l'ideal en situation d'apprentissage ou ce serait le plus utile) Code :
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|||
|
|
00
|
|
|
#39 |
|
Expert Confirmé
![]() ![]() Joel LamotteDéveloppeur de jeux vidéo Inscription : août 2004 Messages : 1 627 ![]() |
Ca peut toujours être suggéré pour la prochaine version. Il suffit de proposer un document expliquant la feature, non?
|
|
00
|
|
|
#40 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
Quelque chose comme ceci a plus de chances a mon avis dans un paquet coherent (comme celui auquel je faisais allusion sur les surcharges) qu'isole.
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com