Apprendre le C/C++/C#

Je voudrai apprendre les langages C mais, déjà, je ne sais pas par lequel il faut commencer … Je voudrai donc savoir par quel langage commencer : le C, le C+, le C++ ou le C# ??? Ensuite, je recherche de très bon site pour apprendre ces langage (pour éviter d’acheter des bouquins) et si possible que ce ne soit pas avec une méthode “barbard” mais assez douce pour que je puisse comprendre quelque chose … En dernier lieu, je voudrai savoir quel bon livre existe (mais pas trop chère), pour apprendre ceci !!

PS : dsl si je me suis trompé de forum mais je ne savais vraiment pas ou mettre ce thread …

[Edité le 2/2/2003 par fuky20]

A ma connaissance en C et C++ à forte proportion de C++/MFC (encore heureux :P)
Mais si je me gourre Glop me corrigera, c’est sûr :wink:

sérieux, les gars, faut arrêter de se battre ! Tous ce que j’ai a dire c’est qui nous sommes pour dire : ce langage est dépassé ! Tous les langages sont utiles de l’assembleur au C#/Java en passant par le Cobol, voila !

J’ai pas trop envie d’en remettre une couche, j’ai juste une question pour Glop : les Unix sont écrit en C, et Windows il est écrit en quoi ?

Rhhooo ce n’est pas une insulte d’être commercial Glopounet. Je l’ai écrit uniquement pour indiquer que tu défends très bien les produits Microsoft (j’avais mis intérêts avant mais je me suis dit “nan nan, il va le prendre de travers encore :P” ), pas spécialement dans ce thread, mais d’une façon générale. Et puis, cela va peut-être t’étonner mais je suis un fervant défenseur des concepts/interfaces Microsoft. Oui oui, ne l’oublions pas, si Microsoft n’avait pas eu cette politique de déploiement et de vulgarisation de “l’informatique”, combien d’entres-nous auraient un PC à la maison aujourd’hui, mmhhh ?

Gloppy :calin:

EDIT : ouupps dérive, dsl mais je me suis permis pensant que le thread était quasi “clos”.

[Edité le 7/2/2003 par Moktar]

[quote]Le C de nos jours a trois utilisations:

  • travailler dans cet environement d’heritage Unix en voulant rester suffisament proche du systeme pour etre oblige de faire du C, ou,
  • dans les systemes embarques ou en fait le C sert surtout a ne pas faire d’assembleur mais ou chaque ligne que l’on tape doit etre assimilee a une ou plusieurs instructions ASM connues par le programmeur
  • dans un but d’apprentissage pour aprehender la gestion memoire sans commencer a taper dans les concepts objet comme on l’a demontre dans ce thread qui fut jusque la tres constructif[/quote]Et les jeux ? :smiley:

Nan nan nan il y a encore trop de trucs à faire avec le C et pis c’est quand même rapide et portable (portable n’est plus un argument, OK)…

Je veux pas me lancer dans un débat, c’est hors de question, mais de mon point de vue le C est encore extrèmement utile, plus que ne le laisse penser ton post.

:remouk

EDIT : erreur dans le quote, petits curieux !

[Edité le 5/2/2003 par remouk]

Je suppose que c’est une interprétation. Cependant, histoire d’en rajouter une couche sur les problèmes de compréhension, mon argumentation visait spécifiquement l’angle « Unix c’est moche parce que c’est tout vieux » pas les considérations qualitatives. Ensuite je précise que c’est pas moi qui est écrit un post de 3km de long en premier, que j’ai pas un tempérament de groupie et que j’ai avec les programmes que j’utilise et même que j’apprécie (OS ou non) que des relations purement platoniques. :smiley:
Je prend bonne note du fait que tu n’as rien contre l’ancienneté des première versions de ce système, et que mon impression de revoir un FUD connu était uniquement dû à ma paranoia galopante :wink:
(Je note quand même au passage que « son developpement a commencé à la fin des années 60 » aurait été plus une formulation plus heureuse « développé dans les années 60 »).

