Ce qui est important pour commencer, c'est un langage qui permettent de se concentrer sur l'algorithmie dans un premier temps -- on ne parle pas de faire des trucs ludiques pour amuser la galerie, où le modèle "patch, save & run" pour voir bouger 3 sprites s'applique (cf le "cycle universitaire" du public cible).
De fait, C (et pire, assembleur), sont de très mauvais choix. Le C exige de se concentrer beaucoup trop tôt sur des détails : la gestion manuelle de la mémoire. Les abstractions de l'Ada sont bien meilleures sur ce point.
De plus, un prof de C va enseigner à développer au pays magique où les erreurs ça n'existe pas. C'est ça ou montrer des codes totalement incompréhensibles à des débutants qui ne sont pas prêts pour voir comment la gestion des cas dégradés parasite (en C) un code source. De fait, je m'inscris en faux concernant l'argument comme quoi le C enseigne de la rigueur. Il l'exige, certes. Mais ses enseignants ne l'enseignent pas -- et encore moins si le C est présenté en temps que premier langage.
Raymond Chen classe les programmes sur lesquels il fait des revues de code selon l'appartenance évidente à ce pays magique où les erreurs n'existent pas:
http://blogs.msdn.com/b/oldnewthing/...14/352949.aspx (concernant son point sur les exceptions, et le C++, il y a une réponse d'Aaron Lahman, traduite sur dvz par Alexandre Laurent, mais on s'éloigne du sujet). Soit, s'il n'y a pas un if toutes les deux lignes, le code C est faux. C'est ça que vos profs de C vous ont appris à écrire ? Je n'ai personnellement pas souvenir que ce fut le cas des miens. Et je les comprends -- bien qu'on l'on avait déjà officiellement plus d'un an de cours derrière nous. Le C n'est pas fait pour des débutants.
Bref. Un premier langage ? La mode est au python. J'appartiens à la génération BASIC/Pascal, et ma préférence va aux langages compilés, et plutôt Ada pour l'enseignement.
Je ne me prononce pas sur le courant de pensée qui dit qu'il faut enseigner d'abord les langages fonctionnels.
Partager