|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
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 @+ |
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() Inscription : juin 2002 Messages : 25 ![]() |
C++ -> la programmation oriente objet qui permet d'ecrire du code plus clean, plus reutilisable, etc.
|
|
|
01
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 56 ![]() |
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' |
|
|
01
|
|
|
#4 | |
|
Membre à l'essai
![]() Inscription : juin 2002 Messages : 25 ![]() |
Citation:
|
|
|
|
01
|
|
|
#5 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 56 ![]() |
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' |
|
|
00
|
|
|
#6 | |||
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 22 ![]() |
ça, c'est génial !!!
Citation:
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:
Citation:
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. |
|||
|
|
20
|
|
|
#7 | ||
|
Membre à l'essai
![]() Inscription : juin 2002 Messages : 25 ![]() |
Citation:
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é. |
||
|
|
01
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 22 ![]() |
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. |
|
|
10
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : juin 2002 Messages : 25 ![]() |
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).
|
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() ![]() Inscription : juin 2002 Messages : 97 ![]() |
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 |
|
|
00
|
|
|
#11 | |
|
Candidat au titre de Membre du Club
![]() |
C'est marrant comment à partir d'une simple question :
Citation:
Le pire est que ce message aurait très bien plus être placé dans un autre sujet. |
|
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() Inscription : mars 2002 Messages : 395 ![]() |
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 |
|
|
00
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() ![]() |
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. |
|
|
10
|
|
|
#14 | |
|
Membre du Club
![]() Inscription : juin 2003 Messages : 55 ![]() |
Haaaaa, C ou C++, l'eternel debat.....
Citation:
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 ? |
|
|
|
00
|
|
|
#15 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : août 2003 Messages : 4 522 ![]() |
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. |
|
|
01
|
|
|
#16 |
|
Membre actif
![]() |
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" |
|
|
00
|
|
|
#17 | ||||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : août 2003 Messages : 4 522 ![]() |
Code :
Code :
Si vous trouvez que mon exemple en C est trop simple, vous pouvez aussi le remplacer par : Code :
Et nombre de fois que j'ai eu à expliquer en TP que non, on n'écrit pas : (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. |
||||||
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() |
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...). |
|
|
00
|
|
|
#19 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : août 2003 Messages : 4 522 ![]() |
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. |
|
|
01
|
|
|
#20 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 247 ![]() |
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. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com