Je vois que je suis pas le seul à lire entre les lignes et à faire de la parano :frowning:
Si ça peut te rassurer, tu as vraisemblablement fait plus de C que moi.

[quote]Me faire traiter de troll n’est pas le meilleur compliement qu’on m’ai fait. Mais si tu me dit que c’est pas une insulte je te crois… ca doit etre sale quand tu commence a insulter les gens alors parceque jusque la on aurait
pu s’y meprendre…[/quote]
Bon je prend bonne note du fait qu’il ne faut pas dire que Mr GloP fait des messages trollesques sous peine de le vexer terriblement (petite nature).

Pour le reste, je suis toujours pas du tout convaincu par ton argumentation, mais effectivement on va arrêter les frais.

Cordialement.

Serieux j’adore quand on me cite et qu’on critique un truc qui a qu’un vague rapport avec ce que je viens de dire. Je n’ai jamais ni critique unix, ni defendu un quelconque autre OS donc Moktar je vois pas ce que « je devrais etre commercial Ms » vient faire la. J’ai critique le C. Point barre. Sinon je suis hyper d’accord avec Moktar et c’est exactement ce que j’avais dit, tout depend de l’environnement. Sur des systemes aux origines anciennes ou embarques le C est indispensable.

Mon post d’origine avait pour but de dire que le C est un langage qui a ete invente pour ecrire un systeme d’exploitation (UNIX) a la fin des annees 60. Que c’etait donc un langage qui resolvait les problemes de cette epoque et que meme si ils sont encore presents aujourd’hui ce ne sont plus les seuls, et surtout que d’autres langage resolvent un jeu de problemes plus large et plus utile a mon gout.

Je n’ai JAMAIS dit que je pensait qu’Unix etait une mauvaise technologie parceque son developpement a commence il y a plus de 30 ans. M’enfin puisque t’en est a lire entre les lignes et a repeter 4 fois la meme chose je crois qu’on a simplement un probleme de comprehension. D’ailleur au contraire si un systeme a plus de 30 ans d’histoire derriere lui c’est plus une preuve de maturite et de stabilite qu’autre chose. M’enfin tu ne m’avais pas demande mon avis sur la question et l’auteur du thread non plus donc je vois pas pourquoi je te le donnerais. Tu devrais suivre la technique ca evite de partir en couille dans les threads comme ca. Mais puisqu’on en est la allons y.

Ce que j’adore c’est la vitesse avec laquelle tu pars dans ton delire « Mheu unix c’est trop bien d’abord, attaque pas mon unix a moi que je l’aime ». Mais moi aussi je l’aime ton Unix/Linux chouchou a toi! Tout ce que j’ai dit c’etait que le C pour faire du systeme, de la crypto et de la secu c’etait principalement une legacy qui vient de unix et de laquelle decoule le mouvement open source. Donc effectivement si tu regarde le code source libre et dispo a ta vue la grande majorite est en C. Il en est autrement dans le domaine du code proprietaire qui represente une enorme part du marche. Je me repete mais apparement tu piges pas :wink:

Le C est predominant dans ces domaines, dans l’open source, parceque justement du code est disponible librement en C qui fait deja tout cela, ou une base pour faire cela. (3eme fois). Maintenant entre refaire toute un OS en C++ (qui a ete envisage plusieurs fois au cours de l’histoire d’unix parceque c’etait surement un meilleur choix au niveau du design) et continuer a faire murir une plate forme stable, basee sur du code disponible le choix a ete fait. Y compris par Linus, en 91 lorsqu’il a repris de ce que tu appelles zero (implementer un unix alors que le code de bsd est librement dispo a la vue de tous j’appelle pas ca zero perso, ca donne deja une sacree base de depart mais je diverge…).

