Sortie de Linotte en version 0.5.1, un langage simple en français pour apprendre à programmer.

Posté par . Modéré par Jaimé Ragnagna.
Tags :
2
17
juin
2008
Éducation
Linotte est un langage de programmation en français simple destiné aux enfants ou aux débutants. Partant d'un constat simple : peu de langages de programmation en français existent. À part le Logo, pour débuter en programmation, il faut se farcir obligatoirement un langage en anglais !

Alors, pourquoi ne pas utiliser notre si belle langue pour débuter ou pour écrire des choses simples ? Enfant, vous avez aimé écrire quelques lignes en Logo. Souvenez-vous de vos premiers sourires devant vos premières lignes de programmation sur MO5 ou TO7 ! Il sera possible de retrouver ce sourire avec la... dernière machine super puissante !

Avec Linotte, pas de compilation, pas d'environnement de programmation compliqué : tout a été conçu pour être le plus simple et naturel aux possibles. Le langage utilise un vocabulaire simple et surtout, emprunte à la langue française sa syntaxe ! Pour afficher un texte, il suffit d'écrire : Tu affiches "Bonjour !"

Simple non ?

Écrit en langage Java, il est disponible sur les environnements disposant d'une machine virtuelle Java récente.

NdM : les spécifications du langage sont sous licence propriétaire CC by-nc-nd (attribution, non commercial et pas de dérivé), et l'interpréteur est libre sous licence GPL. Après quatre années d'existence, j'ose enfin présenter mon projet sur LinuxFr. J'espère que les lecteurs comprendront que Linotte arrive en complément dans le monde des langages de programmation : après avoir découvert les principes de base de la programmation, un "programmeur" Linotte pourra rapidement passer à un autre langage : Python, Ruby, Java, etc.

L'esprit du langage est d'être le plus simple possible et de n'avoir aucune paradigme scientifique ou mathématique comme la plupart des langages de programmation. Ainsi, l'inspiration du vocabulaire utilisé a été emprunté à la littérature et au cinéma. Le mot "programme" n'existe pas. En Linotte, cela s'appelle un livre. Une méthode est un paragraphe et une variable, un acteur. On écrit donc un livre qui contient des paragraphes joués par des acteurs !
  • Les variables typées
  • La manipulation d'objets
  • La programmation par contrat
  • Le graphisme
Les variables sont ainsi typées. Seulement quatre types de variables existent : le nombre, le texte, le casier et l'espèce.

Le nombre et le texte sont les types les plus simples : on peut les comparer à des String ou des Decimal en Java. Le casier est en fait un tableau. Il est également typé car lors de sa définition, on précise le type de variables qu'il va contenir pendant toute la durée de sa vie. L'espèce est un objet qui contient des caractéristiques. Il peut être comparé à une classe en Java mais en plus simple !

Voici un premier exemple simple :
Livre : capitale de la France

Paragraphe : question

les rôles :
capitale est un texte vide

les actions :
tu affiches "Quelle est la capitale de la France ?"
tu demandes la capitale
si capitale est égale à "Paris" alors tu vas vers la réponse bonne
sinon, tu affiches "Faux ! tu peux recommencer !"
tu vas vers la question

Paragraphe : réponse bonne

les actions :
tu affiches "Bravo, tu es trop fort !"
tu termines


C'est un exemple très basique mais il montre l'utilisation des paragraphes et des acteurs. Une ligne est égale à une commande.

En linotte, on peut également s'amuser à dessiner des objets. Ces objets graphiques sont en fait des "espèces" qui contiennent des caractéristiques particulières comme par exemple des coordonnées et une couleur. Trêve de blabla, voici un autre exemple :
Livre : Les couleurs

Grands rôles :
tableau est un rectangle, x est 250, y est 250, largeur est 100, hauteur est 50, taille est 30
couleur est un graffiti, x est 235, y est 375, taille est 5
mur est une toile, couleur est "blanc"

Paragraphe : Décor

Actions :
efface la toile
projette tableau
projette couleur
pour chaque couleurs, va vers changement
termine

Paragraphe : Changement

Actions :
couleur de tableau = joker
texte de couleur = joker
attend 0.3 seconde
reviens

Cet exemple affiche sur "la toile" un rectangle et va modifier périodiquement sa couleur. Couleurs est un acteur particulier car il contient la liste des couleurs reconnues par Linotte (liste qui se retrouve ici : Liste_de_couleurs. )

