Python et POO - Page 3 — Les-mathematiques.net The most powerful custom community solution in the world

Python et POO

13»

Réponses

  • @brian: Bien sur qu'un delimiteur de bloc implicite permet visuellement de gagner une ligne, ce qui permet de voir un peu plus de code sur un PC. Mais si on programme sur une calculatrice en classe, ce n'est plus le cas: l'indentation par defaut est de 2 caracteres (sinon ca depasse tres vite lateralement), et ca devient plus difficile de voir la structure du code en blocs des qu'on a un programme non trivial.
    Mais l'interet du delimiteur explicite, c'est d'avoir un moyen supplementaire de verifier le code, un appui sur la touche tabulation et hop on voit si on n'est pas dans le bon bloc ou si on a oublie de fermer une parenthese. C'est precisement la redondance des accolades en C ou de end dans d'autres langages qui en fait un code correcteur d'erreur. D'autre part, si on veut changer la structure d'un code, on peut deplacer le bloc et l'inclure comme sous-bloc ou au contraire l'extraire (par exemple pour en faire une fonction) sans risque.
    Enfin, pour l'apprentissage, il me semble que c'est plus facile d'avoir des marqueurs explicites.

    @nicolas.patrois: je n'ai rien contre l'utilisation de boucles dans une liste, ce que je conteste c'est l'obligation d'ecrire for index in range(a,b): qui introduit un objet complique, un generateur, pour eviter de creer une liste inutilement, alors que c'est bien plus simple (et d'ailleurs je pense que l'interpreteur traduit le code en une boucle simple, sans s'encombrer d'un generateur). C'est completement artificiel. Il suffirait qu'on puisse aussi utiliser une syntaxe du type for index from a to b: pour que je sois content. En plus d'un point de vue pedagogique, je pense qu'il y a un saut conceptuel entre iterer sur des entiers successifs et iterer sur des elements d'une liste.
  • Rien ne t’empêche d’utiliser while et de créer ton index à la main. L’avantage de range est qu’il unifie.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Coucou,
    @Brian
    En c (c++ sans POO !!!)
    unsigned int n = 0; // Compteur étape n de la Suite Un, qui commence pour l'indice 0 de la suite
    unsigned int u = 1; // Initialisation de u à la valeur de départ U0 de notre suite à étudier
    
    // Ma boucle
    while ( n < 2048 )
    {
       stdout itoa( u); // Afficher la valeur de U à l'étape n
       u = u * 2;  // Affecter maintenant u, la valeur de Un à l'indice n, avec une nouvelle valeur = u x 2
       n = n + 1; // Incrémenter l'indice n de la Suite Un, pour passer au suivant
    } // fin et rebouclage tant que
    
    Remarque.
    Faire du C++, comme n'importe quel langage POO, n'a aucun intérêt avec ce que vous voulez enseigner.

    Ce que je vois ici, c'est que vous avez trop d'ambitions par rapport à ce que un élève de TE et TSE actuel peut faire.
    Rien que ce forum démontre le niveau catastrophique de l'enseignement de l'Informatique en France.
    Et sur tous les autres forum de France (techno), c'est pareil !
    Quand on enseigne quelque chose, il faut le maîtriser !
    Ce qui n'est pas le cas de tous, au vu des questions posées !

    Amusez-vous bien, mais maintenant, je conseille au élèves, s'il le peuvent, de partir faire leur formation au Québec ou USA, mais surtout pas en France ...
    Cordialement.
  • Il me semble qu’on est quelques-uns à défendre la création de concours d’informatique (CAPES et grègue).
    Tu juges le niveau du phorum pourri parce qu’on ne défend pas trop ton point de vue ? Tu devrais venir en salle des profs pour comparer (et ce n’est pas de la faute des collègues qui se forment presque seuls, il n’y a presque aucune formation officielle). Par ailleurs, un point de vue personnel comme le tien (es-tu enseignant ?) n’est qu’un point de vue (et chacun en a un). Je crois qu’on a été quelques-uns a expliquer proprement en quoi tu allais un peu vite et en quoi chaque langage a ses forces et ses faiblesses ; le coup de la syntaxe qui te chatouille, c’est la meilleure blague du jour. Sous prétexte que certaines syntaxes sont dominantes, il serait interdit (notamment en classe) d’utiliser une syntaxe originale ? Et puis quoi, encore ?
    Au fait, puisque tu nous domines tous (en informatique selon toi), passe la grègue et viens nous montrer tes talents : tu ne devrais pas avoir de difficulté à faire mieux que nous.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • @Bruno.Moraut

    Depuis ta première intervention, tu n'as eu de cesse de te poser en donneur de leçons tout en racontant des conneries pratiquement à chaque ligne (Linux et ses drivers qui seraient écrits en C++, etc.). Avec ce dernier message, tu viens de prouver ce dont je me doutais depuis un moment : tu as beau te présenter en informaticien particulièrement expérimenté en C++, tu ne connais absolument rien à ce langage.
    1. Ton programme n'a aucune chance de compiler.
    2. Si tu avais la moindre connaissance au sujet des types entiers du C++ (les types les plus basiques du langage !), tu comprendrais qu'une telle approche n'a à peu près aucune chance de donner le bon résultat sur un ordinateur existant. Résultat qui a d'ailleurs déjà été donné ici.
    3. La ligne
      stdout itoa( u); // Afficher la valeur de U à l'étape n
      
      est à mourir de rire pour quiconque a déjà fait un chouia de C++. (:D
    (Je passe sous silence les erreurs grossières de ton « programme » qui ne relèvent même pas du langage C++.)

    Je l'avais vu dès mon premier message suivant ton arrivée : tu es un troll, et c'est désormais irréfutable. Je garde une copie d'écran au cas où. :-)109176
  • @nicolas.patrois: on peut bien sur contourner avec un while, mais c'est un pis-aller pour deux raisons:
    1/ c'est important (surtout pour les debutants) de distinguer entre boucle dont on ne connait pas a l'avance le nombre d'iteration (while) et boucle dont le nombre d'iterations est connu au depart (for j from 1 to n do...od a n iterations),
    2/ utiliser un while pour un for c'est risquer d'oublier l'incrementation de l'index, qui est par contre systematiquement fait avec un for.
    Mon experience avec des etudiants de L3 qui ont appris Python en prepa, c'est qu'ils font bien plus qu'avant exactement ce contournement d'un for en while et oublient de temps en temps d'incrementer l'index...
  • @parisse (je n'avais pas vu le message avant)

    Moui, évidemment qu'un écran de calculatrice est très limitant pour programmer en raison de sa faible taille. Au-delà de programmes très très simples, c'est une perte de temps et ne m'intéresse pas.

    Pour le déplacement de blocs, il faut savoir réindenter avec l'éditeur de texte. C'est la même chose lorsque les accolades délimitent les blocs, sauf pour les feignasses qui se contentent de copier/coller et laissent une indentation foireuse qui risque d'être à l'origine de bugs lorsque le prochain collègue passera par là. La sémantique des accolades peut même être utilisée comme excuse par les auteurs de ce genre de forfait : "L''indentation, on s'en fout puisque c'est les accolades qui comptent !". Enfin, ton "code correcteur d'erreurs" ne marche que si tu passes ton temps à appuyer sur Tab sur chaque ligne du programme pour vérifier que l'indentation n'a pas été pourrie par un changement en amont : ou bien je n'ai pas compris ce que tu voulais dire, ou bien ce n'est pas très sérieux. Avec le système d'indentation de Python, la vraie structure du code est toujours ce que l'on voit. Il n'y a pas de tromperie possible. Le seul problème, c'est pour les blocs à rallonge. Mais comme c'est une mauvaise pratique, il suffit de ne pas user de tels blocs.
  • De mon temps on apprenait C et Fortran (très utilisés à l'époque), mes profs, qui étaient bons pédagogues, disaient que c'était important d'apprendre en parallèle deux langages très différents pour éviter le travers de tenter de mimer ce qu'on avait appris dans le premier langage lors de l'apprentissage d'un second. De fait, en tant qu'utilisateur de l'informatique, ce point de vu m'a été très profitable.

    Là dans le secondaire l'idée que j'ai est de se concentrer sur un seul langage mais exploitant les paradigmes majeurs pour montrer que l'on peut faire la même chose de plusieurs manières dans un premier temps, et raffiner ensuite.

    La dernière version d'Algobox est très récente, il y a même un .deb pour Ubuntu 20.04. L'auteur indique les modifications depuis la version 2014 (0.9) ici : https://www.xm1math.net/algobox/changelog.html

    Contrairement à l'enseignement des maths et de la physique, dont les crashs sont bien documentés, j'ai trouvé peu d'éléments d'appréciation pour ce qui se passe en informatique. Mais je repère les mêmes travers : passer trop de temps sur Scratch qui devrait disparaître en 5e ou 4e, comme on passe trop de temps sur les camemberts en primaire pour expliquer les fractions sans développer les capacités calculatoires. Apparemment dans la "réforme" NVB, " le codage doit se faire sous couvert de jeu, et non sous une forme ayant une visée mathématique". C'est crashé ab initio.

    Donc c'est pour ça que les parents désireux d'apprendre l'info aux enfants (d'autant plus que c'est une matière où les demandes juvéniles d'apprentissage spontanées ne sont pas rares ...) vont devoir le faire eux-même, comme pour le reste. Du moins au début, il semble que la motivation initiale soit plus propice à développer assez rapidement une certaine autonomie.

    Sur les points de vue exposés par Aléa et Parisse d'un côté et Nicolas et Brian de l'autre, mon souvenir de l'apprentissage du C me pousserait plutôt à faire adopter en premier langage quelque chose qui délimite explicitement, dans un premier temps du moins. Après sans mesure psychométrique établissant les courbes de primo-apprentissage chez l'enfant ou l'ado, je me garderais bien d'être catégorique.

    Mais comme je l'ai écrit plus haut, le point pédagogique qui me parait important est de présenter explicitement un choix judicieux de paradigmes de programmation (dont évidemment l'OO) avec :
    - des exemples pour lesquels le choix n'a pas beaucoup d'importance,
    - des exemples pour lesquels il y a un meilleur choix.
  • @brian: dans un contexte scolaire, la programmation sur calculatrices est importante, car cela permet de traiter un exercice d'algorithmique d'une dizaine de minutes pendant un cours normal, sinon il faut une salle à part et ca veut dire qu'on regroupe les exos d'algorithmique à part, ce qui est moins pertinent d'un point de vue pédagogique.
    Pour l'indentation, c'est precisément ce que je fais, je réindente mon code avec des tab lorsque je déplace un bloc et ça va très vite car tout se fait au clavier. Si c'est vraiment un bloc long, ctrl-espace esc-w et esc-x indent-region dans emacs. Donc c'est très sérieux, je travaille sur plus de 200 000 lignes de code. Et je travaille fréquemment avec des blocs de code assez longs, je ne vois pas en quoi c'est une mauvaise pratique dans un langage avec délimiteur explicite de code.
    Il existe peut-être un équivalent avec Python pour extraire un bloc et le réindenter, mais si vous faites une fausse manip vous n'avez pas de filet. Avec délimiteur explicite, si vous re-indentez mal, ça compile/interprète quand même.
  • @parisse

    Oui, je sais que les calculatrices sont utilisées à l'école. Ici, la discussion tourne autour de la notion de blocs de Python où l'indentation est signifiante, et dans ce contexte, la programmation sur écran minuscule n'est pas pertinente : je parle ici du language Python en général ; s'il avait été développé spécialement pour écrire des programmes sur écran minuscule, je le saurais depuis 20 ans.

    Pour le reste, je ne vais pas m'acharner car cela semble inutile. Évidemment que l'on peut réindenter des blocs avec Emacs : en mode Python, il y a C-c > pour augmenter l'indentation d'un niveau et C-c < pour la diminuer d'un niveau (typiquement, un niveau est 4 colonnes mais ça dépend du programme : c'est au choix de celui qui écrit). Et même sans ça, on peut faire avec les fonctions qui opèrent sur les rectangles : on sélectionne un rectangle, puis C-x r k pour le couper, ou C-x r o pour insérer des espaces sur tout le rectangle sélectionné. Votre système de réindentation quand vous déplacez un bloc ne vous pose pas de problème ? Normal, vous semblez programmer tout seul ! Si d'autres personnes participaient à votre projet, elles pourraient faire des copier/coller sans réindenter, laisser le code avec une indentation trompeuse et vous n'en sauriez rien. Alors qu'avec le système de Python, l'indentation ne peut pas être trompeuse : par définition, elle représente directement la structure du code.
    parisse a écrit:
    si vous faites une fausse manip vous n'avez pas de filet
    Le filet, ce sont les tests. Tout code nouveau ou modifié doit être testé. Il y a d'ailleurs plein de frameworks pour tests unitaires, c'est l'embarras du choix.
    parisse a écrit:
    Avec delimiteur explicite, si vous re-indentez mal, ca compile/interprete quand meme.
    Voilà, vous venez de ressortir l'excuse que j'avais déjà citée dans mon message précédent, des gens qui pourissent volontairement l'indentation d'un programme par fainéantise (incapables de réindenter quand ils changent la structure ou déplacent un bout de code), ce qui a pour effet de favoriser l'apparition de bugs difficiles à analyser et plus généralement de rendre la maintenance très pénible.
  • @brian:
    Sur les calculatrices: dois-je en conclure que vous etes d'accord avec l'idee que Python n'est pas pertinent dans l'enseignement puisque la possibilite de travailler sur calculatrices est important?

    Sur l'indentation: l'avantage dans tout langage utilisant des delimiteurs de bloc explicites c'est que cela permet un 1er niveau de controle immediat, les tests viennent dans un deuxieme temps pour assurer un 2eme niveau de controle (c'est analogue a la difference entre une erreur de syntaxe et une erreur de runtime).
    De plus si quelqu'un ecrit du code sans se soucier de l'indentation, on peut reindenter son code a tout moment pour beneficier de ce 1er niveau de controle. Je ne vois pas bien le rapport avec le fait de travailler essentiellement seul ou a plusieurs.
  • @parisse

    J'ai appris à programmer ma calculette HP48 tout seul sur la période 4e-seconde en RPL puis en assembleur, grâce à un livre et un tutoriel sur un assembleur Saturn (ASMFlash). Quand je vois les programmes dont il est question au lycée sur les sujets postés ici, je vois surtout du vide. Je pouvais faire ça à l'école primaire, tout seul (sur ZX Spectrum+ 48K en Basic sans avoir jamais appris à sauvegarder un programme avec le lecteur de cassettes...). Bref, ces activités ne présentent guère d'intérêt, ça n'est pas mon propos. Le système de délimitation de blocs de Python a été critiqué par des gens qui ne pratiquent pas Python, et c'est à ça que je réagis.

    Pour le reste, bof. Pour votre « premier niveau de contrôle », il faut compter les accolades, alors qu'en Python, la structure du code se voit directement. Il est facile pour un compilateur de compter les accolades, mais il peut arriver qu'un truc soit syntaxiquement correct (accolades équilibrées, etc.) mais n'implémente pas l'algorithme souhaité. Un programme qui compte les parenthèses et les accolades ne peut pas voir ça.
    parisse a écrit:
    De plus si quelqu'un ecrit du code sans se soucier de l'indentation, on peut reindenter son code a tout moment pour beneficier de ce 1er niveau de controle. Je ne vois pas bien le rapport avec le fait de travailler essentiellement seul ou a plusieurs.

    Dans la vraie vie de l'ingénierie logicielle, lorsqu'on travaille à plusieurs sur un programme, il est nécessaire d'utiliser un outil de type VCS comme Git, Subversion, etc. Dans ces conditions, réindenter à tout moment est totalement inacceptable car cela pollue les tellement les diffs que l'on ne peut plus comparer deux révisions d'un fichier donné (i.e., on peut obtenir un diff, mais il est humainement inexploitable). Donc on ne réindente que quand il n'y a pas de solution moins mauvaise. Pour éviter d'en arriver là, il faut mettre la bonne indentation dès que l'on commite un changement. Je parle d'expérience : très gros projet C++ qui a 23 ans d'existence, avec plein de participants différents dont beaucoup ne sont plus là ; styles de code différents, indentations incohérentes. C'est merdique, mais tout réindenter de manière cohérente coûterait tellement en termes de bruit généré dans les diffs que cette proposition n'a jamais été jugée souhaitable — alors même que des outils comme clang-format peuvent le faire automatiquement ; le projet a d'ailleurs un fichier de configuration pour clang-format définissant le style de code souhaité afin que les commits récents utilisent le même style.
  • @brian "Quand je vois les programmes dont il est question au lycée sur les sujets postés ici, je vois surtout du vide" certes, au collège aussi.

    Comment tu verrais un enseignement de l'informatique au secondaire ab initio, avec ton recul et ton expérience professionnelle ?
  • @brian: je ne vois pas pourquoi travailler avec svn ou git ou autre a plusieurs pose un reel probleme d'indentation, il suffit de decider comment on indente pour le projet sur les parties qui sont frequemment modifiees par plusieurs personnes (mais ce n'est pas necessaire sur les fichiers qui sont maintenus essentiellement par une seule personne, je conserve mon style d'indentation dans Geogebra par exemple). Si cela est necessaire on peut homogeneiser des parties a un instant donne : la revision n est inhomogene, la revision n+1 est son homogeneisation sans autre changement, je ne vois pas ou est le risque.
    Sinon, je n'ai jamais eu besoin de compter les accolades. En plus de l'indentation, le parenthese match permet de voir a quoi correspond une accolade fermante (pour les blocs longs, appui sur backspace puis on retape }).

    Apres, je n'ai aucun probleme avec le fait que d'autres personne codent avec des habitudes differentes des miennes. Mais ce serait bien qu'ils acceptent le fait que c'est comme les gouts et les couleurs, l'indentation delimiteur implicite a la Python n'est pas intrinsequement superieure a l'indentation+delimiteurs explicites comme en C ou en Javascript, et je pense que je suis loin d'etre le seul a penser de la sorte, ainsi alea fait la promotion de Julia qui utilise des delimiteurs explicites (et je le rejoins sur le sentiment que Julia est bien mieux adapte au calcul scientifique que Python).

    En conclusion, je pense qu'il est legitime de demander qu'on arrete d'imposer la programmation en Python dans l'enseignement sous ce pretexte (ou d'autres!). Laissons agir la concurrence libre et non faussee pour le choix d'un langage de programmation et enseignons les algorithmes en langage naturel.
  • parisse écrivait [message précédent].
    > En conclusion, je pense qu'il est légitime de demander qu'on arrete d'imposer la programmation
    > en Python dans l'enseignement sous ce pretexte (ou d'autres!). Laissons agir la concurrence libre et
    > non faussee pour le choix d'un langage de programmation et enseignons les algorithmes en langage naturel.

    Je crois que le plus important c'est surtout que les étudiants utilisent plusieurs langages (je ne parle pas des lycéens). Python, pourquoi pas, ce langage fait partie de l'industrie maintenant et il est très largement répandu, difficile d'y échapper.

    Mais ils doivent aussi utiliser un langage compilé et sans GC mais surtout fortement typé comme le C++ ou autre.

    Je suis d'accord avec l'enseignement des algo en langage naturel en revanche.
  • Bonjour,

    moi j'aime bien quand il y a une numérotation à gauche, de 10 en 10 car j'aime bien aussi le goto.

    Je sais que ce n'est pas fort à la mode, soit dit en passant.

    A bientôt.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Ça sent la sueur ici ! Je mettrai mes mains dans ce ****** quand l’éducation nationale appellera l’informatique « informatique ». Parce que SNT, NSI, c’est de la mauvaise novlangue.
  • Je cite @Brian

    Depuis ta première intervention, tu n'as eu de cesse de te poser en donneur de leçons tout en racontant des conneries pratiquement à chaque ligne (Linux et ses drivers qui seraient écrits en C++, etc.). Avec ce dernier message, tu viens de prouver ce dont je me doutais depuis un moment : tu as beau te présenter en informaticien particulièrement expérimenté en C++, tu ne connais absolument rien à ce langage.

    "Ton programme n'a aucune chance de compiler.
    Si tu avais la moindre connaissance au sujet des types entiers du C++ (les types les plus basiques du langage !), tu comprendrais qu'une telle approche n'a à peu près aucune chance de donner le bon résultat sur un ordinateur existant. Résultat qui a d'ailleurs déjà été donné ici.


    (Je passe sous silence les erreurs grossières de ton « programme » qui ne relèvent même pas du langage C++.)

    Je l'avais vu dès mon premier message suivant ton arrivée : tu es un troll, et c'est désormais irréfutable. Je garde une copie d'écran au cas où."

    Pour ton information, le tien non plus, car tu n'est même pas capable de suivre le fil d'une discussion:
    je n'est pas donné du code c++ pour votre exemple, programme, qui, je le redis, est inadapté pour des élève:
    "incapable d'ajouter 2 fractions".
    C'est la suite de l'exemple que j'ai donné.
    J'ai donc "traduit" en C, ce dont je pense tu est incapable, et j'ai fait rapidement, et je me suis effectivement trompé sur stdout qui devrai être cout << ...).

    Par contre de vendre du Python, pseudo langage objet, n'a aucun intérêt pour ce que vous faites.

    Il permet simplement un rigolo comme toi de se faire mousser.

    Je n'ai pas vu sur ce forum, des informations pour la notion POO, utiles à les types d'élèves que vous citez.


    Que le programme ne compile pas, effectivement, avec Visual Studio, il faut créer un projet, mettre les bib etc...
    Je ne les aient pas mises, car pour un "Génie" comme toi, je pensait que c'était évident.

    Quand à continuer de m'insulter, et à affirmer "tu as beau te présenter en informaticien particulièrement expérimenté en C++, tu ne connais absolument rien à ce langage"
    je t'ai cité à mes clients, et tu viens de faire rire au éclats !



    Par contre, le troll, c'est toi, car de laisser une équipe faire des programmes dans lequel on laisse des programmes pas indentés etc, sous prétexte que cela perturbe la gestion de code, est dangereux.
    Je viens d'avoir le témoignage de ce cas: 10 ans de travail perdu !
    L'entreprise à viré un rigolo comme toi qui sort ce genre de connerie.

    je cite "nicolas.patrois"
    "Il me semble qu’on est quelques-uns à défendre la création de concours d’informatique (CAPES et grègue).
    Tu juges le niveau du phorum pourri parce qu’on ne défend pas trop ton point de vue ? Tu devrais venir en salle des profs pour comparer (et ce n’est pas de la faute des collègues qui se forment presque seuls, il n’y a presque aucune formation officielle). Par ailleurs, un point de vue personnel comme le tien (es-tu enseignant ?) n’est qu’un point de vue (et chacun en a un). Je crois qu’on a été quelques-uns a expliquer proprement en quoi tu allais un peu vite et en quoi chaque langage a ses forces et ses faiblesses ; le coup de la syntaxe qui te chatouille, c’est la meilleure blague du jour. Sous prétexte que certaines syntaxes sont dominantes, il serait interdit (notamment en classe) d’utiliser une syntaxe originale ? Et puis quoi, encore ?
    Au fait, puisque tu nous domines tous (en informatique selon toi), passe la grègue et viens nous montrer tes talents : tu ne devrais pas avoir de difficulté à faire mieux que nous."

    Pour répondre: je suis tout à fait d'accord: ce n'est pas à un prof de math d'enseigner l'informatique.

    C'est aussi ce que dits Julbert julia, Prof agrégé de math, avec lequel j'ai échangé:
    https://gjmaths.pagesperso-orange.fr/epdos.html

    Vous avez fait 6 années d'études après le BAC, pour pouvoir enseigner les maths.
    Pouvez vous enseigner la médecine ou faire une simple infra-veineuse (BTS infirmière) ?
    Non, bien sure.

    Moi même, je viens voir des résolutions mathématiques sur ce forum et les autres,
    car, certes, j'ai un bon niveau en math, mais je ne suis pas un spécialiste.

    C'est pour cela que je vous dis de ne pas vous laisser faire, et suggérer de former à l’algorithmie ,
    avec le passage de la résolution de pb de math à un algorithme (exemple que j'ai donné).

    Vous pensez que dans une formation d'informaticien, on fait quoi pendant les 6 années après le BAC aussi ?
    Si c'était la même chose, il n'y aurai qu'un seul diplôme.

    Je vous comprends et comprends votre angoisse de devoir se former seul:
    je l'ai vécu, puis, après avoir "réinventé" ce que je pouvait apprendre dans une VRAI FORMATION EN INFORMATIQUE, j'ai suivi celle-ci, bien que autodidacte au départ.

    Ce que je veux vous dire, c'est que justement, vous vous faites avoir, par des Inspecteurs qui n'y connaissent rien, qui vous imposent une impasse.

    Cette impasse va vous conduire à travailler les samedi et dimanche, pour que dans quelques années, tous soit mis à la poubelle.

    Les langages ont leur forces et leur faiblesses, mais certains moins que d'autre,
    et surtout, le temps que l'on passe, risque d'être perdu, s'il vient à disparaitre.

    Pourquoi je dénonce Python ?
    - Parce qu'il a été "vanté" (par une minorité virulente), comme le meilleur au monde.
    - Parce qu'il me fait pensé à tous les projets "fumistes" avortés (du libre), qui ont laissé des milliers de programmeurs ou responsables informatiques sur le carreau.
    - Parce que les autres langages, en sont beaucoup beaucoup plus loin sur l'application des théorie universitaires sur la programmation (théorie de Graphe, méta modélisation, lambda calculs, programmation Graphcet...)
    - Parce que il permet justement d'avoir l'efficacité + les modélisations
    - Parce que, malgré ce que certains disent, la vitesse compte, et donc un langage "interprété" est dès sa naissance dépassé.
    - Parce que il est transposable sur GPU, pour les calculs grandes vitesse (jeu vidéo, calculs scientifiques)
    -Parce que le W3C https://www.w3.org/ le normalise pour le monde.

    Que vous souteniez le concours de math ok, mais que celui-ci veuille "intégrer" l'informatique,
    je ne suis pas d'accord.
    Les correcteurs, profs ou agrégés de math, n'y connaissent rien.
    C'est les propos des agrégés de votre domaine !


    Codialement

    Pour répondre à "Brian", j
    Le fameux "Brian" qui me traite de "troll", a le complexe du larbin, qui se fait mousser, pour son égo personnel, mais qui n'a aucune vision de la réalité actuelle de l'informatique, et encore moins de l'avenir.
    Par contre, ses conseils en math sont excellents.
    Mais je lui conseil de se limiter au math.
    Et pour son info personnelle, Je dévelloppe en C++ des applications utilisées, elles, depuis longtemps !
    Mon Master à cheval sur la Mécanique/Informatique/Mathématique à consisté à réaliser un Logiciel de Calculs des Déformations sous contraintes dans la Mécanique des Milieux continus en C++ et GPU.
    Il pilote des machines de traction, des caméra etc...
    Je l'ai amélioré avec du calcul accéléré sur GPU.
    Je vais le diffuser hors milieu universitaire (version domaine public), mais je rajoute les protections par clef RSA,
    de licence en ce moment.
    Comme il s’agit d'un marché très limité, je développe dans la musique aussi...
    Donc, je pense que tu devais rester modeste.
    Moi, je ne me suis pas vanté d'être un expert en Python...
  • Bruno.Moraut a écrit:
    Par contre de vendre du Python, pseudo langage objet, n'a aucun intérêt pour ce que vous faites.

    Dans Python, presque tout est objet (sauf les mots-clés) mais on n’est pas obligé de s’en rendre compte.
    Je n'ai pas vu sur ce forum, des informations pour la notion POO, utiles à les types d'élèves que vous citez.

    Et alors ?
    Que le programme ne compile pas, effectivement, avec Visual Studio, il faut créer un projet, mettre les bib etc...

    Alors qu’en Python, tu écris le script (et éventuellement un shebang) et ça roule.
    Pourquoi je dénonce Python ?
    - Parce qu'il a été "vanté" (par une minorité virulente), comme le meilleur au monde.

    Pas sûr : en prépa HEC, on utilise Scilab à la place.
    C’est marrant, quitte à choisir, j’aurais trouvé l’inverse plus cohérent : Python en HEC et Scilab en taupe.
    - Parce qu'il me fait pensé à tous les projets "fumistes" avortés (du libre), qui ont laissé des milliers de programmeurs ou responsables informatiques sur le carreau.

    Vu où en est Python aujourd’hui, tu aurais dû remettre cette impression au même endroit où Renaud range certaines de ses chansons.
    - Parce que les autres langages, en sont beaucoup beaucoup plus loin sur l'application des théorie universitaires sur la programmation (théorie de Graphe, méta modélisation, lambda calculs, programmation Graphcet...)

    Et alors ?
    - Parce que il permet justement d'avoir l'efficacité + les modélisations

    Donc tant mieux ?
    - Parce que, malgré ce que certains disent, la vitesse compte, et donc un langage "interprété" est dès sa naissance dépassé.

    Il n’est pas interprété. Comme Perl, il est « compilé » en un bytecode.
    Par ailleurs, on a plein de moyens pour accélérer les calculs en Python (numpy, numba, cuda, réécriture en C…)
    - Parce que il est transposable sur GPU, pour les calculs grandes vitesse (jeu vidéo, calculs scientifiques)

    Ben, tant mieux, non ?
    -Parce que le W3C https://www.w3.org/ le normalise pour le monde.

    :-S
    Moi, je ne me suis pas vanté d'être un expert en Python...

    Moi non plus mais on ne tape pas à bras raccourcis sur les autres langages parce que c’est celui que certains connaissent le mieux.
    Au fait : vi ou emacs ? :-D
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Monsieur Moreau.

    Puisque vous avez les clefs du futur de l'apprentissage des masses, je vous suggère de proposer le fruit de votre expérience sous forme de leçons utilisables.

    Je ne doute pas alors de l'engouement que votre cours aura comme dépassement du cours de base.

    Une alternative à Python avec C++ ? Vous n'imaginez sans doute pas combien les dirigeants de l'EN attendent cela.

    C'est vraiment la meilleure chose que vous puissiez faire. Je ne doute pas non plus du fort investissement , car il s'agit bien d'un investissement, vous feriez bénéficier au monde. Rien que cela, ça me botterai si j'utilisais un langage qui n'a pas déjà perdu car interprété.

    La suite vous appartient.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • J'ai ici l'impression d'être un gars qui cherche à s'initier au secourisme et à qui on dit que s'il ne fait pas médecine il ne saura rien faire ... Tout dépend où on met le curseur au départ ...
  • En fait comme souvent on voit des gens se mesurer l'engin sans se préoccuper aucunement de l'instruction des jeunes - à part les habituels (Aléa, Parisse etc), alors que l'enseignement de l'informatique est dans une passe encore plus dramatique que les maths.
  • Je réponds une dernière fois au troll Bruno.Moraut. J'ai bien vu que tu as prétendu sortir un programme en C alors que la question portait explicitement sur C++ que tu as toi-même amené dans cette discussion, sans aucune raison d'ailleurs. Mais C et C++ ont un socle commun, si j'ose dire, de sorte que tout ce que j'ai déjà dit sur ton « programme » s'applique, qu'il soit considéré comme un programme C ou comme un programme C++.

    Outre le fait que tu utilises une fonction itoa() non déclarée, que tu n'as pas de main(), que tu oublies l'alternance des signes, que tu ne multiplies pas du tout par les bonnes valeurs, que tu te gourres complètement sur le nombre d'itérations et que tu ne sais pas afficher un entier, le problème monstrueux de ton programme consiste à croire que le type unsigned int peut contenir une valeur dont le logarithme en base 2 est supérieur à 9617 pour le résultat correct, ou « seulement » égal à 2048 pour ton programme foireux (le rapport entre le résultat correct et celui de ton programme — dans un monde imaginaire où unsigned int fonctionnerait comme dans tes rêves — n'est qu'un nombre à 2280 chiffres décimaux — une bricole).

    N'importe qui ayant fait un tout petit peu de C ou de C++ sait qu'un unsigned int n'a aucune chance de pouvoir contenir un nombre de 9618 ou même de 2049 bits (il faut un bit de plus que le $\log_2$), car comme on peut le trouver en deux secondes sur Internet, la taille minimum garantie d'un int (signé ou non) est 16 bits — pas 9618 ni même 2049. De plus, n'importe qui ayant compris la philosophie des types entiers de C et C++ (donc les types les plus basiques) sait qu'un compilateur non théorique fera en sorte que $\operatorname{taille}(int) \leqslant \text{largeur mot du processeur}$ et que la largeur d'un mot sur processeur actuel dépasse rarement 64 bits, ce qui est monstrueusement loin de 2049 ou 9618 bits (je rappelle qu'il s'agit de comparer $2^{64}$ à $2^{2049}$ et à $2^{9618}$). Donc n'importe qui ayant compris le type le plus basique de C et C++ sait que ton programme n'a pas la moindre chance de fonctionner, et que ce n'est pas un petit bug facile à corriger mais une erreur de conception fondamentale qui traduit une incompréhension totale du langage. Tu as beau dire que tu n'as pas fignolé en mettant bibliothèques ou fichier projet, les problèmes de ton programme sont d'un tout autre ordre. Même en le modifiant suffisamment pour qu'il compile et en corrigeant toutes les erreurs susmentionnées, il n'a aucune chance de donner le bon résultat, car tu n'as rien compris aux types entiers de C et C++. Tu es un troll, tu as débarqué sur ce fil comme un cheveu sur la soupe et a raconté connerie sur connerie. Après avoir vu ce « programme » et compris l'algorithme qu'il est censé implémenter, personne ne peut te prendre au sérieux.
  • Bonjour,

    Un détail:
    Bruno.Moraut a écrit:
    J'ai donc "traduit" en C, ce dont je pense tu est incapable, et j'ai fait rapidement, et je me suis effectivement trompé sur stdout qui devrai être cout << ...).
    "cout", comme "stdout" est du C++, pas du C.

    Cordialement,

    Rescassol
  • @xax

    J'ai bien vu ta question mais :

    1) Je n'ai pas beaucoup de temps.
    2) Le fil a été complètement détourné par les trolls, ce serait mieux ailleurs.
    3) Je n'ai pas pour prétention ni pour ambition de réformer EDNAT. Je ne suis d'ailleurs pas en position de décideur dans cette institution, loin s'en faut.
    4) Il y aurait bien d'autres choses à faire plus importantes déjà débattues ici pour créer les conditions d'un enseignement correct, et le contenu transmissible dépend très fortement desdites conditions.
    5) Je peux faire quelques suggestions très rapides, mais elles seront assez différentes suivant la cible :
    a) Groupe classe ou élève seul motivé, prêt à bosser plusieurs heures chez lui pour faire quelque chose d'intéressant.
    b) Informatique en général ou juste algorithmique. En effet, mes critiques dans ce fil portaient sur les exercices supposés parler d'algorithmes postés sur ce forum, que je trouve extrêmement peu stimulants ; mon idée principale, c'est qu'on ne peut pas motiver des élèves avec des algorithmes aussi inintéressants, du genre lire un nombre $x$ et renvoyer $ax+b$ avec $a$ et $b$ fixés, ou encore lire un caractère jusqu'à trouver un 'A', lire et afficher les caractères suivants jusqu'à trouver un 'Z'.

    Il y a des algorithmes assez faciles à comprendre et à implémenter y compris pour des jeunes, tels que le tri par insertion ou le tri à bulles, ou encore le chiffrement/déchiffrement affine, plus pas mal d'autres possibilités en fonction de la réponse à 5)a). Pour intéresser, il faut un minimum d'effet wouaouh une fois qu'on lance le programme et qu'il marche, de même que la première fois qu'on sait traduire un problème sous forme d'équation et le résoudre : là, on se dit « cette technique me permet de faire un truc que je ne saurais pas faire en un temps raisonnable autrement ». Normalement, on est content d'avoir appris le truc et on a envie de continuer.
    6) Si tu crois que je suis en train d'exhiber mon « engin », comme tu dis, je me ferai un plaisir de ne plus répondre.
  • Rescassol a écrit:
    "cout", comme "stdout" est du C++, pas du C.

    C'est vrai pour 'std::cout' mais pas pour 'stdout'. 'stdout' (tout comme 'stdin' et 'stderr') est défini dans le fichier d'en-tête standard stdio.h en C (à utiliser de préférence sous la forme '#include <cstdio>' en C++, contre '#include <stdio.h>' en C). En revanche, 'stdout' ne s'utilise absolument pas comme l'a fait le troll Bruno.Moraut — j'ai d'ailleurs écrit que cette ligne était à mourir de rire. Pour rappel, il s'agissait de :
    stdout itoa( u); // Afficher la valeur de U à l'étape n
    
    Edit : Moreau remplacé par Moraut.
  • "Il y a des algorithmes assez faciles à comprendre et à implémenter y compris pour des jeunes, tels que le tri par insertion ou le tri à bulles, ou encore le chiffrement/déchiffrement affine, plus pas mal d'autres possibilités en fonction de la réponse à 5)a). Pour intéresser, il faut un minimum d'effet wouaouh une fois qu'on lance le programme et qu'il marche, de même que la première fois qu'on sait traduire un problème sous forme d'équation et le résoudre : là, on se dit « cette technique me permet de faire un truc que je ne saurais pas faire en un temps raisonnable autrement ». Normalement, on est content d'avoir appris le truc et on a envie de continuer. "

    C'est vous qui avez dit que vos élèves ne savent pas ajouter deux fractions.
    Alors comment font ils pour comprendre les tries ?

    Je n'ai jamais dit qu'il fallait passer au C++.
    J'ai pris en premier un exemple d'algorithme simple pour des élèves qui ne savent pas ajouter deux fractions.
    Je l'ai donné en langage naturel.

    De dire, parce que je n'ai pas détaillé le c, que je suis un troll, vous donne une image de gens qui croient tous savoir.
    Surtout avec un forum rempli avec des "au secours je ne sait pas faire".

    Vous vous êtes posé la question des ingénieurs et profs des autres pays qui lisent ce forum sur l'informatique ?

    Qu'il y ait des questions pointus (comme sur les question de math) cela ne choque personne. Au contraire...

    Mais dans le cas de l'info, je vous jure que cela ne donne pas une bonne image de l'enseignement de l'info en France.

    Je n'ai pas repris votre algorithme, que je trouve flatteur pour les élèves, mais a mon avis, s'ils ne savent pas ajouter 2 fractions...
    Pour les détails du C: le std:cout << itoa(...) colle à la suite la valeur de la chaine numérique , donc ma variable qui double, l'affichage fonctionne parfaitement. (je rappel que je ne suis pas votre exemple, a mon avis trop complexe pour les élèves que vous citez...).
    Je veux afficher simplement une suite de nombre.
    De toute façon, je ne suis pas pour que un prof de math traduise dans un langage un prog, au vue de ce que je lit.
    Ceci était pour vous dire de ne pas jouer avec Python, qui, je le parie, va disparaitre comme le Delphi a disparu, et bien d'autres.
    Ce n'est pas pour vous humilier, contrairement à ce que essaie de faire croire le manipulateur Brian,
    qui d'ailleurs, comme tous prétentieux (en informatique), essaie de discréditer les gens qui ne pensent pas comme lui.
    mais vous faire prendre conscience que vous allez faire des preps de classes, qui risquent rapidement de ne plus être utilisable, ou que vos élèves vous disent plus tard qu'ils sont "inemployables" selon les cabinets de recrutement (s'ils continuent sur ces voies de garage).


    Je n'ai pas mis les bib et tous le laïus qu'il faut, car justement, vous dites que Python utilise un simple scripte,
    et je suis d'accord, les notions de POO et autres sont inutiles dans ces classes.
    Suggestion:
    Alors pourquoi ne pas leur donner un méthode, avec les déclaration et autres subtilités du C ou autre langage,
    et des ... à compléter après un Algo en langage naturel comme je l'ai fait, et dont Brian oublie volontairement de parler ?

    C'est ça que je suggère, parce que j'ai enseigné, et que enseigner sur un outils qui a de forte change de disparaitre, est une perte de temps, surtout pour les élèves plus faibles, qui auront du mal a transposer ce qu'ils ont appris.

    Défendez Python si vous voulez, je m'en... . Cela me fait rire , pour tous vous dire.
    Par contre, j'espère que certains aurons compris mon message, de faire attention de ne pas s'abroger des compétences et prendre trop de risque à utiliser des outils amenés à disparaitre, imposés par des directives passées par des incompétents.

    "c'est qu'on ne peut pas motiver des élèves avec des algorithmes aussi inintéressants, du genre lire un nombre x et renvoyer ax+b avec a et b fixés, ou encore lire un caractère jusqu'à trouver un 'A', lire et afficher les caractères suivants jusqu'à trouver un 'Z'. "

    C'est comme dans le domaine de la musique: il faut motiver les élèves avec des truc qu'ils ne peuvent pas digérer, mais qui flatte leur égo.
    Bon, demander maintenant à un élève du conservatoire de faire des joutes d'improvisations...
    On voit le résultat de classement de la France sur le secondaire en général: 75 ème depuis les "révolutions péda (gol) gique(s) . (propos d'un Académicien prix Nobel)
    C'est marrant, le primaire, qui ne fait que des choses simples et primaires, avec en plus, contrairement à d'autres pays, des enfants issue de l'immigration, eux, restent dans les meilleurs!

    Cordialement
  • On ne cherche pas à défendre Python tout court, on sait faire la différence entre Python en classe et le langage lui-même.
    Par ailleurs, Delphi était un langage propriétaire, non ? Ce n’est pas étonnant qu’il ait presque disparu (il est utilisé par des programmes qui tournent encore aujourd’hui). Python n’est pas propriétaire.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • Bon merci pour ces quelques pistes intéressantes, et c'est vrai que faire du forcing sur quelque chose hors de portée mais intéressant et stimulant peut faire énormément progresser. Les tris c'est bien effectivement, ça permet aussi d'aborder et d'illustrer la question de la complexité.

    Je me place hors contexte EN, je n'y crois plus dans le primaire ou le secondaire (je ne suis pas le seul ...).

    Plus généralement sur les langages c'est difficile de connaître l'évolution, le libre (voire le gratuit) ne garantit pas toujours le premier plan. Je prends l'exemple de Perl très présent au début du web mais rapidement supplanté par PHP, conçu à l'arrache pour faire rapidement des trucs simples, trop longs ou difficiles en Perl, et qui est devenu le principal langage des CMS.
    A contrario C# a trouvé sa place, et, même s'il existe des solutions de compilation libres, ça reste quand même très lié à Microsoft.
    Delphi est un truc correct, je pense que son manque de succès est surtout du à la taille modeste de Borland/Embarcadero, à l'existence de produits Microsoft similaires, et le clone libre https://www.lazarus-ide.org/ reste aussi d'une audience limitée.
  • Coucou,

    Moi, ce que j'ai fait, c'est que j'ai repassé un Master en info, pour pouvoir mettre la main à la pâte correctement.

    J'ai découvert de la poussière sous le tapis:
    On n'a pas conscience, même et surtout si on apprend tous seul,
    de ce que cache actuellement l'info.

    Pour les évolutions, je vous faisait part de ce qui m'a mis la puce à l'oreille ou comme indicateur de ce qui va rester comme langage:
    - Libre, peu de chance, sauf si dans un domaine ouvert:
    - Le PHP en est un exemple: tous ce qu'on met sur internet ne peut être "propriétaire", et donc le fait qu'il soit ouvert joue en sa faveur
    - Compilation/AGL : le Défaut du Delphi c'est de proposer un mode de compilation en dessous du marché : Compilation en lignes de commande alors qu'à la même époque Visual Studio était qualifié de Rolls Royce
    - Pas de "défendeurs" à l'esprit obtus, ce qui indique au contraire une difficulté à s'imposer.
    - Normalisation: W3C: Normalisation (C, C++ et le html puis xhtml, ce qui a joué pour le PHP...)
    - Modélisation tout en étant et proche du processeur: le C++ permet les dernières idées de la POO (à quelques exceptions) tous en bénéficiant de sa compilation proche de l'assembleur
    - Continuité sur le parallèle: GPU utilisable facilement
    - etc...

    Ce que j'ai testé, c'est effectivement de fournir du code à compléter, avec des Fenêtre et du code moderne (AfxMessageBox(...) pour le c++ par exemple), et tous ce dont les élèves ne peuvent pas et ne doivent pas apprendre en classe.
    Ceci permet à l'élève qui peut aller plus loin, d'explorer l'exemple.
    Il a juste une méthode ou un accesseur à compléter pour son résultat.
    En plus en C, c++, on peut passer le pointeur d'une fonction, à une fenêtre de résultat, s'il veut créer sa fonction,
    pour l'utiliser. Il y a peut être l'équivalent en Python (pour rester dans les clous et ne pas se faire taper sur les doigts).
  • Bruno.Moraut écrivait:
    > - Normalisation: W3C: Normalisation (C, C++...

    Pardon, mais hahahahahah :)
  • Coucou :

    mordicus1973
    Ce genre de propos illustre ce que je disais.
    "- Pas de "défendeurs" à l'esprit obtus, ce qui indique au contraire une difficulté à s'imposer."

    Exemple typique de fanatique (qui a eu du mal à apprendre le langage qu'il défend et qui donc n'a pas d'argument, à par des onomatopées" , et qui se croit meilleur que "Bjarne Stroustrup": https://fr.wikipedia.org/wiki/Bjarne_Stroustrup

    Merci pour cet exemple, mordicus1973, pour illustrer mon propos.
    Très cordialement à tous
    Cordialement.

    [Inutile de reproduire le message précédent. AD]
  • PS pour le Général Brian :
    unsigned int n = 0; // Compteur étape n de la Suite Un, qui commence pour l'indice 0 de la suite
    unsigned int u = 1; // Initialisation de u à la valeur de départ U0 de notre suite à étudier
    
    // Ma boucle
    while ( n < 2048 )
    {
       stdout itoa( u); // Afficher la valeur de U à l'étape n
       u = u * 2;  // Affecter maintenant u, la valeur de Un à l'indice n, avec une nouvelle valeur = u x 2
       n = n + 1; // Incrémenter l'indice n de la Suite Un, pour passer au suivant
    } // fin et rebouclage tant que
    
    SI toi tu maîtrisait le C++ tu aurais pu me faire remarquer :
    n = n+1 ---> n++;
    un * 2 en unsigned int peut être mis décalage de bits << 1
    et que ou boucle ou l'on fait 2048 fois multiplier par 2, cela donne 2^2048 de l'ordre de 10^616
    donc seul un long double peut garder la valeur.
    Troll en communication.
    Troll en pédagogie.
    Troll en programmation.
    Troll en politesse.

    Je t'ai piégé !
    Cordialement aux autres
  • Bruno.Moraut a écrit:
    - Libre, peu de chance, sauf si dans un domaine ouvert:

    :-S
    - Pas de "défendeurs" à l'esprit obtus, ce qui indique au contraire une difficulté à s'imposer.

    Je n’ai rien lu de ce genre par ici.
    - Normalisation: W3C: Normalisation (C, C++ et le html puis xhtml, ce qui a joué pour le PHP...)

    Le W3C normalise le C et le C++ ?
    - Modélisation tout en étant et proche du processeur: le C++ permet les dernières idées de la POO (à quelques exceptions) tous en bénéficiant de sa compilation proche de l'assembleur

    On peut transformer un script Python 3 en un code en C (ou C++) avec cython3.
    En plus en C, c++, on peut passer le pointeur d'une fonction, à une fenêtre de résultat, s'il veut créer sa fonction, pour l'utiliser. Il y a peut être l'équivalent en Python (pour rester dans les clous et ne pas se faire taper sur les doigts).

    En Python, une fonction est aussi un objet et une fonction peut être passée comme paramètre dans une fonction sans problème. Il existe même un mot clé pour créer une fonction anonyme en Python : roulement de tambour… lambda.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • nicolas.patrois écrivait:
    Bruno.Moraut a écrit:
    - Libre, peu de chance, sauf si dans un domaine ouvert:
    > :-S

    Attention, vous avez marché dedans...
  • Laisse tomber Romyna, j'ai déjà balancé plein de sources montrant que Python est largement dans le top 3 des langages les plus utilisés au monde mais Bruno Moraut ne veut rien entendre (mais bien sûr n'est pas capable de donner aucune source pour étayer ses informations).
  • Coucou:
    héhéhé à dit : (voir message précédent)
    Le plus utilisé en nombre de personne qui l'utilisent ou en bénéfices pour les sociétés ?
    En efficacité ?
    Tu n'a pas lu ce que j'ai dit plus haut.
    Par exemple, tous les jeux vidéo sont bien sur fait en Python !

    Si je suis ton raisonnement :
    système le plus utilisé = système le meilleur
    =>
    la dictature politique est le système politique le plus utilisé sur terre => la dictature politique est le meilleur système politique
    Bonne logique pour un prof de math !
    C'est pourquoi il ne faut pas faire enseigner l'informatique par les profs de maths !
  • N'importe quoi, la plupart des jeux vidéos sont codés en C++, car justement il faut de l'efficacité en calculs 3D. Tu démontres une nouvelle fois que tu ne connais pas de quoi tu parles.
  • Monsieur Moraut.

    Où en est votre candidature pour devenir professeur d'informatique ?

    Avez-vous des sujets développés à proposer, des variations sur des algorithmes connus, des réalisations personnelles qui sont méconnues de la plupart des gens mais qui permettent de mettre en évidence des points particuliers de l'apprentissage du C ou du C++ ?

    Ce serait vraiment intéressant de pouvoir les proposer.

    Merci d'avance.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • je cite "héhéhé":

    "N'importe quoi, la plupart des jeux vidéos sont codés en C++, car justement il faut de l'efficacité en calculs 3D. Tu démontres une nouvelle fois que tu ne connais pas de quoi tu parles."

    C'était de l'humour, pour te faire dire que les jeux vidéos sont bien en C et C++, sur GPU !

    Par contre, toi tu ne comprend vraiment pas l'humour !

    Alors pourquoi le Python si tu dis que Python est le meilleur langage, on ne fait pas de jeux avec --> parce qu'il est interprété (pas efficace)
    Pourquoi s’embêter (je vois les question poo du site) avec Python pour ne pas être efficace ? (voir mes messages plus haut)

    Comme maintenant on est d'accord, le plus grand nombre de logiciels efficaces est fait en C/C++.
    Mais pas que: tous les logiciels efficaces sont fait en C/C++ !

    Donc tu viens de démonter que le Python n'est pas un bon langage--> Complexe + pas efficace !
    malgré qu'il est soit disant "très utilisé".

    En fait, il est beaucoup utilisé, car on a voulu faire baisser les salaires des informaticiens,
    et donc il faut beaucoup de candidats.
    Comme on veut beaucoup de candidats, il leur faut des outils simples,
    afin de pouvoir donner des diplômes à tous le monde.

    On envoie dans des filières informatiques, de mauvais élèves, qui ne peuvent aborder des langages efficaces.

    Les bons, eux, n'apprennent rien, ou partent à l'étranger quand ils s'en rendent compte.

    C'est ce que j'ai voulu expliquer.


    Pour ce qui est de la candidature de prof d'info, il ne peut y en avoir,
    puisqu'il n'y a pas de poste de prof d'info !
    Comme ça on peut imposer le Python.
    La boucle est bouclée.

    Quand à un exemple: j'en ai donné un, avec un exercice simple en algorithme en langage naturel.
    Ceci peut parfaitement être donné par un prof de math.
    C'est d’ailleurs ce qui est fait dans le bouquin: "Introduction à l'Algorithmie".

    Vous pouvez le faire avec n'importe quel pb de math.

    A++
  • Bruno.Moraut a écrit:
    Alors pourquoi le Python si tu dis que Python est le meilleur langage, on ne fait pas de jeux avec --> parce qu'il est interprété (pas efficace)
    Pourquoi s’embêter (je vois les question poo du site) avec Python pour ne pas être efficace ? (voir mes messages plus haut)

    Décidément vous racontez n'importe quoi sans savoir. Vous avez déjà écrit des jeux vidéo ?
    La seule chose qui est en C/C++ c'est le moteur du jeu. Il y a un langage de script (horreur, malheur) qui est très utilisé dans l'industrie du jeu vidéo, c'est LUA (mais quelle bande d’incompétents ces développeurs de jeux vidéo).
    On trouve aussi beaucoup de Python, de l'ECMASCRIPT, et parfois des langages de script maison dans les jeux vidéo. Et je ne suis pas en train de parler de "2048" ou du pendu mais bien des jeux dit "AAA" qui coûtes plusieurs millions de dollars à produire.
    Ces langages pilotent le moteur, et pourquoi ? Parce qu'il est beaucoup plus simple et efficace de programmer des comportements en langage de script qu'en C++...

    Et non, les jeux ne sont pas sur GPU, encore une fois vous racontez n'importe quoi.
    Le GPU est utilisé pour trois choses qui font parti du moteur :
    - la 3D
    - Le moteur physique
    - Éventuellement un peu d'IA

    Et aucune partie qui se trouve dans le GPU n'est du C ou du C++.
    Regardez l'API de Vulkan, OpenGL ou DirecX et ho... c'est du HLSL ou du GLSL, bref tout sauf du C++
    Même CUDA qui est utilisé en HPC n'est pas du C++, ça y ressemble mais c'est tout.

    Donc non, le GPU ne se programme pas en C++. Tout ceci prouve que vous fantasmez plus qu'autre chose. Je doute que vous ayez un jour fais autre chose avec un GPU que d'en parler...
Cette discussion a été fermée.
Success message!