Le fait que le systeme ait continue d’evoluer pendant les 30 annees est une tautologie amusante qui n’a aucun rapport avec l’argument que j’amene. Encore heureux qu’unix evolue (TCP/IP et tout ce que tu veux y rajouter) et reste a la pointe de ce qui se fait de mieux sinon ca ferait longtemps qu’il y aurait autre chose!

J’ai fait de la programmation systeme, de la securite (crypto) et de reseau en C et en d’autre langage puisque j’infere de ta phrase que je n’en aurais pas fait. C’est peut etre pas la bonne route ou aller pour casser mes arguments si on commence a comparer qui a un plus gros zizi et qui a fait plus de ci et de ca…

Ce que j’adore c’est quand tu dis « maintenant quand tu regardes tout les systemes d’exploitations ». Les seuls que toi, tu peux regarder ce sont ceux qui ont ete ecrit sur ou a partir d’une base Unix et qui sont open source. Bien sur qu’ils vont etre tres majoritairement en C, le langage a ete invente pour eux!!! Idem des OS developpes avant que le C++ deviennent une option viable par sa maturite et sa stabilite mais meme ceux la tu ne vois pas le code source…

Il y a un autre monde par dela tout ca qui n’utilise pas forcement du C et qui s’en sort tres bien, mais pas en open source… (pour note et pour repondre a ta question du milieu je n’ai jamais parle d’aucun OS implemente sans utiliser de C du tout, mais enfin encore une fois t’as pas du tout lire…)

Me faire traiter de troll n’est pas le meilleur compliement qu’on m’ai fait. Mais si tu me dit que c’est pas une insulte je te crois… ca doit etre sale quand tu commence a insulter les gens alors parceque jusque la on aurait pu s’y meprendre…

Donc pour resumer 4 pages de discution steriles que monsieur prend comme une attaque de son unix chouchou on va mettre les garde fous de rigueur pour parler a un parano du troll unix:

Le C c’est vieux, ca a 30 ans et ca a ete cree pour faire un OS il y a 30 ans. La programation quel que soit le domaine a evolue dans ses techniques et ses outils vers un modele plus efficace et plus loin de hardware pour realiser des concepts complexes plus facilement (en particulier la programation orientee objet). C n’est pas la seule solution pour ecrire tout ce dont a besoin un OS et certainement pas la meilleure a mon sens. Le fait que tout les Unix, Linux et autre derives soient ecrit en C n’enleve rien a leur valeur intrinseque et releve plus de fidelite historique et d’une « code-base » librement disponible tres majoritairement en C que d’un choix delibere en dehors de toute consideration d’environement. Dans cette optique ecrire de la secu/systeme/whatever sur un OS a base d’unix en C est un choix tout a fait valable et defendable. C’est loin d’etre toujours la solution ideale et surement pas la seule voie.

PS: On va s’arreter la sur ce sujet precis, si tu veux continuer le « debat » ou repondre a des conneries que j’ai pu dire dans mon message merci de la faire par PM.

[Edité le 5/2/2003 par GloP]

HAhahaha les bagarres de langages, ça faisait longtemps… huhuhu… j’essaierais bien le C# moi, mais le problème c’est que dans l’industrie il n’est pas utilisé. Je discutais avec un directeur de département il y a deux semaines, de l’introduction du C# dans le milieu et bien je peux vous dire que ça le gonfle grave ce C# ! quand une boîte a fait un effort de formation et de développement de compétences sur JAVA pendant deux ans, voir arriver un autre biniou ( :wink: ) l’emmerde bien. :cool: Si le rouleau conpresseur Microsoft fait bien son boulot, il va réussir à imposer son environnement. Pour l’heure, des quelques labos de recherche que je connais émanent très peu de demandes de développement en C# et en face il n’y a pas d’offre.