Et voilà, vous avez fait une petite formation Linotte en accéléré. Ce langage de programmation, visiblement simple, cache un grand nombre de fonctionnalités... je vous invite à les découvrir !
  • # Bravo

    Posté par (page perso) . Évalué à 5.

    Je n'ai pas de temps pour le tester dans l'immédiat, mais je trouve l'idée de base, les concepts et le travail vraiment intéressants!

    Bravo donc à celui qui par 'linotte' devrait permettre à beaucoups d'appréhender en douceur la programmation (qui est très difficile à aborder pour une population qui n'a pas encore été sensibilisée à la 'logique' informatique ou électronique).

    Je souhaite vraiment que le projet devienne populaire dans les milieux où l'on sensibilise à la technologie (collèges?) et qu'il se pérennise!
  • # Bonne idée !

    Posté par . Évalué à 4.

    Comme le commentaire précédent je trouve cela super comme réalisation. Je ne sais pas ce qu'en penserons les enseignants des âges concernés...
    Une question cependant : pourquoi avoir mélanger des concepts de la littérature et du cinéma ? Pourquoi Livre plutôt que Film, chapitre plutôt que scène et acteur plutôt que personnage ( ou inversement) ?
    • [^] # Re: Bonne idée !

      Posté par . Évalué à 2.

      Bonsoir et merci !

      J'ai essayé de trouver les meilleurs termes. Etant donné que je voulais que Linotte soit proche du français, j'ai pensé tout de suite aux concepts liés à la littérature. Mais avec le temps, utiliser des mots empruntés au cinéma, s'avérait plus parlant.
  • # Grammaire...

    Posté par . Évalué à 4.

    Très interressant!!

    Petite question...
    J'ai vu que c'est en français avec de vraies phrases que tu programmes en Linotte. Donc le langage gère toutes les fautes de grammaires? T'as inclus un analyseur gramaticale de la langue française? Comment as-tu fais?

    Autre point, je trouve que même si ça semble bien pour apprendre les principes de la programmation, à la lecture de tes exemple, ça me semble pas très lisible dans le sens où la langue française est trop "loquace", pas assez succinte et le ratio information/nombre de mots en trop faible. Ca doit pas être cool pour trouver une erreur ou maintenir du code....

    Sinon, existe-il une version SMS !?!
    • [^] # Re: Grammaire...

      Posté par (page perso) . Évalué à 7.

      Mouais.

      Je trouve ça déplacé de parler de "notre belle langue" dans ce contexte. En soi, cela n'a rien à faire ici: Un langage de prog est plus simple à apprendre s'il est plus proche de la langue maternelle, admettons, mais de là à y mettre des phrases et de le faire ressembler à du langage naturel, non. En BASIC on ne dit pas "you go to line 13". Et puis, avant de défendre notre belle langue, il faudrait y travailler un minimum: le site web de linotte est truffé de fautes de grammaire et d'orthographe phénoménales -- tout comme les commentaires qui le félicitent ici.

      D'un point de vue pratique, je soupçonne aussi que la grammaire de linotte soit très mal foutue: même si elle a une spec stable, ce dont je doute, je mets ma main à couper qu'elle n'est pas intuitive, que ses règles ne sont pas simplement assimilables. Les exemples font peur, quelle lourdeur.

      Dans l'apprentissage de l'algo, il y a certes deux composantes: (1) le concept d'algorithme, i.e. la formalisation de la pensée, et (2) l'écriture en syntaxe concrète de l'algorithme. Je suis d'accord qu'en théorie les deux sont séparés. Mais en pratique, j'ai quand même l'impression qu'une syntaxe concrète simple aide à formaliser. Il faut comprendre qu'on ne parle pas à un être humain, on donne une recette précise à ue machine. Idéalement, en apprenant la grammaire d'un langage de programmation, on pourrait voir se détacher les concepts algorithmiques de base.
      • [^] # Re: Grammaire...

        Posté par . Évalué à 1.

        >Dans l'apprentissage de l'algo, il y a certes deux composantes: (1) le concept d'algorithme, i.e. la formalisation de la pensée, et (2) l'écriture en syntaxe concrète de l'algorithme. Je suis d'accord qu'en théorie les deux sont séparés. Mais en pratique, j'ai quand même l'impression qu'une syntaxe concrète simple aide à formaliser. Il faut comprendre qu'on ne parle pas à un être humain, on donne une recette précise à ue machine. Idéalement, en apprenant la grammaire d'un langage de programmation, on pourrait voir se détacher les concepts algorithmiques de base.

        +1

        Je trouve que l'emploi d'une unique analogie (littéraire ou cinématographique) n'aide pas à l'abstraction nécessaire pour l'algorithmique (ou les maths en général).

        Peut être voir si on peut porter/libérer ça[1] http://membres.lycos.fr/zegour/Developpement/Seriez/Kwz2-nou(...)

        {
        Algorithmes simples
        Somme des N premiers naturels
        }
        SOIENT
        I , N , Somme DES ENTIERS ;
        DEBUT
        LIRE ( N ) ;
        Somme := 0 ;
        POUR I := 1 , N
        Somme := Somme + I
        FPOUR ;
        ECRIRE ( Somme ) ;
        FIN

        ou ressusciter ça : http://fr.wikipedia.org/wiki/LSE_(langage_de_programmation)
        qui me semble plus pratique d'un point de vue pédagogique.

        >>>À part le Logo, pour débuter en programmation, il faut se farcir obligatoirement un langage en anglais !

        Au delà du Logo, il y a d'autres langages en français (on peut faire quelques algo avec un tableur (très perturbant de devoir utiliser un SI ou ET)), et il y a quelques 4GL apparemment[2]

        [1][2]trouvé via developpez.net http://www.developpez.net/forums/showthread.php?t=340276
        • [^] # Re: Grammaire...

          Posté par . Évalué à 2.

          En fait, programmer ne doit pas être synonyme "je dois produire un algorithme".
          On peut programmer pour son plaisir. Quand je parle de "programmation aux enfants", je pense à des programmes très simple comme :

          Tu demandes le nom
          Tu affiches le nom
          Tu demandes âge
          Si l' âge est plus grand que 10, tu affiches "Tu es grand"

          Même si avec Linotte.. on peut aller beaucoup plus loin !

          Dans ce cas, on apprend juste à communiquer avec un ordinateur. Pas d'algo, on s'amuse. Le prof n'est pas obligé d'être un expert en algorithme pour apprendre aux enfants les rudiments de la programmation.
        • [^] # Re: Grammaire...

          Posté par (page perso) . Évalué à 4.

          Il y a un truc qui me dérange dans cette syntaxe, c'est la façon dont on appelle une fonction. Ça fait penser au goto, et donne donc l'impression qu'on ne reviendra pas au point d'appel.

          J'aurais plutôt envie d'écrire :
          tu passes par <paragraphe>
          Au fait, on peut passer des arguments ?

          Ce projet me semble une merveille, mais quel est exactement le but :

          faire découvrir la programmation à des enfants ?
          donner à des enfants le moyen de programmer ?

          Les deux sont pour moi très différents. Dans le second cas, il faut un langage pour les enfants, qui peut être radicalement différent de ce qui se fait en général. Alors que premier cas, il faudrait leur permettre d'apprendre les mécanismes de programmation usuels. Qui me semble fort différents de la structure linéaire d'un roman, qui semble mise en valeur par la syntaxe de Linette.
          • [^] # Re: Grammaire...

            Posté par . Évalué à 3.

            Bonjour,

            En effet, j'utilise dans Linotte le GOTO. ça mérite une explication.... Ce choix n'a pas été simple....

            Lors de la conception de Linotte, je me suis inspiré, entre autres, du mécanisme des livres : "dont vous êtes le héros".
            Je suis dans un paragraphe, j'ai le choix d'aller dans un ou dans un autre mais je ne peux pas revenir en arrière avec une phrase comme "Reviens dans le paragraphe précédent", ça serait illisible !
            J'ai adopté le même principe.

            De plus, utiliser des fonctions implique l'utilisation de variables locales, et ça, je me l'étais interdit.
            Le principe de Linotte est : une variable en mémoire contient un nom et une valeur et existe tout le cycle de l'exécution du programme.
            Expliquer qu'une variable n'existe que dans une certaine partie d'une programme et ensuite disparait... Ce n'est pas si trivial pour une personne qui débute.

            Personnellement, j'ai débuté à programmer sur un Amstrad avec le BASIC. Ce n'est pas pour ça que j'ai eu du mal à passer à d'autres langages. Bien au contraire je pense, car, ça permet d'apprendre doucement tous les concepts de la programmation.
            • [^] # Re: Grammaire...

              Posté par (page perso) . Évalué à 2.

              J'ai peur que ça permette aussi d'apprendre plein de mauvaises pratiques.

              Ne serait-il pas possible de disposer des deux fonctionnalités ? Pour les plus jeunes du goto et des variables globales, et pour ceux qui veulent en savoir plus, des fonctions et des variables locales ?
              • [^] # Re: Grammaire...

                Posté par (page perso) . Évalué à 2.

                Appels de fonction par goto, et on veut vendre ça pour apprendre la programmation? 0_0; Il faudrait peut-être que l'auteur arrête d'encourager à utiliser un truc qui fera plus de mal que de bien à ceux qui l'utiliseront.
                • [^] # Re: Grammaire...

                  Posté par . Évalué à 2.

                  "truc qui fera plus de mal" ... mouais...

                  Mais je vais y penser. C'est vrai qu'il y a eu plusieurs remarques par rapport à ce fameux GOTO notamment de Tanguy Ortolo dans un commentaire plus loin.
                  Mais un langage impératif sans GOTO, ça ne va pas le limiter ?
                  Est-ce que des conditions et des boucles Tant que sont suffisantes pour créer des programmes ?
                  • [^] # Re: Grammaire...

                    Posté par . Évalué à 2.

                    Oui.
                    • [^] # Re: Grammaire...

                      Posté par (page perso) . Évalué à 3.

                      Oui, goto est largement abandonné, aujoud'hui.
                      • [^] # Re: Grammaire...

                        Posté par (page perso) . Évalué à 2.

                        Il n'y a qu'à regarder le code source de Linux pour s'en convaincre (pas tapper /o/).
                        • [^] # Re: Grammaire...

                          Posté par (page perso) . Évalué à 2.

                          Arf, je ne savais pas.… :-)

                          Bon, ceci dit, un noyau, en même temps, c'est très particulier, non ?
                          • [^] # Re: Grammaire...

                            Posté par . Évalué à 4.

                            Ca n'a rien a voir avec le noyau..
                            Les 'goto locaux' pour remplacer les exceptions dans une fonction C sont un style tout a fais acceptable a mon avis..

                            Mais ils ne sont utilisés que dans des cas bien spécifiques, et beaucoup moins que les appels de fonctions..


      • [^] # Re: Grammaire...

        Posté par . Évalué à 1.

        "je soupçonne aussi que la grammaire de linotte soit très mal foutue"

        Merci
        • [^] # Re: Grammaire...

          Posté par . Évalué à 3.

          En même temps, la grammaire de sa phrase n'était pas terrible non plus.
      • [^] # Re: Grammaire...

        Posté par . Évalué à 4.

        Je trouve ton commentaire d'un cynisme incroyable !

        1 - Sache que Linotte n'a pas été conçu pour apprendre l'algorithme.
        2 - En Basic, on ne dit pas "You go to line 13". Et alors ? Tu as d'autres arguments ? Arrêtez de vous référer à ce qui à déjà été fait ! Un peu d'ouverture d'esprit ! Tu t'enfermes dans des concepts, des formalisations qui te limitent dans ta façon de penser.
        3 Désolé, mais la spec de Linotte a été pensée. Je te trouve un peu prétentieux d'écrire qu'elle est mal foutue. Peux-tu me donner des exemples au lien de dire "je donne ma main à couper". En gros, tu n'as rien lu sur Linotte ? Si, quelques exemples et tu généralises ?
        5 Je sais que je vais m'attirer les foudres en te répondant ainsi... mais la véhémence de ta réponse me l'oblige.
    • [^] # Re: Grammaire...

      Posté par . Évalué à 1.

      Bonjour,

      L'analyseur grammaticale sait reconnaitre une phrase qu'à partir d'une liste de lexèmes : comprendre qu'il est très basique.... Tout est décrit dans un affreux fichier XML. Modifier ce fichier pour avoir une version SMS est tout à fait possible mais cela revient à réécrire un sorte de langage BASIC et ce n'était pas mon but. Je voulais aller plus loin dans l'expérimentation d'un langage en français....
      • [^] # Re: Grammaire...

        Posté par . Évalué à 3.

        C'était un peu d'humour étant donné que nos jeunes parlent mieux maintenant le langage SMS que le français... Donc l'approche de la programmation aurait été plus facile pour eux avec un langage SMS :)
  • # Quelle horreur...

    Posté par (page perso) . Évalué à 9.

    Sans vouloir décourager l'auteur, je trouve que la syntaxe est une belle horreur. À vouloir la rendre naturelle, elle en devient absolument indigeste. Le problème est que le language naturel peut prendre de multiples formes. Par exemple, pour déclarer une variable, on peut dire:

    x est un nombre

    ou

    soit x un nombre

    ou encore

    définis x comme étant un nombre

    et ainsi de suite... Un language de programmation ne pouvant prendre en compte tous ces moyens d'expression, il impose l'apprentissage d'une seule et unique forme précise ; dans ce cas, pourquoi embêter le programmeur (et le compilateur) à faire des phrases compliquées sujet-verbe-complément alors qu'une syntaxe beaucoup plus simple, même si grammaticalement incorrecte, serait plus facile à retenir et manipuler?

    Je doute fortement que quelqu'un puisse se servir de ce language comme tremplin pour passer à quelque chose de plus "sérieux". Pour quelqu'un qui veut apprendre la programmation, je recommenderais plutôt pascal, basic ou logo, pour ceux qui veulent absolument apprendre à programmer en "français". C'est dommage, mais je pense qu'il s'agit là d'un language qui peut faire plus de mal que de bien.
    • [^] # Re: Quelle horreur...

      Posté par (page perso) . Évalué à -2.

      Je me ranges dans le camp des horrifiés. En fait, je suis incapable de programmer avec des mots en français. L'anglais possède une bien plus grande variété de mots, et des mots plus cours pour fournir un langage de programmation. Même lorsque j'avais des cours d'algorithmie, j'étais obligé de traduire « tant que » par « while ».
      Bref, je n'ai jamais touché au W-Langage.
      Sans compter que j'ai toujours été allergique à :

      File * fic ;

      Beurk.

      Pour en revenir au langage, il est trop verbeux à mon goût. Enfin bref, je ne conseillerais à personne de commencer à apprendre la programmation par là. Surtout pas des enfants.
      • [^] # Re: Quelle horreur...

        Posté par . Évalué à 4.

        Bonjour,

        Je viens de lire tous vos commentaires et je suis étonné de voir que vous vous arrêtez seulement (pour la plupart )au fait qu'un langage soit verbeux ou pas.

        Linotte a des défauts, mais je pense qu'ils sont ailleurs.

        Pourquoi écrire "Tu affiches X" ou "System.out.println(X)" est-il si différent ? Pourquoi s'interdire de penser en français en informatique à l'école ou alors pour son propre plaisir ? Parce que c'est comme ça ? Parce que les premiers langages ont été créés en anglais ? que tu sois incapable de programmer en français ne veut pas dire que tout le monde est incapable de le faire ! tu as combien d'années d'expériences en programmation ? beaucoup j'imagine ? C'est peut être pour cela que tu n'y arrives plus.

        J'ai voulu par ce projet voir si c'était possible de faire un langage proche du français. Il reste des choses à améliorer, rien n'est parfais mais je pense personnellement que l'on peut y arriver.

        Mais, pourquoi le déconseiller à des enfants ? Ta phrase me choque. Peux-tu me donner plus d'argument ? A un enfant de 8 ou 10 ans, que lui conseilles-tu ?
        • [^] # Re: Quelle horreur...

          Posté par . Évalué à 6.

          Tu n'as pas bien lu son commentaire.
          Utiliser des mots clef Français, ce n'est pas un probleme.

          Utiliser une syntaxe qui ressemble a des phrases de Français, c'est une *très mauvaise* idée: c'est peut-être agréable a lire (encore que moi je trouve ça lourd), mais a écrire c'est une horreur car beaucoup de phrase de Français ne seront pas valable et donc ça va perturber l'écriture..

          Pour répondre a ta question, je crois que pour l'enseignement Squeak est utilisé (entre autre car il permet la "programmation" sans language) mais j'ignore quel age il cible..
          • [^] # Re: Quelle horreur...

            Posté par (page perso) . Évalué à 2.

            Bien d'accord avec Reno.

            Si on s'en réfère à l'histoire, forcément récente, de l'informatique, on retrouve ce type de rêves de langages de programmation «qui n'ont pas l'air de langages de programmation» (le Canada Dry des langages de programmation), en croyant qu'on va rendre les choses accessibles car elles sont en français «presque parlé».

            Dans cette catégorie, j'ai nommé : COBOL (COmmon Business Oriented Language) et SQL (Structured Suqery Language).

            Ces langages, même s'ils sont énormément utilisés, n'en sont pas moins cantonnés comme les autres à être manipulés par des «informaticiens», en gros : des gens qui ont appris spécifiquement à les utiliser.

            L'usage d'une langue qui parait naturelle est un piège, pas une aide. Il faut se résoudre à l'évidence : une langue naturelle supporte des formes variées et des choses implicites (comme en Perl), mais dans tous les cas sa syntaxe est figée.

            Pour ma part, tant qu'à opter pour le français, je préférerais un langage qui soit dans le genre du langage algorithmique. Mais comme le disait quelqu'un dans un autre commentaire, rester sur des termes anglophones (while...) permet aussi de bien se rappeler qu'on est en train d'écrire dans un langage et pas en français, donc pas de faux-amis.
            • [^] # Re: Quelle horreur...

              Posté par . Évalué à 3.

              et bien moi je vais prendre la défense de Linotte !

              Ceux qui critiquent la programmation en langage naturel ont-ils déjà réellement **utilisé** un tel langage ? Ou bien ces critiques ne seraient-elles pas juste des préjugés basés sur leur expérience dans des langages de programmation plus conventionnels ?

              Tout d'abord, l'auteur de linotte précise bien que "Linotte est un langage de programmation en français simple destiné aux enfants ou aux débutants.". Alors, programmateurs éclairés de perl, python, C# ou assembleur, craignez-vous vraiment que Linotte déforme la tête de ces jeunes et ces débutants, leur donnant de "mauvaises habitudes" ou les empêchants d'aborder un vrai langage de geek par la suite ? Ou peut-être tout simplement que certains utilisateurs n'iraient jamais vers les joies du C++, et voudraient simplement concevoir des programmes dans un langage abordable ? Il existe d'ailleurs les apple script pour programmer son ordinateur, mais c'est limité aux mac, au moins linotte est pour tout le monde (même si la finalité n'est pas tout à fait la même).


              Ensuite, quand on parle de "langage naturel", cela n'implique pas forcément que le compilateur soit supposé comprendre tout ce qu'on lui écrit en français, ni maintenant, ni à terme, même s'il y a actuellement deux modes, impératif et déclaratif, pour proposer plus de choix à l'auteur.

              Enfin, selon le développement futur du langage, il sera sans doute possible d'apporter de plus en plus de puissance et de possibilités aux utilisateurs. Je ne dis pas que Linotte n'est pas assez puissant, pour le moment je suis juste en train de lire le manuel, et cela me semble bien prometteur en tout cas.

              Par contre je connais un peu le langage Inform 7, qui propose quelque chose de similaire, bien que dédiés aux aventures textuelles. Un des gros avantages selon moi de ce type d'approche, ce n'est pas que la syntaxe soit 100% "naturelle", mais que la conception du code le soit. On créé des objets que l'on peut manipuler et intellectualiser de façon très logique et naturelle, on créé un univers par petites touches et des relations qui en découlent sans que cela soit fastidieux. De plus, même si ce type d'écriture implique parfois plus de mots tapés (mais ce n'est même pas certain), une fois la syntaxe connue il me semble que la rédaction coule mieux qu'avec du code plein de caractères sur lequel on peut buter. C'est efficace et fonctionne bien.

              Bien sûr, chaque approche aura son lots d'adeptes et de détracteurs, mais au moins on a le choix entre les méthodes...

              Et non, Linotte ne me semble pas "une horreur" (ni une erreur) !

              Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

              • [^] # Re: Quelle horreur...

                Posté par (page perso) . Évalué à -1.

                Alors déjà, merci de ne pas nous traiter de machine. Je veux bien que notre société te pousse à le penser, mais quand même.

                Nous sommes des programmeurs.

                En ce qui concerne les craintes, elles sont fondées. Lorsqu'on parle de programmation, on oublie l'essentiel : un programme est destiné à résoudre un problème à l'aide d'une machine à traiter l'information. Les programmeurs Perl/PHP/langage de script ont tendance à oublier que le dynamisme consomme beaucoup de ressources. Les programmeurs Java ont tendance à oublier que sous la JVM, il y a un matériel informatique. Le programmeur C à tendance à oublier que le C est un assembleur avancé. Ce que je pense que les programmeurs Linotte ne sauront pas, c'est qu'un ordinateur ne comprend pas le français, et ne peut le comprendre dans l'état actuel de la technologie.

                Au fait, le C, C++, C# et Java ne sont pas des langages de Geek, ce sont des langages de professionnels.
              • [^] # Re: Quelle horreur...

                Posté par . Évalué à 5.

                Ceux qui critiquent la programmation en langage naturel ont-ils déjà réellement **utilisé** un tel langage ?

                J'ai déjà (trop) utilisé le W-Langage. Le truc lié à WinDEV, qui se prétend "langage naturel". Si ce n'est une multiplicité des tournures ("a est un entier", "a est entier", "a un entier" et "a entier" se valent, si j'ai bonne mémoire) tout à fait perturbante, ça n'apporte strictement rien par rapport à un langage "normal" : il faut toujours rechercher dans les références la fonction dont tu as besoin (et en général tu ne la recherches pas par son nom mais par sa description, puisque si tu connaissais son nom tu ne la chercherais pas...), il faut toujours se souvenir comment fonctionne une boucle, etc.
                • [^] # Re: Quelle horreur...

                  Posté par . Évalué à 1.

                  pour nos amis pervers, je recommande HyperTalk et sa progéniture batarde, dont Lingo de Macromedia Director
  • # ASCII ou Unicode ?

    Posté par . Évalué à 2.

    Oui c'était juste pour savoir si c'est de l'ASCII ou de l'Unicode ?

    Les logiciels sous licence GPL forcent leurs utilisateurs à respecter la GPL (et oui, l'eau, ça mouille).

    • [^] # Re: ASCII ou Unicode ?

      Posté par . Évalué à 1.

      je ne comprends pas trop ta question ? les fichiers sont en ISO-8859-1
      • [^] # Re: ASCII ou Unicode ?

        Posté par (page perso) . Évalué à 2.

        J'ai failli avaler ma langue de surprise. Bon remarque, en 2004, unicode n'était pas évident. Mais c'est dommage, d'autant que tu pars de java, qui est... en unicode !
        • [^] # Re: ASCII ou Unicode ?

          Posté par . Évalué à 1.

          oui oui... c'est historique.... je crois que mon Eclipse était en ISO 8859 et du coup, en passant de Fedora, à Windows, j'avais toujours des problèmes d'encodage... et puis, pour écrire des é è et à... c'est largement suffisant !
          • [^] # Re: ASCII ou Unicode ?

            Posté par (page perso) . Évalué à 2.

            Il ne faut pas forcer un charset, il faut juste le spécifier explicitement s'il est différent du charset par défaut. Python utilise ASCII par défaut et on peut changer ça avec « # -*- coding: utf8 -*- ». XML utilise utf8 par défaut, et on peut un spécifier un autre avec <?xml version="1.0" charset="iso-8859-1" ?>.
            • [^] # Autodétection

              Posté par (page perso) . Évalué à 1.

              Puisqu'on est en français, c'est latin-1 ou latin-9 (très proche, on peut les assimiler, pour des enfants), ou alors UTF-8.

              Or, on peut déterminer si un fichier n'est pas en UTF-8. Et supposer qu'il est alors en latin-9.
  • # Le C et le C++ peuvent parler français

    Posté par . Évalué à 3.

    Pour cela, rien de plus simple, une série de #define pour chaque élément du langage et le préprocesseur transforme la langue de Molière en hideux C/C++

    J'ai même vu des cours de programmation avec ce genre de choses !

    Vous ne me croyez pas ?
    J'ai trouvé (merci Google et Uppity) ça : http://www.lirmm.fr/~reitz/enseignement/CNAM/APA/HTO/Exemple(...)

    A vous d'essayer.
  • # C'est fun !

    Posté par (page perso) . Évalué à 2.

    J'aime bien Linotte. Je pense que ça peut être un bon exemple pour faire comprendre ce qu'est un fichier source lorsqu'on présente les logiciels libres.

    Par contre, j'ai été déçu de voir des = pour les affectations.
    Pourquoi ne pas utiliser "devient" ?

    x = x + 1 est déroutant (ben oui, x n'est jamais égal à x+1).
    Par contre, "x devient x + 1".

    Et puis sinon, est-ce qu'il y a possibilité d'utiliser des livres depuis d'autres livres ?
    En les prenant, par exemple, dans..... une bibliothèque :D
    • [^] # Re: C'est fun !

      Posté par . Évalué à 2.

      Bonjour,

      C'est une bonne idée pour le "devient".
      Le x=x+1 a été ajouté car beaucoup de personnes étaient déroutées justement par les mots en français...

      Pour l'import des livres... j'y pense... mais je n'ai pas encore trouvé la manière !
      Et puis, comme c'est un langage non compilé mais interprété, j'ai des problèmes de performance à régler avant....
      • [^] # Re: C'est fun !

        Posté par . Évalué à 2.

        En fait, je vais plutôt opter pour le := que le =
        • [^] # Re: C'est fun !

          Posté par . Évalué à 2.

          Mouais, bof, je ne trouve pas que := soit plus intuitif sauf pour ceux qui ont fait du pascal. Alors tant qu'à utiliser deux symboles pourquoi pas <- ou <= (une flèche inversée pour dire reçoit) et si le language le permet -> ou => (pour dire va dans).
  • # Perturbation sur l'apprentissage de la grammaire

    Posté par . Évalué à 5.

    Question ouverte, parce que je ne suis pas du tout expert en sciences de l'enseignement.
    Avoir une syntaxe aussi proche du naturel, ça ne risque pas de perturber l'apprentissage de la grammaire française?
    Je veux dire que dans la syntaxe, la grammaire française n'est quand même pas si rigoureuse, mais supposons que les enfants (public ciblé, si j'ai bien compris), prennent l'habitude ensuite d'écrire leurs textes comme leurs programmes (enfin leurs livres!), on ne risque pas de créer le même problème qu'avec le langage SMS?

    Remarque corrélée:
    dans le dernier exemple de code:

    attend 0.3 seconde
    reviens


    Alors, il faudrait écrire "attendS" ou c'est "revienT"?
    Et si c'est 2 secondes, ils prennent l'habitude de l'écrire sans "s"?

    A 8ans, est-on capable de comprendre que ce n'est pas du Français, c'est un langage de programmation?
    • [^] # Re: Perturbation sur l'apprentissage de la grammaire

      Posté par . Évalué à 3.

      Bonjour,

      Vu le faible vocabulaire reconnu par Linotte, je ne pense pas qu'il va perturber l'expression écrite des enfants !
      J'ai déjà lu un tel commentaire dans un autre forum, une personne disait que les enfants, inversement, écrivaient de plus en plus mal... donc, Linotte n'était pas la bonne solution car justement, il fallait ne pas faire de faute d'orthographe ! Comme quoi... tout est relatif !

      Par contre, il y a bien une faute à attendS... Je m'en excuse, je vais corriger ça pour la prochaine version. D'ailleurs, si les modérateurs pouvaient la corriger sur la news...

      A propos des secondes, il est possible d'écrire soit Attends 1 seconde ou Attends 2 secondeS. Les deux phrases sont exactes au sens Linotte mais celui-ci ne vérifie pas le pluriel. C'est indiqué dans le tutoriel.

      J'ai commencé à 10 ans à programmer, je savais que j'utilisais un langage de programmation en anglais et non de l'anglais... certains me diront que ça n'a pas arrangé mon orthographe en français.... ni mon anglais... mais ça, c'est une autre histoire !
  • # Syntaxe des constructeurs

    Posté par (page perso) . Évalué à 2.

    Pour instancier des espèces, je pense qu'il serait plus agréable d'écrire :

    plateau est une ligne dont x1 vaut,...
    • [^] # Re: Syntaxe des constructeurs

      Posté par . Évalué à 2.

      Euh, certes, c'est plus agréable à la lecture "française", mais du point de vue programmation, il me semble qu'on parle là d'affectation de variables, qui se fait pour l'instant avec "est".

      Donc du point de vue du langage, ça voudrait dire que "est" et "vaut" sont équivalents. Si on veut prendre en compte tous les cas de figures, ça va sacrément charger la syntaxe. Et vue de ma fenêtre, un bon langage se doit d'avoir une et une seule façon de faire les opérations élémentaires, ça facilite la relecture et le débuggage.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.