Pourquoi rester en C au lieu d'utiliser C++ ? - C++ - Programmation
Marsh Posté le 02-12-2002 à 22:31:22
ben je ne sais pas non plus. d'un autre coté le C n'est quand meme pas si mal, et comme linux est ecrit en C et l'API qui va avec, ca force a y rester. Je pense qu'une bonne connaissance des deux langages est indispensable
Marsh Posté le 02-12-2002 à 22:39:24
benh chui en licence d'info en fac et j'avais jamais fait de C en deug, juste du pascal du caml etc. On a fait du C pendant une semaine de remise a niveau (on ce demande de quoi etait la remise a niveau qu'on avait jamais fait de C).
Bref on attaque direct avec le c++ et l'objet. C'etait hard au debut vu qu'on connaissait même pas la syntaxe C. Mais maintenant ça va mieux. Juste pour dire que l'eradication du C est en marche
Marsh Posté le 02-12-2002 à 22:45:39
karim63 a écrit a écrit : Juste pour dire que l'eradication du C est en marche |
Je veux pas me faire éradiquer (pas avant longtemps) .
En tant qu'autodidacte manquant de temps, je bloque sur le C++ avec ses
surcharge de fonction et d'opérateurs
références
variables constantes partageables
enum et struct directement accessibles comme types
meilleures opportunités d'optimisation
classes et hiérarchies de classes
valeurs d'argument par défaut
patrons
typage plus sûr
lieu de déclaration de variables libre
inline, bien que sous une forme plus restreinte
J'ai un gros bouquin la dessus mais j'avance pas. Trop vieux sans doute. Ceux qui ont des cours ont de la chance, ils peuvent poser des questions ou faire répéter..
Marsh Posté le 02-12-2002 à 22:49:54
Perso j'ai fait un dut informatique genie informatique
et j'ai fait 2 ans de java.
On a fait deux semaines de C car en algo on voyait les listes chainées sinon le je suis passé direct au C ++ en autodidacte.
Marsh Posté le 02-12-2002 à 23:21:51
carbon_14 a écrit a écrit : J'ai un gros bouquin la dessus mais j'avance pas. Trop vieux sans doute. Ceux qui ont des cours ont de la chance, ils peuvent poser des questions ou faire répéter.. |
Alors là je t'arrete de suite, on a une prof daubesque, et ça aide pas.
J'ai trouvé de cours pas mals ou du moins des syntheses en français de la doc c++.
http://www.lirmm.fr/~poncelet/c++/new_document.html
les gros bouquins y en a plein a la fac et franchement tout ne sert pas dedans, et ils vont pas assez droit a l'essentiel je trouve.
J'ai un poly de notre prof qui est pas mal mais je l'ai que en papier.
Je precise que moi comme mes collegeues de cours de fac on a eu du mal a voir l'interet immediat du langage objet. Une fois qu'on a capté, les surchage d'operateurs, les flux les class etc ça parait vraiment indispensable ou du moins ça simplifie vraiment la programmation.
Marsh Posté le 02-12-2002 à 23:26:12
A mon avis, c'est plus le C++ que le C qui est en voie d'éradication
Marsh Posté le 02-12-2002 à 23:27:15
Taz@PPC a écrit a écrit : bon, ben c'est 2 langages différents, voilà tout, qui ne cible pas pareil. |
Benh chui pas top d'accord.
En fait je trouve que le C n'a pas vraiment de raisons d'exister si le c++ existe.
A moins qu'on ai pas envie ou bien pas compris les avantages de la programmation objet.
En fait pour moi, tant qu'a faire du C tout court, autant faire du pascal
Marsh Posté le 02-12-2002 à 23:29:00
charlene a écrit a écrit : A mon avis, c'est plus le C++ que le C qui est en voie d'éradication |
si tu fait allusion au java qui mange le c++, t'a probablement pas tord.
On vient d'ailleurs de commencer le Java en cours. On traine pas
Marsh Posté le 02-12-2002 à 23:31:32
karim63 a écrit a écrit : En fait je trouve que le C n'a pas vraiment de raisons d'exister si le c++ existe. |
Marsh Posté le 02-12-2002 à 23:31:38
du genre le C c'est toujours un super langage pour faire de l'embarquer (binaire ultre light, c 'est d'aillerus pour ca que les E/S ne font aps partit du langage)
apres, un compilo C++ est super dur à faire, va demander à µ$ift ce qu'ils en pensent
Marsh Posté le 02-12-2002 à 23:34:11
lorill a écrit a écrit : |
benh fallait pas couper ma phrase
Marsh Posté le 02-12-2002 à 23:34:26
karim63 a écrit a écrit : si tu fait allusion au java qui mange le c++, t'a probablement pas tord. On vient d'ailleurs de commencer le Java en cours. On traine pas |
Oui je faisais allusion à ça, mais je modère mon propos : c'est vrai pour certaines applis, mais pas pour toutes.
Mais tout de même, quel gain de temps de développement et de débug en java par rapport à C++
Marsh Posté le 02-12-2002 à 23:36:02
charlene a écrit a écrit : Oui je faisais allusion à ça, mais je modère mon propos : c'est vrai pour certaines applis, mais pas pour toutes. Mais tout de même, quel gain de temps de développement et de débug en java par rapport à C++ |
chez po. Pour l'instant chui a la rue en Java
J'ai un CC de c++ jeudi. ça va etre du freestyle
Marsh Posté le 02-12-2002 à 23:36:20
karim63 a écrit a écrit : benh fallait pas couper ma phrase |
ben je ne me sens pas concerné dans le "A moins qu'on ai pas envie ou bien pas compris les avantages de la programmation objet."
Marsh Posté le 02-12-2002 à 23:37:41
lorill a écrit a écrit : ben je ne me sens pas concerné dans le "A moins qu'on ai pas envie ou bien pas compris les avantages de la programmation objet." |
benh precise ta pensée.
Pkoi tu preferes c-- ? (:D)
Marsh Posté le 02-12-2002 à 23:40:38
karim63 a écrit a écrit : Pkoi tu preferes c-- ? |
- parce qu'on a pas toujours besoin de tout
- parce que "qui peut le plus peut le moins" n'est pas toujours une bonne idée
- parce que j'ai pas besoin d'avoir plusieurs langages sur le même crénau
- je préfère faire du Java ou un langage de script que du C++ pour les applications complètes, et quand j'ai besoin de performances je me fait une petite extension en C
- ...
Marsh Posté le 02-12-2002 à 23:41:04
charlene a écrit a écrit : Mais tout de même, quel gain de temps de développement et de débug en java par rapport à C++ |
Et quel gain de temps de développement entre du C et du C++
Marsh Posté le 02-12-2002 à 23:42:47
lorill a écrit a écrit : - je préfère faire du Java ou un langage de script que du C++ pour les applications complètes, et quand j'ai besoin de performances je me fait une petite extension en C - ... |
Et tu perds tout l'intérêt du java (ou presque): la portabilité...
Marsh Posté le 02-12-2002 à 23:44:11
Willyzekid a écrit a écrit : Et tu perds tout l'intérêt du java (ou presque): la portabilité... |
tu parles... mon extension C sera tout aussi portable que ton programme C++... Et si la portabilité c'est tourner sur 4 systèmes
Marsh Posté le 02-12-2002 à 23:45:55
Musaran a écrit a écrit : Pourquoi continuer à s'embêter avec des problèmes qui ont été résolus ? Pourquoi ignorer des éléments de programamtion plus efficaces ? |
Musaran!
Troll !
LeGreg
Marsh Posté le 02-12-2002 à 23:49:59
lorill a écrit a écrit : tu parles... mon extension C sera tout aussi portable que ton programme C++... Et si la portabilité c'est tourner sur 4 systèmes |
je te parle de java là
Et a priori, ca tourne sur n'importe quel système...
Je trouve étrange de programmer en java quand on se fout de la portabilité...
Marsh Posté le 02-12-2002 à 23:54:57
Willyzekid a écrit a écrit : je te parle de java là |
oui ben il se trouve qu'on est dans un topic C/C++, comment je devine ?
Willyzekid a écrit a écrit : Et a priori, ca tourne sur n'importe quel système... |
mouhahahahahahaha ! ok, tu me trouves la jvm pour BeOS x86 ? pour BeOS ppc ? pour un BSD libre sans passer par l'émulation Linux ? pour un linux non x86 ? pour mon boulier ?
Willyzekid a écrit a écrit : Je trouve étrange de programmer en java quand on se fout de la portabilité... |
et pourtant... Quand je fais une servlet, je sais très bien qu'elle tournera sur Tomcat sur Linux...
Je te rassure quand même, j'ai jamais eu besoin de faire d'extension C, mais si ca devenait critique cette possibilité existe, ca me suffit.
Marsh Posté le 02-12-2002 à 23:57:40
lorill a écrit a écrit : oui ben il se trouve qu'on est dans un topic C/C++, comment je devine ? |
Willyzekid a écrit a écrit : Et tu perds tout l'intérêt du java (ou presque): la portabilité... |
il me semblait que ma phrase était explicite, non?
Marsh Posté le 02-12-2002 à 23:58:53
Willyzekid a écrit a écrit : il me semblait que ma phrase était explicite, non? |
ben si tu veux savoir, j'ai compris :
"et tu perds tout l'interet du Java par rapport a C++" vu que c'est par rapport a lui qu'on le comparait plus haut
Marsh Posté le 03-12-2002 à 00:06:37
lorill a écrit a écrit : mouhahahahahahaha ! ok, tu me trouves la jvm pour BeOS x86 ? pour BeOS ppc ? pour un BSD libre sans passer par l'émulation Linux ? pour un linux non x86 ? pour mon boulier ? |
Aya...
BeOS: http://www.bebits.com/app/1195.
Kaffe pour BeOS: http://bekaffe.sourceforge.net/
BSD: http://www.kjkoster.org
etc.
Trouvé en 2 min, ca doit pas être les plus pertinents...
Mais l'intérêt c'est de ne pas avoir à réécrire son programme pour toutes les plateformes (on souffre rapidement sur une plateforme embarquée)...
Perso, c'est le seul intérêt que je trouve à Java.
Parce que je suis sans doute trop habitué à mon cher C++
Marsh Posté le 03-12-2002 à 00:08:04
Willyzekid a écrit a écrit : BeOS: http://www.bebits.com/app/1195. Kaffe pour BeOS: http://bekaffe.sourceforge.net/ BSD: http://www.kjkoster.org etc. |
j'aurais du préciser : qui implémente entierement les specs du jdk 1.4
Marsh Posté le 03-12-2002 à 00:18:53
lorill a écrit a écrit : j'aurais du préciser : qui implémente entierement les specs du jdk 1.4 |
C'est dingue quand même...tu pinaille pour ca alors qu'il faudrait recompiler ton programme C complétement (et surtout le réécrire) pour le faire fonctionner d'une plateforme à une autre...
C'est le cauchemar pour des téléphones portables par exemple!!
Je défends pas java mais c'est une qualité qu'il faut lui reconnaître (même s'il a ses limites). Maintenant explique moi l'intérêt de coder une partie en java et de faire des liens vers des bibliothèques écrites en C?
Marsh Posté le 03-12-2002 à 00:20:58
Willyzekid a écrit a écrit : Maintenant explique moi l'intérêt de coder une partie en java et de faire des liens vers des bibliothèques écrites en C? |
n'avoir qu'une petite partie a réécrire...
Marsh Posté le 03-12-2002 à 00:27:19
lorill a écrit a écrit : n'avoir qu'une petite partie a réécrire... |
C'est bien que c'est portable alors?
Marsh Posté le 03-12-2002 à 01:42:51
Musaran a écrit a écrit : Il me semble que tout ce que fait C, C++ le fait mieux |
c'est pas il semble, c'est le cas
Meme si on ne fait pas d'object, le C++ a de nets avantages par rapport au C :
deja la classe string (rien que pour ca je comprend pas qu'il y est encore des gars qui fassent du C)
la STL
les templates
le type booleen (bon ok c'est un detail qui se resout avec un define)
le mot cle const qui est beaucoup mieux qu'en C
les I/O
les exceptions
les namespaces
le compilo plus strict
aussi rapide a 5-10% pres
ect...
si en plus on rajoute tout se qui concerne la POO...
Y'a bien un gars qui va repondre, dans l'embarque on a besoin blabliblablabla...
reponse : rien a foutre de l'embarque, je parle des logiciels qui tournent sur les PC
pour moi y'a meme pas de debat
et je comprend pas non plus pourquoi y'a des gars qui prennent du temps a reinventer en C ce qui fonctionnent 10x mieux en C++, qui est standard et portable (genre la glib pour pas donner de nom)
Marsh Posté le 03-12-2002 à 03:06:49
Attention, je ne parle pas de faire de l'objet et du patron systématique.
Il s'agit déjà de bénéficier du "meilleur C" de C++.
Taz@PPC a écrit a écrit : ...comme linux est ecrit en C et l'API qui va avec, ca force a y rester. |
On peut l'appeler de puis C++.
On peut encapsuler les APIs dans des classes.
carbon_14
Je suis impatient de voir ce qui éradiquera le C++.
Voire de le faire moi-même (mais oui bien sûr).
Marsh Posté le 03-12-2002 à 03:08:51
Dans le milieu de l'embarqué (j'ai travaillé sur un projet de ce type) on essaie d'avoir un noyau linux (par exemple )le plus léger possible, contraintes mémoires oblige (matos embarqué parfois = petit processeur, peu de ram etc) donc en fait en général les gens préfèrent travailler en C, parce que c'est le langage le plus optimisé pour ce domaine. Donc noyau léger => librairies en moins, par exemple sur eCos, le systeme temps reel de Red Hat, exit la STL C++ par exemple , pas de vecteurs de string etc ..a ce moment la pas mal d'avantages liés au C++ disparaissent et on préfère en rester au C.
Marsh Posté le 03-12-2002 à 03:10:10
Musaran a écrit a écrit : Attention, je ne parle pas de faire de l'objet et du patron systématique. Il s'agit déjà de bénéficier du "meilleur C" de C++. On peut l'appeler de puis C++. On peut encapsuler les APIs dans des classes. carbon_14 Je suis impatient de voir ce qui éradiquera le C++. Voire de le faire moi-même (mais oui bien sûr). |
Personnellement je préfère Ada au C++, pour un bon nombre de raisons .
Marsh Posté le 03-12-2002 à 09:28:09
karim63 a écrit a écrit : En fait pour moi, tant qu'a faire du C tout court, autant faire du pascal |
tant qu'à faire du C++, autant faire du Pascal Objet
Marsh Posté le 03-12-2002 à 10:27:32
antp a écrit a écrit : tant qu'à faire du C++, autant faire du Pascal Objet |
exact j'ai pas encore regarder la partie objet du freepascal
Marsh Posté le 03-12-2002 à 11:14:41
Musaran> Pourquoi C ne disparait pas ? Tout simplement parce que C++ est un langage extrêmement complexe à maîtriser. Sa puissance d'expression est sans doute l'une des plus grande parmi l'ensemble des langages de programmation, mais l'expérience montre que cela n'apporte pas d'amélioration significative dans la qualité des programmes, donc le nombre de bugs que ces programmes contiennent. Bien au contraire.
Une des raisons (parmi d'autres) qui expliquent la complexité de C++, c'est que ce langage mélange allègrement identité et valeur des objets (ce qui entre nous est une violation flagrante des principes de base de l'objet). Exemple (simple, voire simpliste, mais c'est pour l'idée) : quand s est de type string, on peut écrire if (s == "toto" ) ....
Cette distinction claire entre identité et valeur des objets est d'ailleurs une des forces de Java par rapport à C++.
Une petite anecdote : lorsque le célèbre petit robot Sojourner a été envoyé vers Mars, un type a écrit une petite application Java qui permettait de piloter le robot à distance, en quelques semaines. Les responsables de la NASA ont été soufflés de la rapidité avec laquelle cette application avait pu être écrite, et par sa qualité (faible nombre de bugs). Ils ont admis que s'ils avaient voulu écrire une application équivalente, ils auraient utilisé C++, et ils auraient prévu au moins 5 ou 6 fois plus de ressources pour son développement (combinaison temps/hommes). Sans garantie d'obtenir une meilleure application.
Enfin, au sujet de C99 : à part pour quelques exceptions, les technologies les plus récentes ont toujours beaucoup de mal à rentrer massivement dans l'industrie. Ils leur faut généralement 10 ou 15 ans entre le moment où elles "sortent" et le moment où elles sont largement adoptées. Et malgré l'usage répandu de C, C99 mettra lui aussi de nombreuses années à rentrer "dans les moeurs". Rendez-vous donc à la fin de cette décennie.
Marsh Posté le 07-12-2002 à 02:02:37
Ce passage, bien qu'un peu dépassé, parle de l'évolution du C++, et de l'impact de la compatibilité C:
[A Critique of C++] Standardisation, Stability and Maturity
Reprenons...
Certain compilateurs (AT&T, Comeau) génèrent du C comme code intermédiaire. Ça devrait permettre de contourner ce problème
Il suffit de se limiter au sous-ensemble C de C++ et d'utiliser la directive extern.
Il suffit de peu de chose pour pouvoir l'appeler directement.
On peut aussi l'encapsuler pour une utilisation plus facile.
On peut faire une fonction extern "C" comme point d'entrée rétro-compatible.
On peut généralement désactiver la gestion d'exception, le seul mécanisme C++ susceptible de ralentir inutilement du code.
Le C++ offre de meilleure opportunités d'optimisation au développeur et au compilateur.
Rappelons qu'un principe de base de C++ est qu'on ne paye pas pour ce qu'on n'utilise pas.
:-/
Ben... les acrobaties faites pour contourner les limites du C sont pas mal dans le genre.
C++ corrige bien des défauts de C, et ses mécanismes permettent d'écrire du code plus clair.
Et je préfère un langage tellement puissant que personne n'en a fait le tour, plutôt qu'un ou je stagne en me cognant sans arrêt aux limites.
Dire que le C++ va disparaître, c'est ne pas avoir compris sa spécificité: la maîtrise de l'implémentation, les choses impossibles ailleurs.
Tant qu'il n'aura pas de remplaçant sur ce créneau, il restera.
Tout au plus pourrait-il régresser, vu qu'il n'est pas facile d'emploi.
Qu'un langage soit plus simple parce qu'il permet moins de chose, c'est une lapalissade.
Mais justement, C est plus compliqué que le C de C++:
Code :
|
Bref, c'est l'enfer !
Les limitations sont horribles, depuis que j'ai goûté aux facilités et à la rigueur de C++, je ne comprends pas qu'on puisse s'en passer.
J'ai l'impression qu'il y a une communauté de vieux briscards du C réticents au changement...
C'est un peu trollesque, je sais, mais il n'y a que la vérité qui blesse, n'est-ce pas ?
(J'espère faire réagir du monde)
Marsh Posté le 07-12-2002 à 02:39:05
Willyzekid a écrit : C'est dingue quand même...tu pinaille pour ca alors qu'il faudrait recompiler ton programme C complétement (et surtout le réécrire) pour le faire fonctionner d'une plateforme à une autre... |
Tu racontes n'importe quoi... Actuellement, le C ANSI est le seul langage qui soit portable simplement d'une plate-forme à l'autre. Pour ce qui est de Java, entre les systèmes qui n'ont pas de JVM et les incompatibilités entre lesdites JVM, on n'est pas avancé.
Si tu veux un maximum de portabilité, tu fais du C et puis c'est tout. Enfin, python commence à pas mal se débrouiller aussi dans ce domaine.
Marsh Posté le 02-12-2002 à 22:27:29
Il me semble que tout ce que fait C, C++ le fait mieux.
Alors pourquoi se cantonner au C ?
Je ne vois que 2 raisons:
Personnellement, je n'envisage pas de me passer de :
Et bien sûr, de tout le reste:
À noter que ceci est maintenant supporté par C99:
Bref...
Pourquoi continuer à s'embêter avec des problèmes qui ont été résolus ?
Pourquoi ignorer des éléments de programamtion plus efficaces ?
Message édité par Musaran le 02-12-2002 à 22:34:38
---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone