Après 10 ans d'existence, le langage Linotte revient avec une nouvelle version : Linotte 2.6. Pour rappel, Linotte est un langage de programmation et un atelier de programmation entièrement en français.
Cette dernière version apporte un nouveau module facilitant la réalisation d'algorithme ou la découverte de la programmation. Ce nouveau module permet de programmer visuellement en utilisant des blocs (ou timbres) que l'on glisse sur une planche les uns à la suite des autres.
Pas de révolution dans le concept, car d'autres langages de programmation sont allés plus loin comme par exemple Scratch.
Ce nouveau module doit surtout être utilisé pour comprendre le code qui a été produit et non pour programmer.
L'avantage d'utiliser le langage Linotte est d'utiliser un langage simple mais proche des autres langages plus complexes (Java, Python par exemple).
Avec ce module visuel, on peut écrire des conditions, des boucles, mais on peut également créer des fonctions et ainsi mettre en place des algorithmes récursifs.
Par exemple, le programme visuel suivant (suite de Syracuse du nombre n) :
devient textuellement :
principale :
durée est un nombre
e est un nombre
début
demande e
tant que e != 1 lis
durée vaut durée + 1
si (e mod 2) = 0 lis
e vaut e / 2
ferme
sinon lis
e vaut e * 3 + 1
ferme
ferme
affiche durée
Et enfin, le programme visuel suivant (affiche un nombre de la suite Fibonacci) :
- devient après avoir été traduit en langage Linotte :
principale :
// Nombre de Fibonacci
n est un nombre
début
affiche "Quelle est la valeur de n ?"
demande n
affiche fibo(n)
fibo : n
début
si n<2 lis
retourne n
ferme
sinon lis
retourne fibo(n-1) + fibo(n-2)
ferme
L'Atelier de programmation est depuis la version 2.4 multilangages : des langages simplifiés destinés à l'apprentissage de l'algorithmique ont été ajoutés, à savoir Lyre et Linnet.
- Le dernier code devient en langage Lyre :
// Nombre de Fibonacci
n := 0
affiche "Quelle est la valeur de n ?"
demande n
affiche fibo(n)
fibo : n
si n<2 {
retourne n
}
sinon {
retourne fibo(n-1) + fibo(n-2)
}
- Et en langage Linnet :
// Nombre de Fibonacci
n := 0
print "Quelle est la valeur de n ?"
input n
print fibo(n)
fibo : n
if n<2 {
return n
}
else {
return fibo(n-1) + fibo(n-2)
}
Le module graphique est compatible avec tous ces langages.
Linotte est sous licence GPL V3. On peut dire que Linotte est RERware car aujourd'hui il est développé principalement dans le RER E le matin et le soir… En espérant que la SNCF ne viendra pas un jour me demander des droits sur le code source !
Bonne programmation et n'hésitez pas à faire la promotion du langage Linotte autour de vous et si vous avez la possibilité dans le monde scolaire.
Aller plus loin
- Page principale (578 clics)
- Scratch (209 clics)
- Dépêche pour la sortie de Linotte 2.0 (135 clics)
# Couleurs et contrastes
Posté par psychoslave__ (site web personnel) . Évalué à 9.
Bonjour,
D’abord bravo pour tout ce qui a déjà été fait, c’est très impressionnant. Au niveau du visuel, il serait bon que le projet trouve un graphiste. À minima, il faudrait veiller à un contraste suffisant entre les couleurs de fond et ceux de la police, ne serait-ce que d’un point de vue accessibilité. Il existe déjà des palettes murement réfléchies, comme tango ou solarized pour ne citer que des exemples qui restent encore fort encré dans la culture hacker.
Encore bravo, et tout mes encouragements pour les suites du projet.
[^] # Re: Couleurs et contrastes
Posté par cpc6128 (site web personnel) . Évalué à 2.
Merci pour tes encouragements et aussi tes conseils sur les couleurs.
J'ai pourtant passé des heures à regarder les autres logiciels et comparer les couleurs et polices.
Je vais parcourir tes liens et m'en inspirer.
# "valoir"? "lire"?
Posté par gyom gyom . Évalué à 6.
Hello,
Effectivement, le boulot est sympa pour mettre des gens (enfants, parents, etc.) à la programmation.
Ça me rappelle plus "LabVIEW" que "Scratch", qui très utilisé par les professionnels électroniciens débutant en info.
Je plussoie l'histoire des couleurs, mais surtout, j'ai du mal avec certains termes choisis :
"lis" : pourquoi le verbe "lire", plutôt que "faire", alors qu'il s'agit bien d'effectuer des actions, comme le mot "do" en anglais l'exprime ?
"valoir" : pourquoi tomber dans le piège de l'ambigüité affectation/test. Il s'agit pas ici de /tester/ si "xxx "vaut"/"valoir" yyy", mais bien d'"affecter yyy à xxx" (encore une fois, il s'agit d'une action pas d'un truc passif)
Il serait donc pas mal d'homogénéiser le vocabulaire, en utilisant :
1. des termes qui représentent bien ce qui se passe
2. par exemple, des infinitif quand il y a une action et autre chose quand c'est un test.
Mes 2 cents!
[^] # Re: "valoir"? "lire"?
Posté par cpc6128 (site web personnel) . Évalué à 1.
Bonjour,
Cela peut paraître étrange mais le choix d'un mot se fait souvent (pas toujours) par le nombre de lettres qu'il contient. Eh oui, on m'a fait souvent fait le reproche (à juste titre) que le langage est trop verbeux.
Ainsi, entre plusieurs mots correspondant au sens souhaité, je choisis le plus court !
[^] # Re: "valoir"? "lire"?
Posté par bayo . Évalué à 3.
J'ai également tiqué comme gyom en regardant les diagrammes.
"Ainsi, entre plusieurs mots correspondant au sens souhaité…"
Sauf que ces mots n'expriment pas du tout la même chose. Ils ne sont pas équivalent.
"… je choisis le plus court !"
C'est pas comme s'il y avait un problème de place.
Alors pour des outils pédagogiques, la priorité n'est elle pas faire passer des concepts clairs ?
On en est à 4 cents :-)
[^] # Re: "valoir"? "lire"?
Posté par cpc6128 (site web personnel) . Évalué à 1.
En disant cela, je savais que je m'engageais sur une pente glissante et dangereuse…
Maintenant, je comprends le problème sémantique. Ce n'est pas la première fois qu'il est remonté.
Je pensais au verbe "prendre" :
pi vaut 3.14
le code devient :
pi prend 3.14
Un caractère de plus :) je vais y réfléchir.
[^] # Re: "valoir"? "lire"?
Posté par fouinto . Évalué à 3.
Autre proposition : devient
Pi devient 3.14
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: "valoir"? "lire"?
Posté par Sytoka Modon (site web personnel) . Évalué à 2.
Chez nous, même après 15 ans dessus, ils programment toujours en boiboite… Un truc pourris pour faire du collaboratif et du versionning. Il y a une autre solution avec LabVIEW permettant de basculer sur du vrai code ligne à ligne ?
# merci
Posté par closed . Évalué à 1.
Purée depuis le temps, que je dois m'y mettre à ce language.
Merci en tout cas pour ton dévouement.
[^] # Re: merci
Posté par cpc6128 (site web personnel) . Évalué à 1.
Merci beaucoup ! j'attends tes premières réalisations sur le forum :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.