Avec un titre aussi explicite, je risque d'aller très loin dans ce commentaire mais c'est justement le cas car il y a beaucoup de chose à dire. En vérité, ce que je vais écrire ici a déjà était dit sur un forum concernant l'objectif du langage et de ce qu'il en est aujourd'hui. Force est de constater que, au vu des partis pris dans cette version, vous allez plus à contre sens qu'autre chose. Je m'explique.
il offre à des jeunes programmeurs (jeune par l’âge ou l’expérience dans ce domaine) d'entrer dans le monde de la programmation très facilement, de par sa syntaxe simplifiée et son approche programmatique particulière.
Bon, ce langage se positionne donc comme un tremplin à la programmation de façon général. Vous avez donc une vision didactique en voulant proposer un langage où les concepts de programmation tel que les structures conditionnelles, itératives, récursives et tout le tralala, soit accessible par le plus novice d'entre nous pour débuter la programmation.
On peut dire que c'est louable de vouloir faire ça, je n'est rien contre cette approche et beaucoup cherche à offrir ce tremplin pour que la science de l'informatique soit plus ouverte (et peut être moins caricaturé comme elle l'est aujourd'hui). Donc je vais me baser sur ce constat pour montrer le point de vue que j'ai sur vos objectifs et pour éviter le malentendu, si il y en a un.
Le Français
Dans cette optique de faciliter l'apprentissage de la programmation, vous avez pris comme choix le Français comme langue de base à votre langage. Ce choix peut s'expliquer du fait qu'il est, selon vous, plus difficile d'apprendre un langage fait à partir de mot-clé Anglais qu'avec des mot-clés Français. Non ? Si on suit cette logique, on peut imaginer qu'il est plus facile pour un anglais ou un américain d'apprendre à programmer (car on est face à des mot-clés Anglais). Il est vrai qu'il n'a guère besoin de traduction à côté (on se souvient tous des pseudo-codes Si ... Alors ... Sinon). Mais en somme, est ce réellement difficile d'associer le mot-clé if à sa traduction Si ? C'est un travail en plus, est ce vraiment un frein dans un apprentissage de l'informatique ?
Le fait est de constater que la difficulté qu'éprouve les personnes à apprendre l'informatique n'est pas la langue en somme, ou tout du moins les mots qui sont utilisés. Sinon, de l'autre côté de la Manche, nous aurions que des lumières en informatique (mais nous en avons ici aussi). La difficulté qu'éprouve un français quand il débute la programmation, c'est pas le mot-clé if qui le dérange, c'est surtout et c'est là où est le fil rouge de tout ce que je vais dire, c'est sa signification. Qu'est ce que je veut vraiment dire un if dans mon code ? C'est quoi sa signification ? À quoi il sert ? Mais le mot en lui même, on pourrait le remplacer par toto, ça ne changerais très peu au problème. La seul chose que c'est qu'il y a une approximation entre la signification du mot dans la langue naturelle et celle dans la langue formelle.
Le véritable problème
Le véritable problème quand on se lance dans la programmation, c'est pas réellement les mots-clés qui ont était choisi arbitrairement pour représenter des concepts (comme class par exemple). Le véritable problème dans l'apprentissage, c'est comprendre et utiliser ces concepts. C'est d'ailleurs pour ça qu'il est aussi facile de switcher d'un langage à un autre. Les mot-clés sont différents, la syntaxe est différente mais les concepts globaux (boucle, condition, fonction), sont les mêmes.
Par contre, dès qu'il s'agit de maîtriser un concept comme l'OO ou le fonctionnel, cela prend plus de temps et cela demande de la pratique. Ce que je regrette dans ce langage, c'est qu'il n'est pas du tout à la hauteur de vos objectif. C'est d'autant plus vrai quand on voit l'intégration des pointeurs dans le langage (intégrer une notion complexe dans un langage qui se veut simple, c'est un paradoxe). Vous vous êtes focaliser sur cette problématique du français mais qui est véritablement qu'un faux problème. Et il faut aller un peu plus loin que de simplement dire: « les langages informatiques sont en anglais, c'est compliqué, nous on fait du français ».
C'est plutôt les concepts sous-jacent comme notamment les pointeurs qui sont complexes. Tout le monde se mange les dents dessus et c'est pour ça que des langages de haut niveau comme le python ne les intègrent pas (ou tout du moins, il ne le mettent pas en avant comme en C). Ces langages haut niveau mettent de côté des problématiques complexes (comme la gestion de la mémoire) pour faciliter l'apprentissage de celui-ci et ne pas se soucier (tout du moins, au départ) de ces points qui sont le véritable frein dans l'apprentissage d'un langage informatique.
Ce que j'essaye de dire, c'est qu'importe quel mot-clé on mettra à la place de if ou de while, ça ne change absolument rien pour le programmeur et les concepts difficiles qu'il a l'habitude de manipuler sont toujours là. Mais c'est ces concepts qui sont dur à expliquer, comprendre et manipuler - je trouve même un peu plus complexe votre langage car les mots que vous utiliser s'écarte des concepts auxquels ils font référence, je parle notamment de paragraphe.
Conclusion
Je dirais pas que le projet est mauvais, ou même bon. Je dis simplement qu'il n'est pas à la hauteur de ce qu'il souhaite pour plus tard et vous ne faites que vous écartez du chemin et c'est bien triste. C'est dommage car il peut être de plus en plus intéressant de lancer ce genre d'approche pour les générations futures pour lesquelles l'informatique est une science obscure.
Sinon, bonne continuation dans ce que vous faites et j'espère que vous prendrez en compte non seulement ma remarque mais celles aussi présentent dans le forum.
# Hmmhmm
Posté par Dinosaure (site web personnel) . En réponse à la dépêche Linotte 2.0. Évalué à 7.
Sommaire
Avec un titre aussi explicite, je risque d'aller très loin dans ce commentaire mais c'est justement le cas car il y a beaucoup de chose à dire. En vérité, ce que je vais écrire ici a déjà était dit sur un forum concernant l'objectif du langage et de ce qu'il en est aujourd'hui. Force est de constater que, au vu des partis pris dans cette version, vous allez plus à contre sens qu'autre chose. Je m'explique.
Bon, ce langage se positionne donc comme un tremplin à la programmation de façon général. Vous avez donc une vision didactique en voulant proposer un langage où les concepts de programmation tel que les structures conditionnelles, itératives, récursives et tout le tralala, soit accessible par le plus novice d'entre nous pour débuter la programmation.
On peut dire que c'est louable de vouloir faire ça, je n'est rien contre cette approche et beaucoup cherche à offrir ce tremplin pour que la science de l'informatique soit plus ouverte (et peut être moins caricaturé comme elle l'est aujourd'hui). Donc je vais me baser sur ce constat pour montrer le point de vue que j'ai sur vos objectifs et pour éviter le malentendu, si il y en a un.
Le Français
Dans cette optique de faciliter l'apprentissage de la programmation, vous avez pris comme choix le Français comme langue de base à votre langage. Ce choix peut s'expliquer du fait qu'il est, selon vous, plus difficile d'apprendre un langage fait à partir de mot-clé Anglais qu'avec des mot-clés Français. Non ? Si on suit cette logique, on peut imaginer qu'il est plus facile pour un anglais ou un américain d'apprendre à programmer (car on est face à des mot-clés Anglais). Il est vrai qu'il n'a guère besoin de traduction à côté (on se souvient tous des pseudo-codes
Si ... Alors ... Sinon). Mais en somme, est ce réellement difficile d'associer le mot-cléifà sa traductionSi? C'est un travail en plus, est ce vraiment un frein dans un apprentissage de l'informatique ?Le fait est de constater que la difficulté qu'éprouve les personnes à apprendre l'informatique n'est pas la langue en somme, ou tout du moins les mots qui sont utilisés. Sinon, de l'autre côté de la Manche, nous aurions que des lumières en informatique (mais nous en avons ici aussi). La difficulté qu'éprouve un français quand il débute la programmation, c'est pas le mot-clé
ifqui le dérange, c'est surtout et c'est là où est le fil rouge de tout ce que je vais dire, c'est sa signification. Qu'est ce que je veut vraiment dire unifdans mon code ? C'est quoi sa signification ? À quoi il sert ? Mais le mot en lui même, on pourrait le remplacer partoto, ça ne changerais très peu au problème. La seul chose que c'est qu'il y a une approximation entre la signification du mot dans la langue naturelle et celle dans la langue formelle.Le véritable problème
Le véritable problème quand on se lance dans la programmation, c'est pas réellement les mots-clés qui ont était choisi arbitrairement pour représenter des concepts (comme
classpar exemple). Le véritable problème dans l'apprentissage, c'est comprendre et utiliser ces concepts. C'est d'ailleurs pour ça qu'il est aussi facile de switcher d'un langage à un autre. Les mot-clés sont différents, la syntaxe est différente mais les concepts globaux (boucle, condition, fonction), sont les mêmes.Par contre, dès qu'il s'agit de maîtriser un concept comme l'OO ou le fonctionnel, cela prend plus de temps et cela demande de la pratique. Ce que je regrette dans ce langage, c'est qu'il n'est pas du tout à la hauteur de vos objectif. C'est d'autant plus vrai quand on voit l'intégration des pointeurs dans le langage (intégrer une notion complexe dans un langage qui se veut simple, c'est un paradoxe). Vous vous êtes focaliser sur cette problématique du français mais qui est véritablement qu'un faux problème. Et il faut aller un peu plus loin que de simplement dire: « les langages informatiques sont en anglais, c'est compliqué, nous on fait du français ».
C'est plutôt les concepts sous-jacent comme notamment les pointeurs qui sont complexes. Tout le monde se mange les dents dessus et c'est pour ça que des langages de haut niveau comme le python ne les intègrent pas (ou tout du moins, il ne le mettent pas en avant comme en C). Ces langages haut niveau mettent de côté des problématiques complexes (comme la gestion de la mémoire) pour faciliter l'apprentissage de celui-ci et ne pas se soucier (tout du moins, au départ) de ces points qui sont le véritable frein dans l'apprentissage d'un langage informatique.
Ce que j'essaye de dire, c'est qu'importe quel mot-clé on mettra à la place de
ifou dewhile, ça ne change absolument rien pour le programmeur et les concepts difficiles qu'il a l'habitude de manipuler sont toujours là. Mais c'est ces concepts qui sont dur à expliquer, comprendre et manipuler - je trouve même un peu plus complexe votre langage car les mots que vous utiliser s'écarte des concepts auxquels ils font référence, je parle notamment deparagraphe.Conclusion
Je dirais pas que le projet est mauvais, ou même bon. Je dis simplement qu'il n'est pas à la hauteur de ce qu'il souhaite pour plus tard et vous ne faites que vous écartez du chemin et c'est bien triste. C'est dommage car il peut être de plus en plus intéressant de lancer ce genre d'approche pour les générations futures pour lesquelles l'informatique est une science obscure.
Sinon, bonne continuation dans ce que vous faites et j'espère que vous prendrez en compte non seulement ma remarque mais celles aussi présentent dans le forum.