On sent bien que Microsoft souhaite imposer son environnement et prendre les parts de marché à Sun, ce que je trouve vraiment légitime. Si Sun avait pu faire la même chose, il l’aurait fait, c’est très clair. Mais bon, voir une grosse appli reposer sur du tout Microsoft c’est bizarre mais j’ai du mal à l’imaginer :stuck_out_tongue: (pas taper Gloppy). Les choses peuvent évoluer mais Microsoft est quand même pénalisé par sa réputation (vérifié d’ailleurs) de sortir des trucs pas NET NET :smiley: . Même si aujourd’hui cette boîte a vraiment bien évolué et nous sort des produits beaucoup mieux branlés, elle n’est pas encore sorti de l’auberge. C’est rigolo ça me fait penser à la galère de Renault qui, dans les années 70 et sur une période grosso-modo de vingt années, n’a pu se séparer de l’image d’un constructeur qui sort une bagnole non fiable.

C, C++, C#… bah on s’en branle pas mal en fait, il faut utiliser le langage adapté à l’environnement. Pour le moment, je vois mal une carte embarquée faire tourner une plateforme .NET et il faut tenir compte de l’existant industriel, donc le C me semble un passage quasi nécessaire pour être suffisamment à l’aise dans un environnement qui date un peu. Vous imaginez un gars qui souhaite travailler dans les télécoms et dont le CV ne comporte pas la « mention C » ? idem pour tous les domaines se rapprochant du matos (automobile, embarqué, …). Depuis que je développe en C, j’ai vraiment appris énormément sur « ce qui se passe vraiment », on peut être assez proche du CPU et plus généralement de tous les composants ainsi que des principes fondamentaux qui régissent le code déroulé : adressage, empilement, sauvegarde de contexte, interruptions (niveau CPU : masque des registres) (niveau OS : préambule, postambule), organisation de la mémoire … etc.

Les langages « évolués » ou de « haut niveau » ont le gros avantage d’apporter des bibliothèques qui permettent de ne pas réinventer la roue à chaque bout de code et de nous affranchir de toutes idées de gestion mémoire mais là, est-ce réellement un avantage ? je n’ai jamais vu pire code que lorsque le développeur n’a pas à se soucier de la mémoire (code déstructuré au possible), mais bon, ça donne l’illusion de réduire les temps de développement :cool: .

Pour conclure (bah oui il faut bien que j’aille bosser) un passage bien appuyé en C est à mon avis important et donnera des bases qui serviront assurément. Le C#, ou d’autres langages du même style, sont sûrement beaucoup plus confortables et à ne pas négliger.

PS : Je trouve que Glop devrait être commercial chez Microsoft ;), à moins que ce ne soit déjà le cas :cool:

EDIT : Rhhalll j’ai du mal avec le code BB :casstet:

[Edité le 5/2/2003 par Moktar]

[quote][quote]

