Le future de C++

cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 - 4 août 2006 à 20:42
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 - 8 août 2006 à 21:16
Salut les gars,
Bon, en tant qu'ancien programmeur C++, je trouve ce langage vraiment manifique.
Par contre, il n'est pas super productif, plus facile de mal gerer la mémoire avec (en oubliant de détruire les objects), relativement difficile à prendre en main, et pour faire des applications windows, MFC, c'est vraiment nul...
La mode aujourd'hui est aux languages avec un runtime (Java, C#, ...) et un framework défini.
Pire encore, dans le prochain Vista, ils vont introduire des nouveautés et SEULEMENT les programmeurs .net vont pouvoir DIRECTEMENT (sans COM et compagnie) en profiter.

Alors, dans cette perspective, comment vous vous sentez?
Allez-vous migrer vers .net ou rester sur C++? Quelles sont vos raisons?

On serait bientot rendu au moment ou les programmeurs .net peuvent faire des trucs que vous ne pouvez pas faire.

P.S. : mon but n'est pas de débuter un débat inutile mais d'avoir votre opinion sur le future de C++.
P.S. : J'ai omis de parler du managed C++ parce que je le connais pas trop.

[:D] @++

74 réponses

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
4 août 2006 à 21:14
Ben toute facon je pense que des programmeurs intelligents vont vite sortir quelques librairies pour utiliser ces fonctions de Vista avec COM, et ça sera encore plus rapide que le .NET en vitesse d'éxécution.

Moi, je ne vois aucune raison de passer au .NET tant que je n'y voit pas de vrais avantages. Pour le moment, je ne vois que des inconvénients (vitesse d'éxécution, moins de controle du code, compatible uniquement Windows, dépendance à Microsoft)...

Le jour ou Microsoft décidera de passer le Framework .NET payant (si ça arrive), et ben les programmeurs .NET l'auront dans le ***...

//Libère ma mémoire que j'ai utilisé
this->GetCurrentConversation()->FreeAllocatedMemory(REASON_UNUSED);
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
4 août 2006 à 23:13
Le .NET au C++ est comme une F1 auquelle on aurait attaché un 747. Le .NET n'apporte rien de vraiment indispensable. Comme dit nightlord, vitesse d'execution réduite, dépendence à Windows, code non portable. J'ai entendue parler de Vista et .NET. Si tu veux savoir ce que je pense, alors voilà. À partir du moment ou Vista sera devenue un OS inévitable et que tout les logiciels compatible avec Windows ne fonctionne qu'avec Vista et bien, je me convertie complètement à Linux. Pas question de faire seulement du .NET et d'attacher un boulet de 3 tonnes à mes programmes.

Ceci dit, ce genre de question trouverait très bien sa place sur Le Bar et non sur le forum de cppfrance. Fait attention la prochaine fois ;)

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution

http://programmationdebat.discutforum.com
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
4 août 2006 à 23:16
Au niveau du classement dans le forum, je le trouve adapté içi, car ça ne concerne que les utilisateurs C++, et le bar est un espace multi-sites.

//Libère ma mémoire que j'ai utilisé
this->GetCurrentConversation()->FreeAllocatedMemory(REASON_UNUSED);
0
MorbhAck Messages postés 127 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 5 août 2007
5 août 2006 à 01:44
NAN NAN NAN !!!!!!!!        PAS LE .NET !!!!!!!!!!!!!!!!!!!!!
N**** LE .NET !!!!!!!!!!
le .NET moi je dit sa sent movais !
Moi chui pret a faire une manif si il le faut !

[auteurdetail.aspx?ID=617077 SAKingdom] TA TOTALEMENT RAISON !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
5 août 2006 à 09:04
"La mode aujourd'hui est aux languages avec un runtime (Java, C#, ...) et un framework défini."
>> La STL n'est-elle pas un peu le "framework" du C++ ?

