Précédent   Forum du club des développeurs et IT Pro > Général Développement > Langages de programmation
Langages de programmation Forum général sur les langages de programmation, sur la POO, opinions, choix, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/06/2002, 17h30   #1
strategos
Invité de passage
 
Inscription : juin 2002
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 2
Points : 0
Points : 0
Envoyer un message via MSN à strategos
Par défaut C ou C++ ? Lequel choisir ?

Bonjour à tous
J'aimerais apprendre la prog en C ou C++ mais je ne sais pas quel langage choisir (ils ont peu de différence parait-il). Je souheterais faire de la programmation réseau et de la prog sur Linux. Voila merci de tous vos conseils à venir @+
strategos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2002, 21h13   #2
MelloW
Membre à l'essai
 
Inscription : juin 2002
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 25
Points : 22
Points : 22
C++ -> la programmation oriente objet qui permet d'ecrire du code plus clean, plus reutilisable, etc.
MelloW est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/06/2002, 19h16   #3
Ol'
Membre du Club
 
Inscription : mai 2002
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 56
Points : 57
Points : 57
Salut,

Je pense aussi qu'il vaut mieux commencer par le C++ parce que si tu as un niveau correct en C, cela te généra par la suite en C++ car tu vas tenter des bricolages qui n'ont pas lieu d'être.

De plus, la POO te permettra de passer plus facilement à Java ou autre.

D'un autre côté, il me semble que la programmation "fonctionelle" (non OO) est plus facile à apréhender pour un débutant.

A toi de voire
Ol'
Ol' est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/06/2002, 20h12   #4
MelloW
Membre à l'essai
 
Inscription : juin 2002
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 25
Points : 22
Points : 22
Citation:
Envoyé par Ol'
Salut,

Je pense aussi qu'il vaut mieux commencer par le C++ parce que si tu as un niveau correct en C, cela te généra par la suite en C++ car tu vas tenter des bricolages qui n'ont pas lieu d'être.

De plus, la POO te permettra de passer plus facilement à Java ou autre.

D'un autre côté, il me semble que la programmation "fonctionelle" (non OO) est plus facile à apréhender pour un débutant.

A toi de voire
Ol'
La programmation fonctionnelle à l'avantage d'être plus expressive (du moins pour le langage que je connais -> scheme), est de ne pas se préoccuper de problème trop bas niveaux (pointeur, memory management,etc. <-> dynamic binding, dynamic typing, garbage collection, etc.) et est donc plus facile à apprendre. Le seul problème est qu'elle n'a pas beaucoup d'application en entreprise (à cause de ces performances entre autre) comparé au C (langage procedural) ou le C++ (langage oo) (-> aux langages impératif quoi)... le C je le trouve vraiment trop horrible (ainsi que le C++ d'ailleurs), mais bon ca c'est mon avis...
MelloW est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 11/06/2002, 17h17   #5
Ol'
Membre du Club
 
Inscription : mai 2002
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 56
Points : 57
Points : 57
Salut,

pouquoi ne cherches tu pas à apprendre le Pascal Orienté Objet (Delphi sous Windows, Kylix sous Linux). Il parrait que c'est plus facile que le C/C++

Ol'
Ol' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2002, 22h56   #6
dsimon
Nouveau Membre du Club
 
Inscription : mai 2002
Messages : 22
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 22
Points : 28
Points : 28
Par défaut Re: C ou C++? lequel choisir?

ça, c'est génial !!!

Citation:
Envoyé par strategos
J'aimerais apprendre la prog en C ou C++
et on lui répond : apprend java ... pascal .... etc...

parce que tu n'auras pas à te casser la tête avec les pointeurs et blabla et blabla !

Mais lui, il veux apprendre C ou C++ !

Sinon, puisqu'il il ne faut pas se casser la tête, pourquoi ne pas carrément lui proposer de ne pas apprendre à programmer tant qu'on y est !?

Citation:
Envoyé par MelloW
le C je le trouve vraiment trop horrible (ainsi que le C++ d'ailleurs)
à ce point là !?

Citation:
Envoyé par OI'
si tu as un niveau correct en C, cela te généra par la suite en C++ car tu vas tenter des bricolages qui n'ont pas lieu d'être.
Je connais déjà très bien le C lorsque j'ai appris C++ et je n'ai pas eu de problème. Il suffit de bien comprendre qu'il s'agit d'un tout autre langage avec une phylosophie complètement différente.

En fait, il y a des domaines qui se prêtent à la programmation procédurale et d'autres où la programmation objet présente d'enormes avantages.

Personnellement, je t'encourage à apprendre les deux (le C et le C++) qui ne sont pas du tout en concurence. loin de là.

Et je t'encourage également à apprendre le Java et en fait, plus tu connais de langages et mieux c'est, car chaque langage à son domaine de prédilection.
dsimon est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 05/07/2002, 12h08   #7
MelloW
Membre à l'essai
 
Inscription : juin 2002
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 25
Points : 22
Points : 22
Par défaut Re: C ou C++? lequel choisir?

Citation:
Envoyé par dsimon
ça, c'est génial !!!
Citation:
Envoyé par MelloW
le C je le trouve vraiment trop horrible (ainsi que le C++ d'ailleurs)
à ce point là !?
Baaah écoute, je connais le Scheme, le Pico (un pti langage de chez nous), le Java, le C/C++, le SmallTalk, et puis qq dialectes de Prolog (mais des versions spécifique pour certains domaines), le Curl (un autre dialecte de Lisp). Si je pouvais éliminer 2 langages de cette liste, ce serait bien le C et le C++. Si en plus, il veut de la programmation sous Linux à coup de Emacs/pico et de make... j peux dire que c'est le plus dur et donc le moins productif des environments que j'ai eu l'occasion d'essayer (et je crois que c'est en partie à cause de cela que le C++ m'a plus ou moins dégouté). J'ai un peu exagèré en disant trop horrible, mais en tout cas les moins chouette à utiliser de ceux que je connaisse (t'imagines ce que je dois penser de l'assembleur -> jamais compris les gens qui faisaient ca)
Peux-tu me citer un langage grand public, qui soit plus dur à apprendre que le C/C++?

ps: tu remarqueras, que je lui ai conseillé d'apprendre le C++ dès le premier post -> plus intuitif selon moi.
ps2: tu remarqueras aussi, que les langages vont avec le temps, c'est à dire que cela ne cesse de monter dans les niveau d'abstractions -> aux services du programmeur. Dans qq cas le bas niveau est nécessaire, mais pas aussi souvent qu'on veuille bien le croire.
ps3: il est plus facile de commencer par des langages qui font abstraction des pointeurs, du memory management,... puis d'essayer des langages plus compliqué.
MelloW est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 05/07/2002, 22h22   #8
dsimon
Nouveau Membre du Club
 
Inscription : mai 2002
Messages : 22
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 22
Points : 28
Points : 28
En fait, MelloW, je crois que tu n'as pas abordé le C et le C++ à un moment où tu avais vraiment besoin d'un langage de ce type. Sinon, tu aurais probablement une autre opinion de ces langages.

Pour ma part, le C et le C++ sont les langages les plus chouettes que j'ai eu l'occasion d'utiliser et j'adore les utiliser dans l'environnement Unix avec les outils classiques (VI, make, cc, ...etc...). C'est uniquement une question de goût et je conçois complètement que d'autre personnes aient d'autres points de vue.

Avec un peu d'habitude, ces outils constituent un environnement bien plus productif qu'on le dit. Et pour ce qui est des pointeurs du C (et donc du C++), ils permettent d'optimiser un code d'une façon incroyable.

En fait, ce sont des langages conçus dans une optique système et en conséquence, ils ont des caractéristiques en fonction de ça. Evidement, cela les rend particulièrement permissifs et un peu plus "case tête" que d'autres langages, mais pour faire de la programmation système, il n'y a pas mieux. Et c'est justement ça que je trouve passionnant.

Et puis les logiciels conçus en C/C++ sont tellement plus rapides que ceux créés dans n'importe quel langage interprêtés où ceux en pseudo code s'exécutant dans des machines virtuelles.

Le C/C++ produit tout de même le code le plus rapide qui soit (après l'assembleur bien sûr) et c'est justement grâce à ces caractéristiques qui te deplaisent tant.

Maintenant, j'adore aussi Java, PHP, Perl et autres langages de script comme les shells Unix et la commande awk, qui s'utilisent dans d'autres circonstances et qui ne s'opposent pas du tout au C/C++.

Je ne pense pas qu'il s'agisse d'une question d'époque mais plutôt d'un choix à faire en fonction du type de projet.

Il est des projets qu'il ne serais pas concevable à créer dans des langages de plus haut niveau d'abstraction de C/C++ et d'autres au contraire qu'il serait stupide d'envisager avec eux.

Mais certains projets se prêtent aussi bien à l'usage de C/C++ que d'un autre langage comme Java par exemple, et le choix tient uniquement aux préférences de leurs auteurs. Mais dans ces cas là, il est facile de vérifier les différences de vitesse d'exécution que l'on obtiens et on constate alors que le C/C++ à encore un bel avenir devant lui.
dsimon est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/07/2002, 14h31   #9
MelloW
Membre à l'essai
 
Inscription : juin 2002
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 25
Points : 22
Points : 22
Je suis d'accord avec toi, peut-être que je manque d'experience en C/C++... mais cela ne changera pas mon avis -> qu'il est plus interessant/facile de commencé avec des langages d'un plus haut niveau. Les performances m'interessent guere (plutôt l'expressivité d'un langage qui m'interesse)... et vu le nombre de logiciels qui en ont reelement besoin est assez bas, je prefere les langages plus "simple" (-> tres relatif).
MelloW est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2002, 02h37   #10
Musaran
Membre habitué

 
Inscription : juin 2002
Messages : 97
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 97
Points : 106
Points : 106
Commences par le C car rien ne s'y passe "derrière ton dos", c'est mieux pour comprendre.

Quand tu arriveras au structures, gestions d'erreur et/ou allocations/désallocations, alors il sera temps de passer à la surcouche C++ qui gère cela mieux.
__________________
"J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone."-Bjarne Stroustrup
www.stroustrup.com
Musaran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2002, 12h13   #11
Tibo
Candidat au titre de Membre du Club
 
Inscription : juillet 2002
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 15
Points : 12
Points : 12
Envoyer un message via AIM à Tibo Envoyer un message via MSN à Tibo
C'est marrant comment à partir d'une simple question :
Citation:
C ou C++? lequel choisir?
on part tout de suite en vrille sur le débat du meilleur langage, débat qui à mon avis n'a pas lieu d'être car chaque langage répond à des besoins différents : on utilisera pas le C pour du haut niveau mais Java n'a pas sa place dans la prog système.

Le pire est que ce message aurait très bien plus être placé dans un autre sujet.
Tibo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2002, 20h41   #12
laffreuxthomas
Membre éclairé
 
Inscription : mars 2002
Messages : 395
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 395
Points : 364
Points : 364
Pour de la prog système/réseau, moi je conseillerai le C perso... Si c'est pour faire de petits utilitaires c'est le mieux.

Par contre C++ est pas mal en concurrence avec Java. Donc si tu hésites à prendre le C++, hésite aussi à prendre Java.

Jette peut-être un coup d'oeil au Perl (et Python?) aussi... Je ne sais pas ce qu'ils vallent exactement en prog réseau, mais pour de petits utils ils sont sympa.

Thomas
__________________
Creapage.net/blog
laffreuxthomas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2003, 21h29   #13
Jedai
Expert Confirmé Sénior
 
Avatar de Jedai
 
Étudiant
Inscription : avril 2003
Messages : 6 068
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2003
Messages : 6 068
Points : 8 209
Points : 8 209
Envoyer un message via Yahoo à Jedai
Le C ET le C++, sans hésitation, il ne répondent pas aux mêmes besoins, donc ça dépend des tiens !

Sinon c'est bien d'essayer en même temps un langage de plus haut niveau, ou à la limite papilloner entre plusieurs, de façon à éviter de se fixer dans la logique/syntaxe du C/C++. Mais la syntaxe du C est quand même assez formatrice pour la plupart des autres langages pour peu qu'on sache s'adapter.

Je te conseille effectivement comme lAffreuxthomas de t'intéresser aux langages de scripts, et parmi eux les trois 'semi-classiques' Perl, Python et Ruby (qui propose pas mal de truc sympa en provenance du Perl avec une POO (beaucoup) plus poussée). Ces trois langages offrent une polyvalence et une expressivité très appréciable pour des 'petits' programmes.
Jedai est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/06/2003, 14h28   #14
jack69
Membre du Club
 
Inscription : juin 2003
Messages : 55
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 55
Points : 54
Points : 54
Haaaaa, C ou C++, l'eternel debat.....

Citation:
Le C ET le C++, sans hésitation, il ne répondent pas aux mêmes besoins, donc ça dépend des tiens !
Tout a fait d'accord avec toi Jedai.
Tout depend du type de programmation que tu desires faire. Ou de celle qu'on t'imposera....

Ils correspondent a deux philosophies totalement differentes.
Donc a partir de la pourquoi ne pas apprendre les deux ?
jack69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2003, 14h08   #15
Luc Hermitte
Expert Confirmé Sénior

 
Avatar de Luc Hermitte
 
Inscription : août 2003
Messages : 4 522
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 4 522
Points : 5 731
Points : 5 731
D'un point de vue pédagogique, entre le C et le C++ je conseillerai de commencer par le C++. Sans même parler de notions objets, il propose un niveau d'abstraction supplémentaire.

Cela permet de retarder l'étude de sujets complexes (comme les pointeurs et ce qui en découle : tableaux et chaines de caractères) et d'en ignorer des totalement inninterressants (syntaxe de printf, scanf).

Evidemment, le C++ est plus complexe et sa maitrise demandera plus de temps que celle du C ; mais un débutant fera plus de choses avec le C++ qu'avec le C.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média.
Luc Hermitte est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/01/2004, 02h29   #16
mathk
Membre actif
 
Avatar de mathk
 
Inscription : décembre 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 214
Points : 188
Points : 188
Envoyer un message via MSN à mathk
Moi j'ai commencer par c puis c++ et java et j'ai trouver cela coohérent car c++ et quand même trops complexe pour qu'on puisse déveloper du premier coup car les erreurs sont beaucoup plus cacher. Ce que je veut dire c'est que même si ton program marche ca veut pas dire qu'il est corect.
__________________
Si grande est la faiblesse d'une âme, dont la raison est partie!
Ne jamais embrouiller ni abasourdir par une foule d'images le génie intérieur qui réside au fonde de sa poitrine,...
L'ambition est le rfuge de l'échec. "Oscar Wild"
mathk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2004, 12h46   #17
Luc Hermitte
Expert Confirmé Sénior

 
Avatar de Luc Hermitte
 
Inscription : août 2003
Messages : 4 522
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 4 522
Points : 5 731
Points : 5 731
Code :
1
2
3
4
char buf[20];
sprintf(buf, "voilà une petite chaine de caractères");
if (buf == "voilà une petite chaine de caractères")
     printf ("youpi!");
Code :
1
2
3
4
std::string buf;
buf = "voilà une petite chaine de caractères");
if (buf == "voilà une petite chaine de caractères")
     std::cout << "youpi!");
Des erreurs cachées en C++ et pas en C ?

Si vous trouvez que mon exemple en C est trop simple, vous pouvez aussi le remplacer par :
Code :
1
2
3
#define CH "voilà une petite chaine de caractères"
char * buf = (char*) malloc(strlen(CH), 1); 
strcpy(buf, CH);
On ne me fera pas croire que les newbs ne font jamais ce genre d'erreur -- celle du premier exemple est encore bien plus vicieuse en fait je trouve.

Et nombre de fois que j'ai eu à expliquer en TP que non, on n'écrit pas :
Code :
1
2
int * i;
scanf("%d", i);
(remplacer scanf par n'importe quelle fonction qui doit renvoyer quelque chose via ses paramètres) Franchement, j'aurais préféré que l'on se concentre sur des aspects plus importants comme la structure du programme ou les communications avec les dispositifs externes. Mais bon. Ce genre de détails inintéressants font parti des prérequis à savoir pour les programmes les plus basiques en C.

Programmer en C++ (et pas en C avec des classes) nous préserve d'énormément d'erreurs par rapport au C. Par contre celles qui restent sont plutôt de la catégorie "explose en pleine poire".
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média.
Luc Hermitte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2004, 09h55   #18
Tombiche
Invité de passage
 
Inscription : février 2004
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 2
Points : 2
Points : 2
Envoyer un message via ICQ à Tombiche
Par défaut Le C++ : Un langage C enrichi, complexifié.

En 1989, l'apprentissage du langage C était expliqué par un livre rédigé par les créateurs de ce langage (Proche de la gestion mémoire) :
Brian Kerningham and (et) Dennis Ritchie.
Après un mois de travail quotidien à lire le cours et effectuer les exercices de programmation, le livre avait livré son savoir.

Récemment le C ANSI est apparu : Un effort pour universaliser ce langage (De manière comparable : Que l'on soit à Tokyo ou Paris, la grammaire française ne varie pas.).

Début 1990, le langage C++ a fait son apparition. Le système de supervision du réseau Transpac (Technique X.25 de l'architecture en 7 couches OSI) en a bénéficié.

De l'avis de tous les programmeurs, ce langages complète le langage C.
Pour expliquer le lien qui unit ces deux langages :
le C est inclus dans le C++.
En conséquence : Tout programme en langage C est un programme en C++.

Si vous disposez d'un environnement de programmation en C++, apprenez le C (Un C++ restreint), puis les notions propres à l'inovation C++ : Les notions de programmation objet (Héritage, classe...).
Tombiche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2004, 14h25   #19
Luc Hermitte
Expert Confirmé Sénior

 
Avatar de Luc Hermitte
 
Inscription : août 2003
Messages : 4 522
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 4 522
Points : 5 731
Points : 5 731
Non, le C n'est pas un sous-ensemble du C++ -- y a pas de VLA en C++ p.ex.
De plus, pour faire des choses similaires, en C++ on va éviter des continuer de se ballader avec les sources d'erreurs qui viennent du C. On utilise les abstractions dédiées (ou alors on aime débugguer et on n'engage que des stagiaires surdoués ou rigoureux) => string, vectors, passage d'arguments par référence, ...

Bref, le C++ a cessé d'être le "C with classes" il y a longtemps maintenant. Inutile de trainer ce fardeaux et de l'imposer aux débutants qui ont bien d'autres choses intéressants à apprendre lors des premières leçons que la manipulation des pointeurs.

(désolé si je radote)
PS: la lecture de la mini FAQ sur le site de Stroustrup est des plus interressante.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média.
Luc Hermitte est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/02/2004, 18h15   #20
Selenite
Membre confirmé
 
Inscription : août 2003
Messages : 247
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 247
Points : 226
Points : 226
Rien de tel que de bien connaitre le C++ pour apprécier à sa juste valeur le C ;-).

Je pensais aussi que C n'était qu'un sous ensemble du C++. Mais aujourd'hui, les deux languages ont bien des buts différents.
Selenite est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h09.


 
 
 
 
Partenaires

Hébergement Web