Envoyé par Jean-Marc.Bourguet
en fait, je parlais du systemC comme un exemple de langage "haut niveau" sur lequel on fait de l'analyse statique
Bah, il mse semblait qu'il y en avaiit tout de même quelque uns, notemment en info indus, mais n'étant pas un expert je n'en dirait pas plusEnvoyé par Gnux
Bah, disons que j'ai de gros doutes là dessus, mais est ce que ans 100 ans on utilisera encore du C ? Difficille de répondre à cette question... Mais on aura toujours besoin d'un langage de niveau disons intermédiaire (dans le sens où le C est tout de même bien plus proche de la machine que le Java) et c'est possible que même dans l'avenir cela reste le langage C.Envoyé par Gnux
'fin bref, on est tous d'accord pour dire que le C a encore un bel avenir devant lui
"En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
Application :
ainsi qu'à regarder la avant de poser une question.
La rubrique Perl recrute, contactez-moi.
l'un comme l'autre sont intéressants et peuvent se justifier suivant les applications. Pour moi, connaître les deux est assez indispensable. Mais ce qui est le plus important, c'est de connaître la différence entre le C et le C++.
Contrairement à ce que la plus part de vous croivent, C++ ne sert pas seulement à créer des jeux , c'est vrai qu'il est le langage parfait pour ça, mais il peut faire plus, C++ est différent à C, par sa syntaxe claire et sa simplicité.
Je me suis vu dans une glace hier, et c'était la première fois!
La nouvelle c'est que je ne suis que moitié homme, l'autre moitié et hors service!
PS: La partition de mon corps se fait verticalement!!
Discussion passionnante, vraiment. Je vais donner mon avis totalement subjectif. Oui, subjectif : autant on peut trouver des qualités comparatives objectives pour chaque langage en termes de types d'applications, autant en terme d'apprentissage c'est beaucoup plus flou.
Ni le C ni le C++ n'étant des langages d'apprentissage, je vais partir du principe que strategos a déjà les bases d'algorithmique.
Mon histoire personnelle avec différents langages :
J'avais déjà appris à programmer en Basic, en Pascal et en CAML (pour lequel je garde une tendresse particulière) avant d'aborder les langages dont il est question ici.
Et on m'a fait d'abord étudier le C. Langage simple. Enfin, simple... Dans le sens où il a relativement peu d'instructions natives. Notre prof nous l'avait décrit comme un langage de "moyen niveau", à savoir assez proche du bas niveau pour qu'on doive en tenir compte mais avec une possibilité de s'en abstraire quelque peu.
Les pointeurs. Ah, les pointeurs ! Au risque de paraître prétentieux, la notion de pointeur ne m'a jamais posé la moindre difficulté. Je ne sais pas pourquoi, peut-être les ai-je tout de suite compris d'une façon efficace (genre "un pointeur ne contient pas d'information, mais indique où se trouve une information", un peu comme une entrée d'un index d'encyclopédie en n volumes - je ne sais plus, c'est loin maintenant). Mais le concept de pointeur, à mon avis, introduit doucement à la notion de mémoire et de l'occupation de celle-ci. Ce n'est pas un concept très compliqué à manier, à mon avis, mais il demande de rester bien concentré pour ainsi dire, sous peine de s'emmêler les pinceaux.
Ensuite, on m'a fait étudier le C++. Moins permissif, c'est certain. D'ailleurs, je trouve l'argument de Gnux selon lequel, en apprenant le C++ d'abord, on évite de prendre certaines mauvaises habitudes du C, pas inintéressant (il m'avait traversé l'esprit en lisant les premiers posts). Personnellement, je l'estime erroné, cependant. À condition d'avoir eu l'occasion d'expérimenter et de commettre suffisemment d'erreurs dans un environnement sécurisé, la grande permissivité du C enseigne à la dure d'importantes leçons de rigueur qui sont utiles dans tous les domaines de programmation, y compris la POO. De plus, même si le C++ n'est plus tout à fait seulement un sur-ensemble du C, la syntaxe du C en reste la base principale. Et puis, la famille syntaxique du C est vaste.
Il y a des raisonnements qui s'appliquent au C et qui ne s'appliquent pas au C++ et vice-versa, mais j'ai intuitivement l'impression que, si l'on note R(<nom du langage>) l'ensemble des raisonnements applicables à un langage et Cardinal(<ensemble>) le cardinal d'un ensemble, on a : Cardinal(R(C++)-R(C))>Cardinal(R(C)-R(C++)), ce qui peut rendre plus difficile de bien comprendre le C après avoir appris le C++ que l'inverse.
Et, pour l'anecdote, je suis en train d'essayer de réapprendre le C++ après avoir appris et pratiqué le Java : pas simple de faire la part de deux langages se ressemblant autant mais ayant autant de différences fondamentales.
There's nothing like $HOME!
Salut
Je pense que ces 2 langages ont l'avantage d'avoir une syntaxe passe partout.
Tu retrouveras dans bien d'autre langage la même syntaxe.
Comme tu mentionnes que tu debutes, je pense que les 2 langages s'equivalent vue que je ne pense pas que tu affrontes le concept orienté objet de si tot;
mais si tu envisages le faire bientot attaque directement C++,comme ca il n'y aura pas de rupture dans ton apprentissage.
Trés Cordialement
salut je pense
C++ c'est la programmation oriente objet
c'est mieux
bonne chance
Non. Ce n'est pas nécessaire. Très loin de là.Envoyé par nonosa
Blog|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. Et de toutes façons, ma BAL sur dvpz est pleine...
Envoyé par nonosa
NON c'est un LANGAGE objet , nuance....
La programmation orientée objet, tu peux la faire en assembleur si tu veux, en Fortran, en C, en n'importe quel langage informatique (et c'est ce qui se faisait avant C++)..
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Salut,
En complément à ce que Schmorgluck disait, j'ajouterais que apprendre
un langage seul ne suffit pas et surtout lorsqu'on débute. Outre le fait du
choix d'un langage, l'algorithmique, les mathématiques et d'autres branches
sont aussi indispensable. Car les langages ne sont qu'un moyen et non une
solution. Ce serait comme dire "faut-il parler français ou québécois
(les moyens) pour faire passer un message (la solution)?".
Cela est aussi valable pour les autres discussions du type
"langage x mieux que y?".
Ceci n'est bien sur valable que pour un apprentissage à finalité professionnelle.
Dans ce cas, le langage choisi n'est qu'un moyen de mettre en pratique une
théorie. Pour renforcer cette théorie, la pratique sera nécessaire également
pour pouvoir comprendre les mécanismes de compilations, "débuggages",
etc...
Ainsi, par rapport au c++, avec le c tu auras la possibilité de faire tout ...
et n'importe quoi. Ce qui t'obligeras à prendre des bonnes habitudes de
programmation car tu en comprendras le fonctionnement intrinsèque et
t'éviteras de passer plusieurs jours à traquer les bugs et/ou te noyer dans le
code.
Pour ce qui est unix/linux, si je me souviens, je pense qu'on utilise la norme
ANSI (qui est aussi repris par certains compilateurs sous windows, cf Borland).
On verra alors que certaines primitives ne sont disponible que pour une
plateforme donnée (il faudrait que je me replonge dans la doc pour en citer
quelque-uns). Notons au passage que les compilateurs Microsoft n'adhèrent
pas à cette norme (je ne sais pas si c'est toujours le cas).
Autrement si c'est pour passer le temps, il vaut mieux choisir des langages
plus évolués genre vb (windows) ou python (disponible sur la plupart des
plate-formes).
Cela t'éviteras bien des déboires qui risquent au final de te dégouter de la
programmation.
ANSI est un institut de standardisation américain. Parler ainsi de "norme ANSI" tout court ne veut pas dire grande chose. Ils doivent avoir normalisé un paquet de choses différentes sans grand rapport avec le C ou le C++.
C et C++ sont normalisés chez ANSI et ISO. Les compilos microsoft ne supportent pas le C99 il me semble. VC2005 se débrouille plutôt bien pour le C++98 (et le 03) -- limite mieux que les GCC 3.x qui sont les seuls installables en trois clics sous windows (les 4.x n'ont pas encore été finalisés pour être facilement distribués avec les distributions MingW et cygwin). Jusqu'à la sortie récente des versions Turbo, Borland était à la bourre en matière de support du C++ ; je ne suis pas sûr qu'il y ait eu beaucoup de progès en fait avec les dernières versions. Après, il y a d'autres compilos qui se débrouillent très très bien (ceux qui encapsulent EDG -> intel, comeau, ...)
J'ai l'impression que tu voulais parler de la norme POSIX. Dont il existe plusieurs versions, et parfois des petites variations entre les diverses implémentations, de ce que j'ai suivi.
Blog|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. Et de toutes façons, ma BAL sur dvpz est pleine...
ANSI C et POSIX sont des standards.
Mais je n'entrerais pas dans les détails car ce n'est pas le but de cette
discussion à savoir choisir c ou c++.
A en croire les mecs du forum C, Microsoft aurait fait savoir qu'il ne supporterait plus le C99.Envoyé par Luc Hermitte
Je me demande jusqu'à quel point ça leur réussira de vérouiller (ou d'essayer de vérouiller) des marchés de la sorte...
When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.
Que l'on parle de C, de C++, de Java, etc...., il faut choisir un langage en fonction du besoin exprimé pour réaliser un projet parce que certains langages sont mieux que d'autres dans certains domaines, mais après c'est un choix dès qu'on se sent à l'aise, j'ai des bases en C, C++, Java, PHP, VB, Python, et je choisis un langage en fonction de ce que je veux faire.
Pour en revenir au débat "C ou C++", va voir un peu des tutoriels sur ces langages et regarde leur utilité dans un certain domaine. Après je ne vois pas l'intérêt de te faire préférer un certain langage plutôt qu'un autre. Apprends les deux !
Ouais... et surtout le Français pour certains (mais dans ce thread il n'y a pas de problèmes !).
When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.
il faut d'abord maîtrisé le c car c'est la base de tout
D'accord avec le début de ta nuance mais... la programmation orientée objet ne peux pas être intégralement reprise avec les langages que tu cites.
Certes, avec le type générique void, on peu approcher du polymorphisme, mais pas de la généricité.
Si la généricité est intrinsèque à l'assembleur (il se fout des types, tout n'est qu'une adresse), il est surement très long d'implémenter l'héritage. Note bien qu'il est évident qu'on y arrive puisque le C++ compile
On peut certes ré implémenter intégralement l'objet en assembleur, mais ce n'est pas vrai des autres langages procéduraux. Bien qu'avec de la pratique, une bonne connaissance et de l'imagination, on s'en approche.
Envoyé par souviron34
je te conseille plus tot de commencer par le c.En effet la programmation des protocoles reseau se fait en general en c (tu pourra utiliser le x-kernel).De plus le language c etant tres intimement lié au systeme linux,tu pourra tres rapidement ecrit des programmes systemes de tres haut niveau.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager