La notion de prototypes est venue naturellement quand j'ai voulu ajouter la possibilité d'étendre le langage par l'intermédiaire de greffons.
Il fallait pour cela, apporter aux objets du langage, une notion "d'extensibilité", et c'est comme cela que sont arrivés les prototypes !
Ainsi, la notion de greffons s'appuie tout simplement sur les prototypes. Une méthode fonctionnelle d'un objet est soit une méthode du programme ajouté par le développeur (par l'intermédiaire de la commande ASSIGN) ou alors une méthode d'un autre objet qui ne fait pas partie du langage même (et même d'un autre langage de programmation avec la jsr223).
Je te rejoins sur le fait que ce n'est pas très simple à utiliser pour un débutant. ça peut même faire peur !
De ce que je sais, ce n'est pas la programmation qui est introduit au lycée mais l'algorithmique.
Le logiciel le plus utilisé aujourd'hui pour ces cours est (mais n'étant pas du milieu de l'éducation, je pars de la vision que j'ai depuis mon navigateur Web et Google) AlgoBox.
C'est là que Google est fort.
On utilise de plus en plus javascript car le web devient omniprésent grâce (à cause de) aux smartphones et les interfaces utilisant CSS et Javascript (Gnome 3 par exemple).
C'est aujourd'hui qu'il faut proposer un nouveau langage et l'imposer. Google peut le faire avec la Chrome qui arrive en force et Android.
Nous sommes tous un peu des têtes de linotte... Une erreur est vite arrivée dans l'élaboration d'un algorithme. Pour s'en protéger, et surtout, pour mieux comprendre l'origine du problème, on entoure son algorithme du bloc Essayer.
Arg ! Je retrouve souvent cette question par rapport à la syntaxe sms...
D'après cette remarque, à priori, les français ne sont pas capables d'écrire des mots en français ou alors, on ne veut PAS qu'il soit capable alors que les anglophones sont si bon en orthographe qu'ils n'ont pas besoin de version de Java ou C++ version SMS.
Bon, je suis un mec sympa, j'essaye de prendre en compte les remarques !
Mais ne souhaitant pas changer le vocabulaire du langage, je suis parti sur un système de gestion de synonymes (qui à ses limites).
ça permet de garder le langage tel quel mais aussi de le personnaliser.
Ainsi, avec le dictionnaire de synonymes suivant (une ligne correspond à une suite de synonymes):
livre programme
paragraphe traitement
rôles variable variables
actions algorithme
demande lire
affiche afficher
lis debut
ferme fin
vaut prend_la_valeur
alors faire
On peut ainsi obtenir un langage proche d'Algobox mais sauce Linotte !
Pour "Programme", ne peut-on pas trouver plus court ?
Je trouve "traitement" plus approprié car le terme est moins restrictif que "algorithme" où on peut s'attendre à un algo bien réfléchi alors que ce n'est pas toujours le cas...
"Objet", pourquoi pas même si, j'ai peur que l'on rapproche ce terme à l'Object du langage Java.
Je pense honnêtement que Linotte apporte de bonnes idées : les doublures, la notion d’espèce, le clonage, le paradigme prototype, les souffleurs, les traitements parallèles, le fait que tout soit objet, etc.
Mais en fait, les commentaires sont focalisés sur la langue et la forme.
J’ai (avec les outils offerts par le langage) créer deux exemples complets : un casse-brique et un pacman et « programmatiquement » je les trouve personnellement intéressants.
Alors, pourquoi pas Linotte ?
Intellectuellement, j'ai dû mal à comprendre pourquoi un langage de programmation ne doit pas être en français.
C'est vrai que l'anglais à l'avantage d'être très concis mais l'exercice de créer un langage dans notre langue est-il si inopportun ? Une blague ?
L’idée de départ du langage est de se demander s’il est possible de créer un langage destiné à des personnes non anglophones et/ou qui n’ont pas la bosse des maths.
Par rapport au vocabulaire, je peux comprendre les arguments même si j’ai, je pense bien expliquer les termes dans le tutoriel. Il est vrai que je suis tenté par changer certains mots… mais Linotte ne deviendrai qu’un langage comme les autres….
En effet, la syntaxe du langage entraîne facilement des erreurs de syntaxe.... (moi le premier...), c'est pour cela que j'ai ajouté le menu verbier avec tous les raccourcies du langage. Dans un futur trèèès lointain, il faudrait proposer la complétion des phrases dans l'Atelier.
Ce que tu proposes ressemble au try/catch en Java. ça veut dire qu'il faut gérer les erreurs dans toutes les parties du code où le risque d'erreur est important.
N'est-ce pas trop compliqué pour des débutants ?
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 ?
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.
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 !
[^] # Re: À propos d'un nouveau langage… (rien à voir avec ton projet)
Posté par cpc6128 (site web personnel) . En réponse au journal Nouveau langage de programmation : Parangon-Lang. Évalué à 5.
IBM l'a fait pour toi : http://fr.wikipedia.org/wiki/Eclipse_%28logiciel%29
[^] # Re: Bravo!
Posté par cpc6128 (site web personnel) . En réponse au journal Nouveau langage de programmation : Parangon-Lang. Évalué à 2.
Merci pour ton retour et tes encouragements.
La notion de prototypes est venue naturellement quand j'ai voulu ajouter la possibilité d'étendre le langage par l'intermédiaire de greffons.
Il fallait pour cela, apporter aux objets du langage, une notion "d'extensibilité", et c'est comme cela que sont arrivés les prototypes !
Ainsi, la notion de greffons s'appuie tout simplement sur les prototypes. Une méthode fonctionnelle d'un objet est soit une méthode du programme ajouté par le développeur (par l'intermédiaire de la commande ASSIGN) ou alors une méthode d'un autre objet qui ne fait pas partie du langage même (et même d'un autre langage de programmation avec la jsr223).
Je te rejoins sur le fait que ce n'est pas très simple à utiliser pour un débutant. ça peut même faire peur !
[^] # Re: Petit rappel
Posté par cpc6128 (site web personnel) . En réponse au journal La linotte et le python.... Évalué à 3.
De ce que je sais, ce n'est pas la programmation qui est introduit au lycée mais l'algorithmique.
Le logiciel le plus utilisé aujourd'hui pour ces cours est (mais n'étant pas du milieu de l'éducation, je pars de la vision que j'ai depuis mon navigateur Web et Google) AlgoBox.
# Le C, toujours autant utilisé
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Dennis Ritchie, un père d’UNIX, nous a quittés. Évalué à 1.
Il est intéressant de lire que le C est toujours autant utilisé et qu'il gagne même des parts :
http://www.developpez.com/actu/37820/Index-TIOBE-Java-perd-en-popularite-et-pourrait-etre-detrone-par-C-l-Assembleur-entre-dans-le-top-20/
Je ne comprends pas trop pourquoi... Autour de moi... personne programme en C en entreprise.... Je vois plus de Rub-yste, java-iste, dot net-iste.
[^] # Re: Et pas un mot dans la presse
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Dennis Ritchie, un père d’UNIX, nous a quittés. Évalué à 2.
Ce n'est pas vraiment la presse mais ce site à une certaine visibilité sur le web francophone :
http://www.presse-citron.net/dennis-ritchie-createur-dunix-et-du-langage-c-est-decede
Notez quand même le nombre de fois où l'auteur fait référence à Apple dans cet article....
[^] # Re: IDE
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 1.
C'est pourtant simple :)
sort est une méthode qui prend en entrée une liste d'objets T et retourne une liste d'objets T mais T doit implémenter l'interface Comparable.
Bah quoi ?
[^] # Re: IDE
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 1.
Du java avec des types génériques : http://fr.wikibooks.org/wiki/Programmation_Java/Types_g%C3%A9n%C3%A9riques
C'est sûr que ce n'est l'exemple le plus concis...
[^] # Re: GNOME Shell en Dart ?
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à -1.
C'est là que Google est fort.
On utilise de plus en plus javascript car le web devient omniprésent grâce (
à cause de) aux smartphones et les interfaces utilisant CSS et Javascript (Gnome 3 par exemple).C'est aujourd'hui qu'il faut proposer un nouveau langage et l'imposer. Google peut le faire avec la Chrome qui arrive en force et Android.
[^] # Re: distrait !
Posté par cpc6128 (site web personnel) . En réponse au journal 10 minutes pour découvrir le langage de programmation Linotte. Évalué à 0.
Presque.... je le dis même dans la doc !
[^] # Re: La génèse...
Posté par cpc6128 (site web personnel) . En réponse au journal 10 minutes pour découvrir le langage de programmation Linotte. Évalué à 1.
oups, ça ne me choque pas.
Les définitions du mot sur Wikitionary et sur ce site vont dans le sens que j'ai souhaité :
http://66.46.185.79/bdl/gabarit_bdl.asp?id=2221
Je ne cache aucun sous-entendu biblique....
[^] # Re: 10 ou 20
Posté par cpc6128 (site web personnel) . En réponse au journal 10 minutes pour découvrir le langage de programmation Linotte. Évalué à 1.
Merci, c'est corrigé !
# Heureusement que LinuxFr n'est pas une application iPhone...
Posté par cpc6128 (site web personnel) . En réponse au journal Appel, le début de la fin ?. Évalué à 3.
sinon, avec ce post, elle serait supprimée !
http://www.lefigaro.fr/flash-actu/2011/09/14/97001-20110914FILWWW00490-apple-supprime-un-jeu-critiquant-liphone.php
[^] # Re: Aye dur dur
Posté par cpc6128 (site web personnel) . En réponse au journal Linotte 1.4 : programmer simplement vos algorithmes en français.. Évalué à 0.
Je n'ai pas présenté d'exemples du fait que la syntaxe a évolué.
Je suis entrain de mettre à jour la documentation pour prendre en compte cette nouvelle syntaxe.
Le :
Si a est plus grand que b alors affiche "a est plus grand !"
devient :
Si a > b alors affiche "a est plus grand !"
Autre exemple, le
a est un nombre valant 10
se transforme en :
a :: nombre <- 10
Le deux syntaxes peuvent être utilisées avec la version 1.4 (les habitués du langage utilisent toujours l'ancienne syntaxe).
Mais comme l'écriture et mise à jour de la documentation, ce n'est pas mon truc.... alors, je traine à sortir cette nouvelle doc !
[^] # Re: Aye dur dur
Posté par cpc6128 (site web personnel) . En réponse au journal Linotte 1.4 : programmer simplement vos algorithmes en français.. Évalué à 2.
"qu'ils soient capables"
[^] # Re: Aye dur dur
Posté par cpc6128 (site web personnel) . En réponse au journal Linotte 1.4 : programmer simplement vos algorithmes en français.. Évalué à 0.
Arg ! Je retrouve souvent cette question par rapport à la syntaxe sms...
D'après cette remarque, à priori, les français ne sont pas capables d'écrire des mots en français ou alors, on ne veut PAS qu'il soit capable alors que les anglophones sont si bon en orthographe qu'ils n'ont pas besoin de version de Java ou C++ version SMS.
[^] # Re: bou
Posté par cpc6128 (site web personnel) . En réponse au journal Linotte 1.4 : programmer simplement vos algorithmes en français.. Évalué à 2.
Oups, merci pour cette remarque, je vais corriger ça !
# Proposition...
Posté par cpc6128 (site web personnel) . En réponse au message Aide pour améliorer la syntaxe d'un langage de programmation (Linotte). Évalué à 0.
Bon, je suis un mec sympa, j'essaye de prendre en compte les remarques !
Mais ne souhaitant pas changer le vocabulaire du langage, je suis parti sur un système de gestion de synonymes (qui à ses limites).
ça permet de garder le langage tel quel mais aussi de le personnaliser.
Ainsi, avec le dictionnaire de synonymes suivant (une ligne correspond à une suite de synonymes):
On peut ainsi obtenir un langage proche d'Algobox mais sauce Linotte !
[^] # Re: Proposition
Posté par cpc6128 (site web personnel) . En réponse au message Aide pour améliorer la syntaxe d'un langage de programmation (Linotte). Évalué à 1.
Bonjour
Merci pour ton retour et tes propositions.
Pour "Programme", ne peut-on pas trouver plus court ?
Je trouve "traitement" plus approprié car le terme est moins restrictif que "algorithme" où on peut s'attendre à un algo bien réfléchi alors que ce n'est pas toujours le cas...
"Objet", pourquoi pas même si, j'ai peur que l'on rapproche ce terme à l'Object du langage Java.
Et pour le reste, ça me va !
# Réponses aux commentaires....
Posté par cpc6128 (site web personnel) . En réponse au journal Linotte 1.3 alpha, l'attaque des clones !. Évalué à 1.
Je pense honnêtement que Linotte apporte de bonnes idées : les doublures, la notion d’espèce, le clonage, le paradigme prototype, les souffleurs, les traitements parallèles, le fait que tout soit objet, etc.
Mais en fait, les commentaires sont focalisés sur la langue et la forme.
J’ai (avec les outils offerts par le langage) créer deux exemples complets : un casse-brique et un pacman et « programmatiquement » je les trouve personnellement intéressants.
Alors, pourquoi pas Linotte ?
Intellectuellement, j'ai dû mal à comprendre pourquoi un langage de programmation ne doit pas être en français. C'est vrai que l'anglais à l'avantage d'être très concis mais l'exercice de créer un langage dans notre langue est-il si inopportun ? Une blague ?
L’idée de départ du langage est de se demander s’il est possible de créer un langage destiné à des personnes non anglophones et/ou qui n’ont pas la bosse des maths.
Par rapport au vocabulaire, je peux comprendre les arguments même si j’ai, je pense bien expliquer les termes dans le tutoriel. Il est vrai que je suis tenté par changer certains mots… mais Linotte ne deviendrai qu’un langage comme les autres….
Merci pour vos remarques.
[^] # Re: Magnifique !
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Linotte version 0.6.4, la programmation de 7 à 77 ans !. Évalué à 2.
Merci pour vos commentaires très sympathiques !
En effet, la syntaxe du langage entraîne facilement des erreurs de syntaxe.... (moi le premier...), c'est pour cela que j'ai ajouté le menu verbier avec tous les raccourcies du langage. Dans un futur trèèès lointain, il faudrait proposer la complétion des phrases dans l'Atelier.
Ce que tu proposes ressemble au try/catch en Java. ça veut dire qu'il faut gérer les erreurs dans toutes les parties du code où le risque d'erreur est important.
N'est-ce pas trop compliqué pour des débutants ?
[^] # Re: Français uniquement ?
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Linotte version 0.6.4, la programmation de 7 à 77 ans !. Évalué à 2.
[^] # Re: Grammaire...
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Sortie de Linotte en version 0.5.1, un langage simple en français pour apprendre à programmer.. Évalué à 2.
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 cpc6128 (site web personnel) . En réponse à la dépêche Sortie de Linotte en version 0.5.1, un langage simple en français pour apprendre à programmer.. Évalué à 3.
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: Perturbation sur l'apprentissage de la grammaire
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Sortie de Linotte en version 0.5.1, un langage simple en français pour apprendre à programmer.. Évalué à 3.
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 !
[^] # Re: C'est fun !
Posté par cpc6128 (site web personnel) . En réponse à la dépêche Sortie de Linotte en version 0.5.1, un langage simple en français pour apprendre à programmer.. Évalué à 2.