apprendre avec de bonnes habitudes : Ada ou Pascal ? - Divers - Programmation
Marsh Posté le 07-11-2004 à 09:01:28
pq ne restes-tu pas sur le python pour commencer ? c'est un excellent language pédagogique et ça permet de se familiariser rapidement à la programmation orientée objet...
Marsh Posté le 07-11-2004 à 09:24:54
Entre ADA et PASCAl je dirais ADA, car PASCAL sorti de delphi tu vas pas loin.
ADA est très strict c'est pour ça qu'il est recommandé pour les débutants. Mais si t'es seul, Python effectivement est peut être mieux. Ca me parraît plus simple à prendre en main, les outils etc...
Marsh Posté le 07-11-2004 à 11:14:42
HelloWorld a écrit : car PASCAL sorti de delphi tu vas pas loin. |
oui mais Delphi est quand même assez répandu, y compris en entreprise (bon, ok, c'est rien par rapport au C++, mais quand même...) Et par après le passage de Delphi à du C++ n'est pas spécialement compliqué je pense.
Marsh Posté le 07-11-2004 à 12:12:18
HelloWorld a écrit : Entre ADA et PASCAl je dirais ADA, car PASCAL sorti de delphi tu vas pas loin. |
tout d'abord merci de vos réponses
pour le python c'est vrai qu'il est bien mais je souhaite m'attaquer comme je l'ai déjà dit à quelque chose de plus puissant et consistant (language compilé et non interprété)
le passage de ADA à un autre language est-il difficil (syntaxe, façon de fonctionner)(par exemple pour passer au C ou au C++ par la suite) ?
et combien de temps pensez vous que cela pourrait prendre pour maitriser les bonnes bases et passer à autre chose (je ne vois ce language de départ que comme une passerelle pour passer à autre chose )?
Marsh Posté le 07-11-2004 à 13:17:50
et le delphi, apparemment c'est aussi puissant que le C++ mais moins utilisé, ça donnerait quoi pour apprendre ?
Marsh Posté le 07-11-2004 à 13:29:15
si tu maitrise bien Python, tu peut sauter sur le C ou le C++ direct :|
ADA/PASCAl c'est :-/
Marsh Posté le 07-11-2004 à 13:32:39
Joel F a écrit : si tu maitrise bien Python, tu peut sauter sur le C ou le C++ direct :| |
le truc c'est que je ne maitrise pas python, je n'en ai fait qu'un peu
mais je pense que je peut-etre me pencher vers le Pascal qui semble avoir beaucoup plus de ressources et une communauté plus active que l'ada pour une étude autodidacte
la question est maintenant quel compilateur choisir ?
et avec quel cour ?
Marsh Posté le 07-11-2004 à 13:37:07
bah j'ai télécharger mini pascal et ca à l'air pas mal, c'est une ide gratuite pour free pascal
Marsh Posté le 07-11-2004 à 13:43:00
Bah, t'es jeune, alors je te conseille de faire de l'ada (via gnat) et du Pascal sous Delphi.
Assez rapidement, tu verras si tu souhaites pousser sur la partie Objet et la partie visuelle (donc, Delphi), ou la partie typage fort, code générique, tâches et packages (donc, Ada).
Marsh Posté le 07-11-2004 à 15:58:15
Personnellement (je précise que c'est mon avis inutile de s'enflammer):
ADA: sur méga daube improductive réservé à la masturbation intellectuelle et à 500 lignes pour une déclaration obligatoirement mal placée
Pascal: complètement dépassé, n'est enseigné que par les enseignants chercheurs fanatiques
Python: absolument excellent, moderne et très puissant (je vois pas ce que tu veux dire en parlant de plus puissant, que ça soit compilé ou pas n'y change rien: ce qui change ce sont les performances)
Mon conseil: tu appronfondis Python, jusqu'aux 100%, et tu passes au C++ (pas besoin de passer par la case C...) et à l'Assembleur (dans l'ordre de ton choix). Avec ça tu connaitras:
- un langage de script moderne et puissant (à mon goût le meilleur)
- un langage OOP performant et le plus puissant existant (enfin je crois), donc une parfaite connaissance de la majorité des concepts OOP
- un langage bas-niveau, pour savoir réellement ce qui se passe et éviter les questions que tous les gens qui n'en ont jamais fait se posent (style: je comprends pas le **& blablabla), et éventuellement cas extrême pour optimiser.
Tu es alors prêt à affronter quasiment tout autre langage en un temps record.
Voilà mon opinion.
Marsh Posté le 07-11-2004 à 16:16:39
g012 > Quand tu parles du langage OOP qui contient la majorité des concepts, tu ne penses pas à C++ j'espère?
Marsh Posté le 07-11-2004 à 16:21:07
si: la majorité des concepts implémentés, et de manière productive s'entend. Il est évident qu'il y en a encore des tonnes non implémentés.
Marsh Posté le 07-11-2004 à 21:03:07
g012> faut être un peu plus nuancé dans la vie. C'est pas parce que Python répond parfaitement à tes besoins et que t'as eu une mauvaise expérience avec l'ADA que Python is the best et ADA c'est de le "mega daube improductive". Chaque langage a ses domaines de prédilection.
Un argument qui m'a toujours laissé perplexe en informatique en général (pas seulement vis à vis des langages) : "puissance". C'est quoi un langage puissant ?
antp> oui mais Delphi c'est pas un langage mais un IDE. T'es lié à Borland. C'est ça qui me gêne pour débuter. C'est comme VB.
L'avantage de Python vs ADA/Pascal est que sa syntaxe est plus proche du C++ si tu vises C++ après. Cela dit voir autre chose c'est pas plus mal.
Moi ADA sur le coup on trouvait ça bien merdique. J'ai commencé à l'apprécier quand je suis passé à autre chose (tiens ça me donne une idée pour ma signature). Ce qui nous frustrais je pense c'est le manque de ressources/outils par rapport au ténors. Y'a qu'à voir ici : y'a pas souvent de questions sur l'ADA...
Marsh Posté le 07-11-2004 à 21:34:43
HelloWorld a écrit : |
y a Freepascal
Bah sinon faire du Delphi c'est un peu comme bosser avec Visual C++ et les MFC : on est aussi lié à une architecture et un IDE.
Comme je l'ai dit plus haut le passage de Delphi au C++ n'est pas spécialement compliqué, c'est surtout la syntaxe et les mot clé qui changent L'avantage de Delphi face au C++ c'est que le langage est plus strict et typé, donc on peut faire moins de bêtises, je trouve que ça oblige à prendre l'habitude d'écrire plus proprement... (d'un autre côté l'absence de templates oblige à faire souvent des casts )
Marsh Posté le 07-11-2004 à 21:53:01
g012 a écrit : |
Plus personne ne fait de Pascal, tout comme plus personne ne fait de "C with Classes".
Le langage Pascal Object (qui a commencé avec Turbo Pascal 5.5, et dont Delphi est la dernière incarnation) a tout d'un langage moderne, avec même plein de trucs que C++ n'a pas: introspection, properties, mapping propre vers COM, packages (meuh non, un namespace n'est pas un package), interfaces, et tout l'intérêt de la VCL.
Bref, nickel pour démarrer.
Marsh Posté le 07-11-2004 à 21:57:18
HelloWorld a écrit : |
oué, juste une remarque : la syntaxe, on s'en fout, c'est pas ça qui compte. Rentrer dans une nouvelle syntaxe, c'est 2 jours de galère, rentrer dans une nouvelle sémantique, ce sont des mois de galère.
Marsh Posté le 08-11-2004 à 00:27:56
Citation : faut être un peu plus nuancé dans la vie |
J'ai pourtant bien insisté sur le fait que c'est que je pensais de mon expérience... je veux pas lancer un vieux débat éternel. J'aime pas du tout l'Ada. Le Pascal non plus. C'est tout. C'est mon avis. Je comprends que qqn puisse aimer, là n'est pas la question. Tu peux considérer mon avis comme un vote. Ça n'attend pas de réponse.
Citation : C'est quoi un langage puissant ? |
La puissance d'un langage c'est les outils de code qu'il met à ta disposition afin d'améliorer ta vitesse de production de code, en écrivant peu (tout en produisant un code performant). Tu peux considérer Java puissant grâce à son énorme API. Pour moi, C++ est entre autres puissant sur les structures de programmation offertes.
Exemple: C++ est plus puissant sur l'héritage que Java.
Citation : Le langage Pascal Object (qui a commencé avec Turbo Pascal 5.5, et dont Delphi est la dernière incarnation) a tout d'un langage moderne, avec même plein de trucs que C++ n'a pas: introspection, properties, mapping propre vers COM, packages (meuh non, un namespace n'est pas un package), interfaces, et tout l'intérêt de la VCL. |
Et Python ? Moi je pense que c'est de la redondance d'apprendre Pascal entre Python et C++ (puisqu'il prévoit de l'apprendre à terme). Apprendre Pascal que en cas de besoin. Mais pour moi, Pascal (même objet) reste le fortran des langages modernes (comme Python).
Au sujet de Delphi, y'a Boa constructor pour le Python qui s'y apparente (enfin c'est que le début... et je sais pas s'ils vont finir).
Reste que ce que je proposais d'apprendre est selon moi le moyen le plus rapide pour pouvoir être efficace après sur quasi n'importe quel langage.
Marsh Posté le 08-11-2004 à 00:35:50
g012 a écrit : Reste que ce que je proposais d'apprendre est selon moi le moyen le plus rapide de pouvoir être efficace après sur quasi n'importe quel langage. |
non, là tu te fais des illusions. Certes C++ englobe un certain nombre de paradigmes, mais ce n'est le point de départ d'aucun d'entre eux (à part le segmentation fault). C'est par l'imersion dans des langages fortement teintés qu'on se rend compte que cette manière de voir les choses existe. Et c'est en navigant dans un certain nombre de langage très différent, qu'on s'améliore globalement.
Marsh Posté le 08-11-2004 à 03:50:12
Citation : Bah sinon faire du Delphi c'est un peu comme bosser avec Visual C++ et les MFC : on est aussi lié à une architecture et un IDE. |
On est d'accord. Mais il veut apprendre à programmer, en général...
Citation : La puissance d'un langage c'est les outils de code qu'il met à ta disposition afin d'améliorer ta vitesse de production de code, en écrivant peu (tout en produisant un code performant). Tu peux considérer Java puissant grâce à son énorme API. Pour moi, C++ est entre autres puissant sur les structures de programmation offertes. |
Ce n'est pas les caractéristiques de quelque chose qui détermine si c'est puissant ou pas, mais ce que on peut en faire.
L'héritage en C++ est plus souple qu'en Java, c'est pas ce qui le rend plus puissant pour autant.
Par contre qu'un langage permette l'héritage et pas l'autre déjà on peut se prononcer.
Mais je vais reformuler : la puissance à mon avis n'est pas un argument valide. Parce que c'est subjectif. Tout langage permet de faire des choses plus facilement que les autres. Donc tous sont puissants. Un mec qui veut écrire une fonction mathématique performante va considérer l'assembleur comme puissant, un mec qui veut écrire des scripts va considérer le Python comme puissant.
Marsh Posté le 08-11-2004 à 10:12:33
Je ne suis pas d'accord. Si j'optimise mon algo en asm pour des raisons de performances, je considère l'asm performant mais pas puissant. Vraiment je pense que la puissance c'est la rapidité de coding. Mais on dérive vraiment là.
Marsh Posté le 08-11-2004 à 11:40:30
La puissance c'est subjectif. Y'en a qui vont considérer puissant car performant.
http://www.google.fr/search?hl=fr& [...] sant&meta=
Marsh Posté le 08-11-2004 à 11:43:43
Citation : J'ai déjà fait un tout petit peu de python mais je désirais me tourner vers un language plus consistant. |
et t'as que 16 ans !
Marsh Posté le 08-11-2004 à 20:49:17
merci à tous pour toutes vos réponses , j'ai donc choisi le pascal pour débuter, avec freepascal et son IDE lazarus.
Je pense maintenant qu'au niveau des cours à suivre il vaut mieux que je fasse du pascal non orienté objet et que j'en comprenne un peu les facettes pour ensuite passer au pascal objet et bien comprendre les avantages du langage objet (moi je vois ca comme ca mais c'est peut-etre pas une bonne solution)
Pensez vous que cette démarche soit bonne où alors faut-il que je commence directement par le pascal objet ?
Marsh Posté le 08-11-2004 à 20:50:26
Taz a écrit :
et t'as que 16 ans ! |
je comprends pas ce que tu veut dire par là
Marsh Posté le 08-11-2004 à 21:00:04
Autrement j'ai trouvé ce cours qui à l'air assez pédagogique et bien pour un total débutant dans le langage :
http://www.lim.univ-mrs.fr/~thiel/ens/pascal/
Ce cours est-il bien d'après vous ? ou vous pensez connaitre quelque chose de mieux ? (de préférence pédagogique mais j'en ai pas trouvé beaucoup de pédagogiques)
Marsh Posté le 08-11-2004 à 21:37:42
steiner a écrit : |
Je ne suis pas sûr que ce soit une bonne idée. Commencer par du structuré donne parfois de mauvaises habitudes et bloque un peu après quand on veut faire de l'objet propre...
Marsh Posté le 08-11-2004 à 23:08:17
Mais apprend l'assembleur bordayl, y'a pas de questions à se poser à ce sujet
Marsh Posté le 08-11-2004 à 23:55:40
steiner a écrit : je comprends pas ce que tu veut dire par là |
tu connais même pas la POO et t'envoie boolay un truc comme python ?
Marsh Posté le 09-11-2004 à 01:38:13
Si tu veux développer un émulateur de consoles de jeu, faut apprendre le C et l'assembleur, point barre.
ADA, c'est bien pour faire des missiles, des fusées ou des avions mais à part ça je vois pas trop
Marsh Posté le 09-11-2004 à 11:17:23
Du temps réel en général. Le langage supporte nativement les tâches et leur synchronisation (rendez-vous, ...). Il me semble qu'on programme des micro contrôleurs en ADA.
Marsh Posté le 09-11-2004 à 13:14:28
Taz a écrit : tu connais même pas la POO et t'envoie boolay un truc comme python ? |
je ne cherche pas à dénigrer ce langage, loin de là et de toute facon je ne m'y connais pas assez pour le dénigrer, la seule chose, c'est que je souhaite essayer autre chose, je ne le rejette pas pour autant, et puis qui sait je reviendrais peut-etre au python plus tard, ca n'empeche pas et rien ne m'empeche d'aprendre plusieurs languages si j'arrive à quelquechose.
Marsh Posté le 09-11-2004 à 13:19:58
printf a écrit : Si tu veux développer un émulateur de consoles de jeu, faut apprendre le C et l'assembleur, point barre. |
ça je le sais mais j'ai peur qu'en me lançant directement dans le c++ je sois perdu et que je fasse plus de de la "bidouille" que de la programmation si je n'ai pas appris avant à programmer proprement avec un autre language (c'est le but de mon post). Je pense de toute facon arriver après au C et surement au C++ si je m'en sort bien.
En ce qui concerne l'assembleur j'aimerais bien mais vu ce que j'en ai entendu et vu je ne pense pas que ça soit un langage pour débutant.(peut-etre plus tard )
Marsh Posté le 09-11-2004 à 13:24:19
HelloWorld a écrit : Du temps réel en général. Le langage supporte nativement les tâches et leur synchronisation (rendez-vous, ...). Il me semble qu'on programme des micro contrôleurs en ADA. |
On peut programmer des microcontrôleurs en Ada (en supposant que l'on dispose du compilateur, ce qui n'est pas gagné...).
Mais, sauf exception, les microcontrôleurs se programment en C, en assembleur, en Embedded C++ voire en C++ ou en Forth.
Marsh Posté le 09-11-2004 à 13:30:46
steiner a écrit : ça je le sais mais j'ai peur qu'en me lançant directement dans le c++ je sois perdu et que je fasse plus de de la "bidouille" que de la programmation si je n'ai pas appris avant à programmer proprement avec un autre language (c'est le but de mon post). Je pense de toute facon arriver après au C et surement au C++ si je m'en sort bien. |
Ce que l'on appelle "assembleur", même par abus de langage (confusion avec l'outil de transformation), n'est pas un langage. La complexité réside principalement dans la connaissance et la compréhension de l'architecture cible, pas dans l'apprentissage des mnémoniques ou de la syntaxe de l'outil d'assemblage.
"Programmer en assembleur" ne veut pas dire grand-chose. Par contre, connaître l'architecture IA-32, PowerPC, ARM, MIPS, SPARC, etc. etc. est plus précis et surtout plus correct.
Marsh Posté le 09-11-2004 à 13:56:48
Il me semble qu'il y a un port de gnat pour ça. En tous cas c'est ici même en discutant avec un mec qui bossait en ADA sur un microcontoleur que j'ai appris que c'était possible.
Marsh Posté le 09-11-2004 à 13:59:08
Bien sûr que c'est possible. Mais c'est très rare
Marsh Posté le 09-11-2004 à 14:01:32
Reply
Marsh Posté le 07-11-2004 à 01:14:48
Bonjour,
j'ai 16 ans et je suis en première S, je souhaite depuis un petit moment me mettre à la programmation, étant un vrai fan de tout ce qui touche à l'informatique. J'ai déjà fait un tout petit peu de python mais je désirais me tourner vers un language plus consistant.
Je souhaiterai m'y mettre afin de savoir comment fonctionnent les logiciels que j'utilise tous les jours, mais égalment pour créer mes propres logiciels.
Je me suis donc lancé dans l'algoritmie en suivant ce cours , que je trouve très bien fait(et avec de l'humour en plus, ca passe forcemment mieux et c'est bourré d'anecdotes rigolotes et d'exemple dans la réalité pour mieux comprendre ) et qui me donne vraiment envie de continuer (je n'en suis qu'à la moitié environ, au chapitre 5 plus exactement mais ca avance très vite j'ai avalé les 5 chapitres en 3 jours ) :
http://aigespc57.cicrp.jussieu.fr/algo/codage.htm
Les exercices me plaisant réellement, je commence à m'interresser à la programmation proprement dite et j'ai commencé à me renseigner sur à peu près tous les langages possibles(j'ai déjà fais des tonnes de recherches sur toutes les faqs de ce forum,sur google également beaucoup sur developpez.com... ).
J'en ai conclu qu'il ne faut pas se lancer dans un langage trop compliqué ou permissif du genre du C++ quand on est un pure débutant et qu'on n'a pas encore de bonnes habitudes. J'ai donc recherché les langagues permettant d'apprendre le plus efficacement et deux languages semble sortir du lot, l'ADA et le Pascal qui sont donnés pour etre des languages excellents pour commencer.Mais certains penchent en faveur de ADA car plus récent et normalisé que le Pascal (d'après leurs dires en tout cas) et d'autres ne jurent que par le Pascal(beaucoup d'unniversités l'enseignent ce qui est peut-etre bon signe)
Ma question est donc celle ci:
Pour un apprentissage de la programmation(autodidacte et de préférence sur Internet vu que l'argent ne coule pas à flot à mon age pour acheter des bouquins) et pour obtenir de bonnes base, pensez vous que le langague ADA soit plus indiqué que le PASCAL ou à l'inverse le Pascal supérieur à l'ADA ?
Ce que je recherche est donc un langage donnant de bonnes habitudes de programmations(je me répète je sais ), et me permettant par la suite d'évoluer rapidement vers d'autres langages peut-être plus performants ou permettant de faire plus de choses.
Voilà, j'espère avoir été compréhensible et ne pas avoir été trop long (un peu quand même ! )
PS(pour ceux qui serait arrivé à lire tout mon texte ) :Mon but ultime pour l'instant en parlant de programmation serait de faire un émulateur de consoles de jeux . Je sais tout à fait que ca ne se fait pas en un clin d'oeil et qu'il me faudra faire beaucoup d'autres programmes beucoup plus simples avant d'arriver à ça mais c'est tout de meme mon rêve et c'est pour ca que je souhaite acquérir de bonnes bases .
Et désolé pour les fautes d'orthographes !
Message édité par steiner le 07-11-2004 à 01:17:07