C’est juste moi, ou il y a gros morceau de viande de troll avariée viens de me passer sous le nez ?[/quote]
Je ne vois pas ce qui te derange c’est pourtant un fait. Les OS bases sur unix et programmes en C retrouvent tous leurs racines chez Bell Labs en 1968-1969 (i.e. dans les anees 60). En fait le C fut invente specifiquement pour ecrire cet OS par les ingenieurs de AT&T Bell Labs (maintenant c’est Lucent que ca s’appelle, la boite avec le rond rouge tout ca). La raison principale etant qu’ils avaient pas de temps CPU sur le mainframe parcequ’ils manquaient d’anciennete dans la boite. Alors ils ont dit : « On va voir ca! On va faire notre propre OS et notre propre langage, tiens voila le C et UNIX ». L’arbre qui peut se trouver la http://www.levenez.com/unix/ retrace l’historique de *nix apres le premier release.
[/quote]
Merci je connais ce site et l’histoire d’UNIX. Le baratin sur l’age d’UNIX, c’est un troll pas frais dont l’origine est parfaitement identifiée (les marketing-droids d’une sympathique PME du logiciel nord-américain, fournisseur d’un système d’exploitation assez répandu :stuck_out_tongue: ) « Built on 30-year old technology », ça vous rappelle rien ?
Mais bon puisqu’apparemment il bouge encore, on va faire bête et carré :
1/ Pour faire remonter son projet aux années 60s, Linus il aurait dû commencer dans les couilles de son père (et encore). J’ai encore jamais vu un spermatozoide coder (c’est vrai, pourtant des fois on voit des trucs bizarre qui font se poser des questions…). Linux est un OS qui a été implenté from stratch à partir de 1991 (avec des concept connus, certes, mais pas de vieux code).
2/ Dire qu’UNIX est un système des années 60 est une tentative piteuse pour le faire passer pour plus vieux qu’il n’est. Il n’a quasiment pas été diffusé avant 1970. Dans le même ordre d’idées, je pourrais dire que NT c’est trop un système des années 80, vu que son développement a démarré vers 88-89.
3/ Ce qu’on considère aujourd’hui comme faisant partie d’un UNIX n’était pas forcément présent au départ, des tas de choses on été rajoutés dans les années suivantes. Il n’y avait pas de support TCP/IP dans la version 1970, un protocole qui n’existait pas à l’époque, pourtant qui pourrait prétendre être un UNIX aujourd’hui sans TCP/IP ? (et il y a des brouettes d’exemples comme ça).
4/ UNIX n’est plus aujourd’hui un système, c’est une référence historique et une marque qui appartient à l’opengroup. Il y a une norme qui est remis à jour de temps (unix95, unix98). Les gens qui payent peuvent avoir une certification et le droit d’utiliser la marque. Je vais pas te faire l’injure de t’expliquer la différence entre une API et l’implémentation, je sais que tu n’en a pas besoin. Dire qu’un système est « vieux » parce qu’il implémente un certain nombre d’interfaces et de capacités dont certaines remontent jusqu’aux années 70 est ridicule. D’ailleurs il y a quelques années, il y a une boite qui avait fait un unix a partir du noyau NT.

Le C est un langage qui a été conçu pour implémenter un système d’exploitation, en faisant du code portable. Et il répond bien au problème. Tous les noyaux récents ont des pans entiers écrits en C, et si quelqu’un démarre un projet d’OS demain, ça sera encore le cas. Le fait de savoir si c’est un bon choix pour implémenter une appli est un autre problème.

[quote]De plus comme il me semble l’avoir demontre le C n’est indispensable ni au systeme, ni a la crypto, ni a la securite reseau. Effectivement si par indispensable tu entend « regarder a du code librement disponible qui fait toute ces choses dans un OS de production » (ouf c’etait un peu long) effectivement le C est indispensable, seul les Unix offrent cette possibilite. C’est pourtant loin d’etre l’ideal a mon sens et c’est pour ca que lorsque je parle je presente les chose comme il se doit:

C’est effectivement une opinion, aucunement une démonstration. Maintenant il me semble (je connais pas ce langage) que le COBOL, c’est fait pour faire des applis de gestion à la base. Donc c’est absolument pas le même but que le C au départ. Maintenant si tu regardes tous les systèmes d’exploitation, leur pile TCP/IP et les libs de crypto, on voit des tas de C à n’en plus finir (dans OpenSSL, y a même de l’asm pour une demi douzaine d’architectures différentes, pourtant leur code C est déjà largement imbitable :wink: ). Donc je dirais que ton opinion, elle est légèrement minoritaire, en particulier parmi les gens qui font vraiment ce genre de programmes…

[quote][quote]
C’est pas parceque Linux ou les autres OS programmes dans les annees 60 sont en C que c’est la seule voie![/quote]Fait verifie.
[/quote]Vérifié ? Hmm et il est où alors le système implémenté sans utiliser du tout de C ?

[quote]Allez va pour te faire plaisir je detaille:
C’est pas parceque Linux ou les autres OS commences dans les annees 60 et developpes dans les trois decenies qui ont suivit sont en C que c’est la seule voie!

