Free Pascal ou Python ?

Etant néophyte en programmation (en tous cas ces 10 dernières années), je constate que deux langages sont proposés aux oraux de l'agreg interne :

*Free Pascal version 2.6, environnement de programmation FP ou Lazarus
OU
*Python version 3.4, environnement de programmation Pyzo

Que conseilleriez-vous à un père de famille manquant de temps mais souhaitant briller aux oraux, s'il y va un beau jour ? :)o
«1

Réponses

  • Bonjour,

    Python avec Pyzo, sans hésitation.

    Cordialement,

    Rescassol
  • Bonjour,

    Je te conseillerais d'utiliser Python, qui est beaucoup plus simple à utiliser (il y a même des exemples de programmes en Python dans le manuel de mes élèves de secondes).
    J'ai même fait quelques essais avec Python au collège, on peut commencer à faire des choses intéressantes tout de suite !
    Je me suis servi du site http://www.codeskulptor.org avec eux pour ne rien avoir à installer.
  • Bonjour,

    Pyzo est très simple à installer.
    Il a l'avantage d'installer en même temps quelques bibliothèques utiles, dont numpy et matplotlib.
    Il existe une flopée de docs sur le net, éviter les docs parlant de Python 2.*, les versions 2 n'étant pas compatibles avec les versions 3.

    Cordialement,

    Rescassol
  • Les langages et les modes...Aujourd'hui, c'est Python qui est à la mode...

    Je pense qu'il faut prendre un langage avec lequel tu es à l'aise ! Ayant été formé avec Pascal (puis turbo-pascal), mon choix se porterait donc sur le premier que tu cites.

    Maintenant, je ne suis peut-être pas le meilleur conseiller sur ce coup-là !
  • Bonjour,

    J'ai aussi commencé avec du Pascal (UCSD sur Apple II), j'ai du en utiliser une dizaine depuis, et enseigné quelques uns.
    On peut préciser aussi que le Python est maintenant le langage utilisé en prépa.

    Cordialement,

    Rescassol
  • La simplicité d'installation d'un langage de programmation n'est pas nécessairement liée à sa simplicité d'utilisation.

    Je ne connais pas Python, mais je sais que c'est un langage objet et je crains que sa syntaxe soit "originale", c'est à dire différente du C et du Pascal.

    Donc à moins de vouloir faire l'apprentissage d'un nouveau langage, c'est à dire avoir du temps pour ça à investir, il vaut peut-être mieux s'en tenir à des trucs old-fashion en mode console hasbeen et pas dans le coup. B-)-
  • Bonjour,

    Python est aussi simple d'utilisation que d'installation.
    Bien sûr, comme tout langage, on peut faire des choses très simples comme des choses très compliquées.
    Sa syntaxe n'est pas particulièrement originale, elle ressemble à celle du C++.
    Les blocs sont définis par l'indentation au lieu des couples d'accolades ( ou de begin - end comme en Pascal).
    On peut faire de l'objet si on veut, mais on n'y est pas obligé du tout, on peut faire aussi du procédural de base, sans la moindre classe.
    Enfin, il est interprété dans Pyzo, ce qui permet de bidouiller en cours de mise au point.

    Cordialement,

    Rescassol
  • @Rescassol : tous les gens d'un certain âge (pour ne pas dire d'un âge certain) ont été formés sur Pascal et ses variantes, je pense. J'aimais bien ce langage, il se prêtait bien à ce qu'on voulait en faire.

    Maintenant, je conçois parfaitement que Python est plus à la mode, à la fois, en effet, dans les CPGE (ou la plupart depuis au moins l'an dernier), mais aussi dans les spés ISN des lycées.
  • Je ne connais pas Python, mais je sais que c'est un langage objet et je crains que sa syntaxe soit "originale", c'est à dire différente du C et du Pascal.

    Python est procédural, objet et même un peu fonctionnel...
    C'est un langage "scientifique" il s'éloigne forcement du C qui a été créé pour coder des OS!
    Donc à moins de vouloir faire l'apprentissage d'un nouveau langage, c'est à dire avoir du temps pour ça à investir, il vaut peut-être mieux s'en tenir à des trucs old-fashion en mode console hasbeen et pas dans le coup.

    Mais il est utilisé pour le code de SAGE, dans Blender,... et peut servir au web en plus de ses qualités premières comme langage scientifique.
    Maintenant, je conçois parfaitement que Python est plus à la mode, à la fois, en effet, dans les CPGE (ou la plupart depuis au moins l'an dernier), mais aussi dans les spés ISN des lycées.

    Il sert beaucoup en complément de R.
    En programmation il a deux intérets :
    - prototypage, plus rapide à coder que du C avec beaucoup de bibliothèques.
    - "facilité" de lui ajouté des extensions en C/C++ pour la performance.
  • Baston Lagaffe:

    J'ai été formé, d'abord sur Fortran (on lançait des programmes à la compilation et pour des raisons de coût on n'avait le résultat que sur listing et non dans une console. Il valait mieux s'assurer deux fois qu'une qu'il n'y avait pas de bêtes erreurs de syntaxe) et puis après en Pascal (sur PC AT286).
    J'ai tout oublié l'un et l'autre, C est passé par là (c'est le langage définitif pour moi qui suis allergique aux langages objets). B-)- .
    Je vois le b...el que c'est de passer de la syntaxe de C à celle de PARI GP (et réciproquement) alors je pense qu'il ne faut pas sous-estimer le temps d'adaptation à un langage même proche de ce qu'on peut connaitre c'est la raison pour laquelle je pense que si on ne veut pas consacrer beaucoup de temps à cette adaptation il vaut mieux continuer à programmer dans un langage qu'on connait déjà.
  • Python est un langage utilisé partout dans le monde pour des applications multiples et diverses. Il est moderne, puissant, avec une syntaxe et un apprentissage facile. Il dispose de plus de nombreuses librairies puissantes et facile d'utilisation pour les maths.

    Pascal est un vieux langage que plus personne n'utilise.
  • Bon ok pour Delphi, même si stricto sensus c'est pas du Pascal et que c'est pas très utilisé quand même. En tout cas en face du Phython y'a pas photo : http://langpop.com/
  • Héhéhé:

    A l'époque où j'utilisais Pascal, aucun développeur professionnel ne développait plus dans ce langage, j'imagine que c'est la même chose pour Python? B-)-
  • Heu non pas du tout c'est un langage hyper actif.

  • Aussi "bouffe ressources" que Java? Il faut une machine récente pour faire tourner des programmes évolués ou bien on sent l'ordinateur qui vibre pendant dix minutes et se fige presque quand on en lance un, comme une deux-chevaux qui passe les 100km/h? :-D
  • Quelle mauvaise langue...
  • Fin de partie tu m'énerves tu parles visiblement sans savoir. C'est un langage très utilisé en calcul scientifique, pour ne citer que cet exemple. Tu as regardé mon lien ? Python arrive en sixième place des langages les plus utilisés.
  • FdP a écrit:
    l'ordinateur qui vibre ... comme une deux-chevaux qui passe les 100km/h?

    Une deuche qui se respecte ne vibre qu'à partir de 110. Tu es sûr que tu as bien équilibré les roues ? Tu as bien riveté les ailes ? Les ailes arrière ont tendance à vouloir prendre leur indépendance. Il faut savoir les museler.
    J'ai vraiment l'impression que tu parles au hasard.

    e.v. (2CV 1967, embrayage centrifuge)
    Personne n'a raison contre un enfant qui pleure.


  • Ev:
    C'était seulement un exemple comme ça, pour essayer de bien faire visualiser mon propos. :-D

    FDP, qui n'a pas de voiture, ni même de permis de conduire (il y a suffisamment de chauffards sur les routes).

    PS:
    J'avais presque bien évalué la vitesse de mise en vibration d'une deuche. B-)-
  • Merci pour toutes vos réponses !

    Je les regarderai dès que j'en aurai le temps.
  • Eh bien Python l'emporte haut la main ! Merci à tous :)
  • Et du coup une autre question me vient : connaîtriez-vous une bonne source biblio pour Python à l'agreg interne ?
  • Heu...on peut encore voter ?

    Il me semble que connaître Python aujourd'hui, c'est très bien, en revanche s'y mettre aujourd'hui n'est pas forcément le meilleur choix. Dans le calcul scientifique, Julia gagne du terrain. Personnellement, je n'ai jamais appris Python, la syntaxe ne me convenait pas, mais je discutais hier avec un pote qui a appris Python, qui vient de jeter un oeil à Julia, et qui découvre que les optimisations qu'il fait de ses codes Python à la main, Julia le fait nativement.

    Il y a une mode Python, qui était justifiée à une époque où Python était sans concurrence sur son segment, c'est le moment où il a été choisi pour les CPGE, mais ça peut changer. Rappelez-vous, avant Python, c'était Maple...
    Enfin, pour choisir le langage, il faut avoir une idée des programmes qu'on veut faire tourner.
    Free Pascal peut être une option pour des gens qui avaient l'habitude de Turbo Pascal.
    Cependant, pour quelqu'un qui veut partir de zéro en s'investissant un peu, je pense que le meilleur rapport spectre/apprentissage pour l'agreg interne, c'est vraisemblablement Sage.
  • Merci pour ces précisions.

    Mais je ne vois pas Sage ni Julia dans la liste des logiciels disponibles à l'oral de l'agreg interne ?
  • Julia, non.
    Sage était expérimental cette année.
  • Ok. Sage est reconduit l'année prochaine ?
  • Sauf si webmaster arrive pour dire que ça a posé des problèmes, on peut supposer que ce sera reconduit.
  • Bonjour,

    Octave n'est pas dans la liste des logiciels disponibles à l'oral de l'agreg interne.
    Ceci dit, il a des qualités.
    C'est Octave qui est utilisé à l'ecole des mines d'Alès depuis deux ans, après des années de Matlab.

    Cordialement,

    Rescassol
  • alea, je ne pense pas du tout que sage soit le meilleur choix pour l'agreg, surtout pour l'agreg interne. Xcas est facile a prendre en main, il est souvent deja un peu utilise par les profs de lycee, et il est entierement documente en francais. Il fonctionne sous windows meme sur des machines anciennes. De plus la mise au point de programmes est grandement facilite par le debuggueur interactif qui peut aussi servir dans un but pedagogique, pour montrer l'execution d'un algorithme pas a pas.
  • Donx Python ou Xcas...ou Scilab (que je connais déjà), pour des usages différents les uns des autres...
  • Si tu connais déjà Scilab, ça ira très bien, avec éventuellement un peu de Geogebra et de Xcas mais à petite dose.
    Il faut savoir qu'on nous rabat les oreilles avec l'ordinateur à utiliser mais qu'en 3H de préparation il est rare d'avoir le temps de préparer en plus de tout le reste une superbe activité informatique.
    Tout cela est très chronophage. Je conseillerai donc au père de famille que tu es, si tu ne veux pas perdre ton temps précieux, de préparer déjà un maximum de développements pour les leçons et de t'entraîner à préparer une leçon d'exemples en 3h (et tu verras que c'est très court). Après tu verras bien du temps dont tu diposes mais un conseil commence par l'essentiel plutôt que de t'égarer avec Python ou autre. D'autant que toutes les leçons ne s'y prêtent pas.
    J'ai eu de très bonnes notes aux oraux sans toucher à un ordinateur (bon d'un autre côté les sujets ne s'y prêtaient pas).
  • Je nuance un tout petit peu ce que j'ai dit avant. Dans ce cas ce qui pourrait être efficace c'est de réfléchir aux leçons pour lesquelles l'usage de l'ordinateur est incontournable. Mais à mon avis commencer à apprendre un nouveau langage est beaucoup trop chronophage voire inutile (dans le cadre de l'agreg interne bien sûr).
  • @pi : merci du conseil. :)
  • Y'a-t-il quand même des leçons où l'utilisation d'un logiciel de calcul scientifique s'avère quasi-indispensable à l'agrégation interne ?
  • Quand j'ai eu à l'épreuve d'exercices le tirage suivant :

    Exemples de calcul exact et de calcul approché de l'intégrale d'une fonction continue sur un segment. Illustration algorithmique.
    Exemples d'étude de suites ou de séries divergentes.

    Je me suis dit que dans le premier sujet, l'utilisation informatique était assez indispensable et que je n'aurai pas le temps dans les 3h de m'y coller.
    J'ai donc choisi le 2ème sujet.

    L'an dernier, "illustration algorithmique" appaissait dans 3 sujet de deuxième épreuve il me semble.
  • Exemples de calcul exact et de calcul approché de l'intégrale d'une fonction continue sur un segment. Illustration algorithmique.

    C'est pourtant un sujet plein de cohérence.
  • Je n'ai pas dit le contraire.

    Je dis simplement que déjà 3h c'est court, alors s'il faut en plus se pencher sur les questions informatiques...
    Bref, je ne me sentais pas capable.
  • Certes 3 heures c'est court, mais je ne pense pas qu'il faut découvrir l'informatique pendant la préparation de l'oral.
    Montrer un programme qui calcul une intégrale par des méthodes simples (trapèze par exemple) et avoir un peu de connaissance général sur le sujet ne me parait pas excessif non plus...
  • @TriAdmissible il y a des courrs python chez http://www.xavierdupre.fr/ avec des sujets intéressants mais peut-être trop pour un débutant.
    Aussi https://inventwithpython.com/ avec des livres téléchargeables en anglais.
  • Nul besoin d'etre un expert en informatique pour taper dans Xcas par exemple plotarea(x^2,x=0..1,4,rectangle_gauche) ou area(exp(-x^2),x=0..1,5,simpson)
    et presenter au tableau un algorithme papier-crayon-tableau avec une boucle pour une de ces methodes.
  • Il est dommage que Xcas ne soit pas dans la liste.
    C'est un logiciel extrêmement utile pour un professeur de mathématiques.
    D'ailleurs pourquoi n'a-t-on que deux choix possibles ?
  • Il y est http://agrint.agreg.org/logiciels.html ainsi que SAGE, scilab...
  • Ah oui effectivement, j'ai dit n'importe quoi.
    Je ne sais pas pourquoi, mais compte tenu du titre du fil et en lisant rapidement, je n'avais même pas vu qu'on avait tous les logiciels classiques.
    Dans ce cas, je ne vois que peu d'intérêt (hormis le fait que la programmation semble faire de plus en plus partie des programmes) de passer plus de temps sur Pascal ou Python que sur XCas, Maxima ou Scilab, à moins de ne maîtriser aucun des ces logiciels.
    On peut même faire des choses très intéressantes en utilisant uniquement un logiciel de géométrie dynamique comme Geogebra ou CaRMetal.
  • Il y a deux choses :

    "trop" de logiciels, aucun n'arrive à vraiment être une référence sur le long terme il devient difficile de changer à chaque changement d'enseignants et de tout réapprendre...

    L'usage de chaque ne semble pas clair pour grand monde, un langage (python, pascal) c'est pour apprendre les bases et utiliser les structures de données, un logiciel comme XCas, Maxima ou Scilab servira pour résoudre des problèmes et non comme objectif de programmation.
    Quant à Geogebra, ce genre de logiciel ne devrait être utilisé que par ceux qui maitrisent la règle et le compas...
    ce n'est pas le logiciel pour apprendre la programmation.
  • Pour ma part je m'étais initié à la programmation avec l'Omikron BASIC sur Atari ST il y a environ 20 ans (l'ordi m'a été offert en avril 1991 et en janvier dernier il marchait toujours), et là j'apprends doucement Python 2.7 sous Debian Wheezy (Windows 8 a fini par me faire péter un câble, je l'ai donc viré manu militari), en une soirée j'ai réussi à grappiller suffisamment d'infos pour coder vite fait deux ou trois petits trucs pour calculer les quantités utilisées dans mes recherches sur la conjecture de Goldbach, donc je suis plutôt satisfait (mettez au frais, Sylvain ne se plaint pas !) de Python. La syntaxe de la boucle for est un peu déroutante au début mais quand on y réfléchit un peu c'est très bien pensé de faire appel à une liste et puis remplacer for i=1 to 10 par for i in range(1,11) n'est pas insurmontable. Content en tout cas de voir que ce langage convient aux scientifiques, ne comptant pas tellement l'utiliser à d'autres fins que scientifiques.
  • soleil_vert, je ne fais pas la distinction comme vous. Xcas, Maxima, Scilab... permettent de programmer au meme titre que Python, c'est-a-dire que ce sont des langages de script interpretes, specialises dans les maths pour les 3 premiers, generaliste pour le dernier, permettant de developper rapidement, a condition de ne pas avoir besoin de rapidite (et optimiser du code interprete c'est souvent tres mauvais pour la lisibilite du code et souvent orthogonal a ce qu'on fait pour optimiser du code natif).
    Je vois une difference beaucoup plus fondementale avec les langages compiles comme Pascal et C qui permettent de produire des executables (code natif) sans avoir besoin d'interpreteur. Les structures de donnees des langages compiles sont souvent plus basiques que ceux des langages interpretes, utiliser un langage de ce type oblige sans doute plus a bien maitriser les structures de donnees et algorithmes fondementaux.
  • Réduire Python à un langage de script, qu'est-ce qu'il faut pas lire comme conneries...
  • Vous pouvez expliquer pourquoi classer Python en langage de script est une connerie?
    Je precise que pour moi un langage de script ce n'est pas pejoratif, c'est principalement pour dire que c'est un langage interprete qui permet d'ecrire facilement et rapidement des petits scripts, mais qui sont beaucoup plus lents qu'avec un langage compile (encore que Javascript atteint maintenant des performances tres honorables dans des navigateurs recents).
    Par exemple il me semble que n'importe quel type de donnees en Python occupe en memoire au moins la place de 3 pointeurs, donc 24 octets sur une architecture 64 bits, c'est 3 fois plus qu'un flottant au format double et 6 fois plus qu'un entier 32 bits. C'est le prix a payer pour un typage dynamique (caracteristique commune a beaucoup de langages de script et qui facilite la syntaxe puisqu'on ne declare pas le type) vs un langage compile ou on peut en general utiliser le type adequat.
    [Edit] D'ailleurs en regardant sur wikipedia, je lis
    "Il est cependant particulièrement utilisé comme langage de script pour automatiser des tâches simples mais fastidieuses,"
Connectez-vous ou Inscrivez-vous pour répondre.