30

Oui, en effet, et un code issu d'un compilateur C est lui-même plus lent et plus gros qu'un code écrit directement en assembleur. Donc je préfère l'assembleur. Même si je ne renoncerais jamais à TI-Chess.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

31

Je ne sais pas ou tu as vu ça, mais c'est du n'importe quoi !!! En C++ au contraire, il y a beaucoup d'améliorations pour augmenter l'efficacité du code... les méthodes écrites dans les déclarations de classes sont automatiquement inline, et justement inline est standard en C++ (et pas en C)... le fait d'utiliser des classes est strictement équivalent à utiliser des fonctions C normales avec un pointeur que tu passes en parametre pour la structure de l'objet. Le seul truc qui peut etre consideré comme lent en C++ c'est les mauvaises implementations de la gestion d'erreurs (try/catch) et les méthodes virtuelles qui créent une vtable et rajoutent un pointeur dans la structure de l'objet, mais là on ne peut pas parler de lourdeur vu que c'est vraiment minimal comme overhead.
L'utilisation des templates n'est pas non plus source de ralentissement quand on utilise une implementation bien faite... au contraire, seul le code qui est vraiment nécessaire est generé, et j'ai deja entendu dire que certaines implémentations de la STL sont hyper optimisées (plus que ce que pourrait faire un programmeur moyen).
Et puis d'apres toi pourquoi est-ce que tous les moteurs de jeu (en particulier le moteur d'Unreal, qui possede meme un langage de script orienté objet) utilisent le C++ et pas le C ?
So much code to write, so little time.

32

>Nitro: Je ne sais pas ou tu as vu ça

, je suppose.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

33

Je suis bien d'accord avec Zeljko en ce qui concerne le streaming (et ce n'est pas le langage qui est en cause, c'est l'implémentation de iostream utilisée), mais pour les classes comme je l'ai dit c'est pas grand chose en plus...
Par contre, sur une plateforme ou le moindre octet est important, il vaut mieux rester au C si tu veux controler un maximum.
So much code to write, so little time.

34

Nitro : Ma foi ! J'ai à dire... je ne sais que dire, car vous tournez les choses d'une manière, qu'il semble que vous avez raison ; et cependant il est vrai que vous ne l'avez pas. J'avais les plus belles pensées du monde, et vos discours m'ont brouillé tout celà. Laissez faire : une autre fois je mettrai mes raisonnements par écrit, pour disputer avec vous. Molière, Dom Juan (Sganarelle, acte I scène II) wink

(arf j'ai vu qu'il faut de la culture G pour entrer à l'EPITA, alors je m'y met grin)
[edit]Edité par Thibaut le 03-01-2002 à 21:45:38[/edit]
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

35

[nosmile]>Nitro:

>les méthodes écrites dans les déclarations de classes sont automatiquement inline,

Si on indique ce fait par un mot ou par la position de la fonction ne change absolument rien.

>et justement inline est standard en C++ (et pas en C)...

inline est une extension documentée de GCC

>le fait d'utiliser des classes est strictement équivalent à utiliser des fonctions C normales avec un pointeur que tu passes en parametre pour la structure de l'objet.

- Déjà, on passe un paramètre de plus, souvent inutilement (on peut souvent s'arranger autrement si on n'utilise pas les classes).
- As-tu regardé avec un débogueur tout ce qu'il y a dans une classe qu'il n'y a pas dans une structure? Jette un coup d'œil sur les captures d'écran de KDB, on peut le voir là-dessus. C'est un gaspillage de place énorme.

>Le seul truc qui peut etre consideré comme lent en C++ c'est les mauvaises implementations de la gestion d'erreurs (try/catch) et les méthodes virtuelles qui créent une vtable et rajoutent un pointeur dans la structure de l'objet,

Ça suffit déjà largement pour dire que c'est inefficace.

>mais là on ne peut pas parler de lourdeur vu que c'est vraiment minimal comme overhead.

Pas vraiment, parce que tu as oublié:
- l'inefficacité en mémoire des classes (cf. ci-dessus)
- l'inefficacité du surchargement des opérateurs, surtout de l'abus du surchargement des opérateurs. Par exemple:
cout << "toto = " << toto << endl << "foo = " << foo << endl << "bar = " << bar << endl;
Je compte 9 appels de fonction utilisant 4 références à des objets, avec l'utilisation de 2 objets différents, alors qu'on peut avoir la même chose avec un seul appel de fonction et sans aucun objet:
printf("toto = %d\nfoo = %ld\nbar = %s\n",toto,foo,bar);
- le fait de regrouper plusieurs fonctions dans une seule classe, ce qui fait que toute la classe devra être linkée quand on n'a besoin que d'une seule fonction. Par exemple, ci-dessus, le fait d'avoir linké ostream:embarrassedperator<< (en plusieurs variantes en plus - 4 différentes en admettant les mêmes types de données que dans mon printf) fera que toute la classe sera incluse lors d'un linkage statique, y compris par exemple des fonctions de type ostream:embarrassedperator<<(float) voire même des fonctions encore plus obscures. En C, on linke seulement printf.
[edit]Edité par Kevin Kofler le 03-01-2002 à 21:53:09[/edit]
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