La phrase etait un peu orientee je te l’accorde pour avoir un effet un peu plus choc, mais sans raconter de conneries ce qui differencie un troll d’un argument, meme sale. Donc faudrait pas me prendre pour un couillon et avant d’insulter les gens il serait bon de connaitre un peu son histoire et d’avancer des arguments. Sinon le troll n’est pas celui qu’on croit. Defendre les OS bases sur *nix c’est tres bien et je suis le premier a en reconnaitre les qualites encore faut il savoir ouvrir ses petits yeux.

[Edité le 3/2/2003 par GloP][/quote]J’ai encore insulté personne.

Donc pour resume, et si j’ai bien compris :
y a pas de langage parfait, tout depend du programmeur et de la tache a accomplir…

(mais si le C est plus egal que les autres :stuck_out_tongue: )

(et entre nous, pour ecrire du traitement de donne avec interfacage SQL et tout le tintouins, j’ai pas encore trouver plus simple que le COBOL, mais bon, en meme temps, c’est moi, et je n’ai jamais utiliser windev :wink: )

(et j’aurais tout plein de truc a dire sur l’algo en C, et tout ce que j’ai pu apprendre en en faisant, mais c’est une autre histoire, et surtout j’ai super la flemme :stuck_out_tongue: )

Au niveau de la secu reseau : La plus part des exploits que tu apprend a un niveau de debutant disons, sont des exploits de buffer overflow ou de failles dans le malloc. Des failles intimement liees a la gestion memoire facon C. Je penses que dans toute decouverte d’un domain, vaut mieux commencer a la base, c mon avis.
Au niveau systeme : je suis 100% d’accord avec toi, je parlais essentiellement des systemes *nix.
Au niveau de la crypto : je dirai que quand tu code un algo de crypto, ton souci premier est la recherche de la rapidité dans un 1er temps, et de code conci dans un second temps. Je ne pourrai pas te dire si le C++ va etre plus ou moins rapide, je n’en sais strictement rien, mais je suis persuadé que le code sera plus conci en C, enfin j’ai ptet tord… (j’y travail d’ailleurs, cf rijndael :))
En tout cas, chaque language a son application. Le C est encore tres utile dans enormement de domaines, je trouves dommage de passer a coté.

Petite note sur le Caml : tres utilise en intelligence artificielle car optimisé pour les fonctions recurcives et la construction d’arbres de solutions. C’est assez marrant a coder je trouves d’ailleurs. Ca change quoi :slight_smile:

rahhh, l"ADA… Moi la je viens de commencer et bien… j’en prends pour 2 ans avant de faire autre chose…

Langage de deurm :smiley:
Mais ca a le mérite d’être simple tout en étant assez proche du C/C++

Sinon moi je conseillerais de commencer par C++ à cause de l’orientation objet puis ensuite C… Le C # j’ai pas tenté personnellement…

Merci merci mon cher Glop!
Je m’en vais de ce pas installer le framework et me documenter sur la chose… et au passage, ça me donnera une raison de jeter un coup d’oeil à ASP .Net :smiley: (oui oui je sais que c’est pas la mem chose mais quand mem :wink: , quand on aime, on compte pas :smiley: )

Non tu as tout a fait raison. Le C# est le langage phare choisit par MS pour programmer sur la plate forme .net et la lib std s’en ressent fortement. Ce n’est pas le seul et c’est un des enormes avantages de .Net c’est qu’on peut programmer de maniere transparente dans un peu plus de 23 langages je crois et heriter/utiliser les classes comme si elles avaient ete faites dans le langage que l’on est en train d’utiliser.

Aujourd’hui C# est indisociable de la plate forme .Net et serieusement c’est pas un handicap du tout. L’API etant vraiment, a mon gout, superbe. Maintenant a toi d’essayer et de t’y mettre mais serieusement je ne pense pas que tu sois decu. Le seul handicap, pour faire tourner tes progs les gens doivent avoir le framework (21 megs) d’installe et pour l’instant tout le monde ne l’a pas. Mais bon, c’est le futut de la prog sous windows et MS va tout faire pour que tout le monde (sous windows) l’ai le plus rapidement possible. Et sous linux il y a Mono qui se devel rapidement :smiley:

Glop> Merci pour ces quelques éclaircissements sur le C# :smiley:
Je craignais en effet que ce soit un language un peu « batard » et pas standard du tout, mais me voilà rassuré… et du coup ça me tente :smiley: !

Encore une petite question: pour le C#, je me trompe ou le compilo fait partie, entre autre, du Framework .Net?

ZGoblin>

Tout à fait d’accord, je viens de commencer aussi le Cobol en cours (faut bien :frowning: ) et… je pleure :smiley: ! Où qu’ils sont mes beaux objets? :wink:

Je ne vois pas ce qui te derange c’est pourtant un fait. Les OS bases sur unix et programmes en C retrouvent tous leurs racines chez Bell Labs en 1968-1969 (i.e. dans les anees 60). En fait le C fut invente specifiquement pour ecrire cet OS par les ingenieurs de AT&T Bell Labs (maintenant c’est Lucent que ca s’appelle, la boite avec le rond rouge tout ca). La raison principale etant qu’ils avaient pas de temps CPU sur le mainframe parcequ’ils manquaient d’anciennete dans la boite. Alors ils ont dit : “On va voir ca! On va faire notre propre OS et notre propre langage, tiens voila le C et UNIX”. L’arbre qui peut se trouver la http://www.levenez.com/unix/ retrace l’historique de *nix apres le premier release.

Edit: D’ailleurs il est super interessant de noter que si Unix est Open Source c’est uniquement parceque developpe par une societe qui avait le monopole et qui etait interdite de developper et vendre des ordinateurs (mais pas de devel des trucs en interne). L’accord avec le DOJ Americain fut donc de filer le code a un universite, celle de Berkley et voila qu’apparait BSD, la premiere distrib (Berkeley Standard Distribution)… On comprend pourquoi certains voudraient repeter l’histoire en demandant la distribution du code de Windows.

A peu pres tout les OS plus recent qui ont voulu s’affranchir a 95% de cette base ont ete jusqu’ici programmes dans un mix de C++ (tres majoritairement), de C et d’assembleur. On peut citer la famille NT, BeOS et a peu pres tout les OS developpes de zero apres 1985. Le regne du C sur la programation systeme est purement une histoire d’heritage (legacy).

Le C de nos jours a trois utilisations:

  • travailler dans cet environement d’heritage Unix en voulant rester suffisament proche du systeme pour etre oblige de faire du C, ou,
  • dans les systemes embarques ou en fait le C sert surtout a ne pas faire d’assembleur mais ou chaque ligne que l’on tape doit etre assimilee a une ou plusieurs instructions ASM connues par le programmeur
  • dans un but d’apprentissage pour aprehender la gestion memoire sans commencer a taper dans les concepts objet comme on l’a demontre dans ce thread qui fut jusque la tres constructif

De plus comme il me semble l’avoir demontre le C n’est indispensable ni au systeme, ni a la crypto, ni a la securite reseau. Effectivement si par indispensable tu entend “regarder a du code librement disponible qui fait toute ces choses dans un OS de production” (ouf c’etait un peu long) effectivement le C est indispensable, seul les Unix offrent cette possibilite. C’est pourtant loin d’etre l’ideal a mon sens et c’est pour ca que lorsque je parle je presente les chose comme il se doit:

[quote]Le C est aujourd’hui a mon gout, tout aussi depasse que le COBOL. Et mes cheveux se herissent sur ma tete quand je lit des trucs comme “le C est indispensable pour faire du systeme, de la crypto ou de la securite reseau”.[/quote]Opinion.

[quote]C’est pas parceque Linux ou les autres OS programmes dans les annees 60 sont en C que c’est la seule voie![/quote]Fait verifie.

Allez va pour te faire plaisir je detaille:
C’est pas parceque Linux ou les autres OS commences dans les annees 60 et developpes dans les trois decenies qui ont suivit sont en C que c’est la seule voie!