<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
5 août 2006 à 12:09
La STL (ou ex-STL) est un sous-ensemble de la bibliothèque standard
(depuis qu'elle à été normalisée) mais on peut dire que la bibliothèque
standard joue ce rôle. Seulement la bibliothèque standard du C++ est
assez abstraite (flux, conteneurs et algos génériques) et peu complete
(d'ou l'inclusion de la bibliothèque C). Par exemple on ne peut pas
faire d'interface graphique en C++, ou du son, de la video, gérer des
entrées autrement que par un flux. Les principales raisons de ces
limitations c'est d'abord que le C++ est encore en pleine évolution,
écrire un module pour la bibliothèque standard et trés long, et doit
etre décidé par le commité C++. L'autre grande raison c'est le souci
d'avoir un langage le plus portable possible à l'image du C et pour ca
il faut etre sur que chaque ajout à la bibliothèque standard ne posera
pas de probleme d'implémentation. La bibliothèque boost présente une
évolution possible de la bibliothèque standard, certains modules sont
trés pratique, portables et 100% compatibles avec l'actuelle
bibliothèque standard. Ils feront partis des ajouts pour le prochain
standard (c++0x). Il me semble que l'intégration d'une bibliothèque gui
est en projet, mais le travail s'annonce conséquent, ce ne sera sans
doute pas pour le prochain standard.
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
5 août 2006 à 12:12
Le problème est en fait que l'interface graphique est dépendante de l'OS, c'est pour ça qu'il faut utiliser l'API fournie par le système d'exploitation. Le mieux serait d'inclure une librairie comme GTK dans la bibliothèque standard du C, ce qui permettrait d'avoir un outil pour faire les interfaces utilisateur.

<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
5 août 2006 à 12:21
"

Le problème est en fait que l'interface graphique est dépendante de l'OS"


On peut même dire tout. Par exemple la lecture/écriture de fichier
dépend de l'OS (CreateFile sous Windows, open  sous UNIX, ...)
mais avec la bibliothèque standard ca se fait indépendamment de l'OS
avec fstream.


"Le mieux serait d'inclure une librairie comme GTK dans la bibliothèque standard du C"


C'est l'idée, enfin pas pour le C mais pour le C++.Seulement une telle
bibliothèque n'existe pas, c'est pour ca que ca risque de prendre du
temps.
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
5 août 2006 à 12:35
En fait si j'ai bien compris l'architecture d'un système est comme ça : (pardonnez la qualité du schéma)

Corrigez moi si c'est pas ça.

<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 août 2006 à 12:35
C'est carrément une utopie, un OS évolue et ne fournit pas forcément les mêmes services qu'un autre.


Les biblis de surcouche seraient toujours en réécriture.

ciao...
BruNews, MVP VC++
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
5 août 2006 à 12:38
Je pense que c'est possible (Java le fait bien), mais il faudrait faire une sorte de OSAL (OS Abstraction Layer), qui permettrait d'émuler des fonctions d'un OS.

<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
5 août 2006 à 12:43
Il n'y a pas d'utopie, c'est ce qui ce fait. C'est moins couteux de
réécrire l'implémenation de la couche la plus basse et de conserver la
même interface plutot que de réécrire toutes les applications.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
5 août 2006 à 13:28
De toutes facons il n'y a pas de miracle; il me semble évident qu'il langage devant fonctionner sous plusieurs OS ne bénéficiera que des services disponibles sur tous les systèmes, et au final c'est au détriment de la qualité du logiciel. S'il faut utiliser une couche d'abstraction ce n'est pas satisfaisant, car on ne veut pas de ca quand on code en C++.

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
5 août 2006 à 18:35
535688
nightlord666
 a dit :


Moi, je ne vois aucune raison de passer au .NET tant que je n'y voit pas de vrais avantages. Pour le moment, je ne vois que des inconvénients (vitesse d'éxécution, moins de controle du code, compatible uniquement Windows, dépendance à Microsoft)...

Premièrement, le C++ est à peine plus rapide que le code executé par le CLR dans certains cas et cela ne fait aucune différence pour une grande majorité d'applications. Et en passant, l'assembleur et le C, ne sont-ils pas plus rapide que le C++?
Pour le controle du code, le C# (et d'autres languages .net) n'est pas un nouveau VB. On a un controle quasi-complet sur ce qu'on veut faire avec la possiblité d'utiliser directement l'api Win32.
Pour la compatibilité avec Windows, j'y vois personnellement un avantage. Cette plateforme est optimisé pour Windows. Il y'a toujours le projet Mono et Platform.net qui ont développer un runtime pour Linux.
nightlord666 a dit :
Le jour ou Microsoft décidera de passer le Framework .NET payant (si ça arrive), et ben les programmeurs .NET l'auront dans le ***...
Et le jour que Microsoft décidera de passer le SDK de l'api Win32 payant, vous serez pas dans la ***de? Soyons raisonable, cela ne se produirait jamais !!! 
=617077 SAKingdom a dit:
Pas question de faire seulement du .NET et d'attacher un boulet de 3 tonnes à mes programmes.

La plateforme en soit n'est vraiment pas lourde. Elle est super rapide, ben plus rapide que Java et ne cesserait dans le future d'etre davantage rapide puisqu'elle serait integrée au coeur de l'os et continuellement optimisé.
___________________________________
Bon, pour conclure, je vous demande d'être plus ouvert.
Les programmeurs C++ sont généralement très habile et il vous faudra moins d'une semaine pour apprendre le C#. Sa syntaxe, sa clareté, la gratuité de son IDE (et son intellisense) vont rapidement vous séduire.
En plus, toute la structure de palteforme .net est un délice pour les curieux d'entre vous. Tellement sophistiqué et si simple à utiliser !!!
Et finalement, n'oublier pas que ce language est le produit d'une synthèse parfaite de plusieurs autres languages (C++, Java, ...). On a repris leurs forces et ignorer leurs défauts.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
5 août 2006 à 19:46
Tu voulais avoir notre opinion. C'est ce que l'on a fais. Je continue toujours à croire que le .NET ne fait que diminuer la flexibilité, la vitesse et la portabilité d'un code. D'accord, il est plus "simple" de faire du .NET car tout est regroupé mais les inconvenient sont encores trop importants. D'ailleurs, je ne vois pas l'utilité du .NET en C++. Je reprend un bout de phrase que le professeur Tanenbaum à envoyer à Linus Torvalds: "C'est comme prendre un programme écrit en langage C et qui fonctionne, et le réécrire en Basic". Voilà comment j'interprette le .NET dans le C++.

Je conclus en disant: à chacun son opinion sur le .NET. Moi je trouve que c'est un boulet. Personne ne me fera changer d'idée. Si vous aimez le .NET, je ne vous juge pas. C'est votre choix et je ne critiquerai jamais quelqu'un qui a fait son programme en C++ .NET plutôt qu'en C++. Ce que je pense ne concerne que moi et ceux qui sont en accord.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution

http://programmationdebat.discutforum.com
0
MorbhAck Messages postés 127 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 5 août 2007
5 août 2006 à 20:04
Moi aussi, pour moi le .NET il est carré au fond de mon C*** et il le resteras jusqu'a que je crève !
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
5 août 2006 à 20:14
Salut,
badrbadr >> Pour la gratuité de l'IDE (et l'intellisence) avec  C/C++, il y'a Visual C/C++ 2005 Express. Ce n'est pas la syntaxe facile d'un laguage qui séduit mais plutôt le résultat final. J'ai vu des codes C# utilisant des APIs. Ils doivent déclarer  toutes les APIs avec leurs DLLs dans le code avant de pouvoir les utiliser. C'est comme en VB. Vous appelez ça syntaxe facile? Et je me demande si l'EXE final sera vraiment autonome.
La politique de Microsoft est actuellement d'essayer d'imposer le .Net pour concurencer JAVA. Le principe est le même. Donc pour les performances, ce n'est pa la meilleure solution. Tous les trucs qu'on peut faire avec .Net on peut les faire avec C/C++, et en mieux. C'est vrai que c'est moins facile. L'utilisation des interfaces COM ne doit pas faire peur. Tout est question d'habitude.
Chacun choisit le langage qui lui convient selon ses priorités.
0
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
5 août 2006 à 20:16
Lol
C'est drole comment les mentalités sont différentes d'un site à l'autre dans le réseau CodeS-SourceS.
Sur CppFrance, PhpCs, JavaFr, l'attitude est très OpenSource et la portabilité est une valeur qui vous tient à coeur. C'est une philosophie très développer.
Par contre, sur des sites dans le genre CSharpFr, AspFr, ils sont très Microsoftien et très professionel. La pensée rationnel est de rigueur : productivité et cout sont des règles d'or.
En revenant ici, je me suis heurté à cette différence de culture.

[:D] @++
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
5 août 2006 à 20:35
La portabilité est un facteur. Un des avantages du C/C++ est ça capacité à générer des codes petit et rapide. Il ne faut pas négliger la taille et la rapidité d'execution d'un logiciel peut importe son langage. Le problème avec le C++.NET c'est qu'il attache un Framework au programme qui pourrait être très facilement évité (en C/C++). Passer par un Framework sera toujours plus lent que d'apeller le système directement et ça, tout professionnel te le dira. Le C a d'abords été fait pour faire des systèmes d'exploitations mais pas pour devenir un langage interprété et, tu sera probablement d'accord avec moi, un programme dépendent d'un RunTime ou un Framework (codé avec un langage interprété) sera toujours plus lent qu'un code natif. Ok faire un code en .NET est plus rapide mais au grand sacrifice des performences du produit final et ça c'est désolent. Voilà. J'espère que vous allez comprendre mon point de vue.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution

http://programmationdebat.discutforum.com
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 août 2006 à 20:48
"très professionnels" sur les sites d'interprété, hé hé là je rigole un max !!!
Il y a un bout de temps que j'y passe quasi chaque jour pour voir si tout va bien, ben j'en sors édifié par les propos tenus. A part qlqs uns, quasi personne ne sait ce qui se passe en mémoire ni autre chose, c'est le domaine de l'ignorance complète de l'informatique. Rien de vraiment surprenant ni choquant vu que ces pseudos langages sont faits pour de la production en masse d'applets par des non informaticiens mais il faut tout de même appeler un chat un chat.

monLaïus.finiched = True
ah oui que je me sens pro...

ciao...
BruNews, MVP VC++
0
Rejoignez-nous