36

Oula Kevin, tu es borné... si on réfléchit comme toi on va faire de l'assembleur ou a la limite du Fortran... Il y a de grosses applications qui ne peuvent tout simplement pas etre écrites en C dans un temps raisonnable, c'est pour ça que le C++ est utilisé, la surcharge des opérateurs, les streams, etc.. sont autant de raccourcis qui permettent d'avoir un code source lisible. De nos jours (où l'espace des disques durs se compte en Go et la RAM en centaines de Mo), il est ridicule de se limiter au C parce que tu perds quelques Ko/Mo dans ton executable.
Meme les systemes d'exploitation passent aux C++ (Windows et BeOS par ex.)
So much code to write, so little time.

37

Que Windows passe au C++ est plutôt un argument contre le C++. grin
Linux reste toujours en C, lui.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

38

LOL, en voila un super argument ... quel OS utilises-tu quotidiennement ? grin

Et Linux est en C parce qu'il est basé sur une architecture qui date de plus de 20 ans... Les OS modernes (ie: BeOS) supportent le C++ à 100%.
[edit]Edité par Nitro le 04-01-2002 à 00:49:21[/edit]
So much code to write, so little time.

39

Bon c'est pas pour mettre mon grain de sel, mais sur tout console c'est de la programmation C 99%. Je tiens cette argument d'une interview d'un programmeur chez SEGA...

Ceci etant dit je connais pas le C++, mais il est claire que c'est un langage assez gourmant... mais ce n'est pas un porbleme sur les bon pc....
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

40

>sur tout console c'est de la programmation C 99%

C'etait bien le cas il y a quelques années, mais c'est de moins en moins vrai, et ça le sera de moins en moins... les jeux actuels sont souvent multiplateforme PC-console, et dans ce cas le plus souvent le moteur est developpé sur PC, en C++. Et sur GBA je connais personnellement plusieurs programmeurs (dont moi) qui font leurs jeux en C++.
So much code to write, so little time.

41

Le système d'exploitation que j'utilise quotidiennement est effectivement Windows, parce qu'il n'y a pas (encore?) de TIGCC IDE pour Linux et que j'en ai besoin pour programmer pour calculatrices. Mais si je dis que le fait que Windows soit (ou sera) écrit en C++ est un argument contre le C++, c'est que Windows est un système d'exploitation énorme, lent et bogué, alors que Linux cherche à ne pas l'être (avec KDE et tous les programmes du genre par dessus, ça commence un peu à le devenir malheureusement, mais comme par hasard KDE est aussi codé en C++... roll).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

42

Et ce n'est pas un hasard.. réaliser un systeme software aussi complexe que KDE (et son back-end Qt) en C est une horreur, non seulement en temps de développement, mais aussi en lisibilité de code et donc en risques de bugs...
So much code to write, so little time.

43

rââââââ thibaut!!!!!!!! va pa à EPITA!!!!!!!!! c NULLLLLLL!!!!!!!!!!!!!!
[edit]Edité par chickensaver le 04-01-2002 à 03:38:41[/edit]
avatar
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi

44

Et bien entendu chickensaver y est allé et a suivi tout le cursus pour pouvoir se permettre de porter ce jugement grin
So much code to write, so little time.

45

Ouai j'aimerais avoir quelques arguments chicken_saver grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

46

Si ta de l'argent vas-y sad
Jah Live !
And Never Die !!

47

Tu m'étonnes qu'on utilise le C++ : tout est fait d'objet maintenant, c'est plus simple, mais ça bouffe plus... Et pour les systèmes portables, il faut rester en C pour que ça aille mieux.
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

48

naholyr > putain tu dois vraiment être dans une université de merde pour avoir des profs comme ça (Amblard) !!
t'es en license d'info et t'as pas encore fait de C !!!!!eekeek ça alors !!

Ton prof M. Amblard faut qu'il se trouve une autre vocation ...

Mais le C c'est LE langage de base !
D'autre part, c'est le langage qui se rapproche le plus de l'assembleur, c'est moins compliqué que le C++, et plus optimisé.

Jamais le C++ remplacera complètement le C.
Tout ce qui doit être optimisé, comme les drivers, routines de bas niveau, systèmes d'exploitation, etc... sera codé en C (ou asm), mais certainement pas en C++.

windows est programmé en c++ ?
je croyais que c'était programmé en C sad