La phrase etait un peu orientee je te l’accorde pour avoir un effet un peu plus choc, mais sans raconter de conneries ce qui differencie un troll d’un argument, meme sale. Donc faudrait pas me prendre pour un couillon et avant d’insulter les gens il serait bon de connaitre un peu son histoire et d’avancer des arguments. Sinon le troll n’est pas celui qu’on croit. Defendre les OS bases sur *nix c’est tres bien et je suis le premier a en reconnaitre les qualites encore faut il savoir ouvrir ses petits yeux.

[Edité le 3/2/2003 par GloP]

C’est juste moi, ou il y a gros morceau de viande de troll avariée viens de me passer sous le nez ?

[quote]et l’ADA personne parle de l’ADA :P[/quote]Et personne n’a parle du LISP, langage utilise notament dans (X)Emacs (mais pas vraiment ailleurs ;))

Et le Prolog!! Personne n’en parle!!
Autant je n’arrive pas a reflechir en objet (peut etre parce que la syntaxe C et C++ est similaire, et je reprend les reflexes C), autant je me suis bien amuse avec Prolog (mais bon, ca n’a rien a voir avec la programmation classique… :D)

Pour les fans d’anime, il y a dans Lain un plan avec un programme en LISP. C’etait pour la petite histoire :wink:

LoneWolf
Y a du langage C aussi, mais c’est deja plus connu :);;

[quote]Certes c’est un apprentissage par l’erreur tres constructif pour ce qui est de la gestion memoire d’un ordinateur mais on n’est pas oblige de l’ignorer en codant en objet, meme avec un garbage collector. Je suis d’accord qu’un petit cours de C pour commencer et se fouttre bien la gueule dans ces problemes est probablement une bonne idee. Mais pas de la a maitriser le langage ou a en assimiler les concepts. Se faire dechirer quatre ou cinq seg fault, arriver a bien saisir le concept de pointeur, comprendre deux ou trois fuites memoires, et hop! On passe a autre chose.

Enfin c’est mon avis et je le partage ;)[/quote]Et bien on est donc d’accord :slight_smile: Je ne parlais pas de maîtriser le C, jsute d’y passer pour bien saisir des concepts fondamentaux. C’est pourquoi je disais qu’en s’y mettant tranquilement maintenant, dès avril, il pourrait passer à C# pour aborder les choses intéressantes.

Ah oui, le C++ est mort après une vie fort honorable, laissons-le désormais reposer en paix :wink:

Après tous ce que j’ai entendu, j’aimerai apporter mon expérience. Je suis en deuxième année d’IUT et je programme en : C/C++/Java/C#/Cobol, je n’ai pas choisi un langage mais je les utilise tous en choisissant à chaque projet, celui qui convient le mieux pour y venir à bout.

En ce moment, je suis sur un Jeux en OpenGL et là, les meilleurs langages sont C/C++, tu peux faire la même choses avec il y juste l’approche Objet qui diffère.
Le C est aussi utilisé pour tous ce qui est très proche de matos : développement des kernel, drivers.

A part les jeux et la prog système (réseau, la BDD) oublie le C/C++, trop chiant, préfère le Java/C# : Java parce qu’à l’IUT de Lille1 on ne programme pour dire qu’en ce langage dans tous les domaines et C# parce que je voulais voir ce que l’on pouvait faire avec.

Maintenant le COBOL, oublie ce langage de merde, il ne sert qu’à développer des applications de gestions, on ne s’en sert que sur AS/400. (Demain, y’a controle TP de COBOL et après je ne ferais plus jamais de COBOL de ma vie !!! youpi :slight_smile: )

ADA/Pascal : Aucune utilité

Voila c’était juste pour dire que chaque langage à un domaine de prédilection, maintenant si tu veux apprendre je te conseille le C#/Java, tu n’auras pas de problème avec de segfault, de fuite mémoire,… Et ca va bcp plus vite de développer dans ces langages.