Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Langage KIFF
#1

Bonjour,

Je travaille depuis des années sur l'implantation d'un langage de programmation, depuis 6 ans, si je calcule bien... Sad

Pourquoi implanter un nouveau langage?
On m'a souvent posé la question. Disons que je programme depuis environ 35 ans (Heu... Et si... m...) et des langages, j'en ai utilisé un certains nombres (BASIC, assembleurs diverses, Pascal, Lisp, Prolog, C, C++, Objective C, Java, Python, Ruby, APL, Perl, Smalltalk, et j'en oublie surement...) Mais bon, pour un certain nombre de traitements récurrents, ils avaient tous quelque chose qui manquaient et que je recherchais:
  • Traitement des chaines de caractères limité
  • Pas d'interface graphique, ou alors horriblement compliquée à mettre en oeuvre
  • Pas de gestion simple des fichiers audios
  • Gestion compliquée des sockets
  • Multi-threading pour Bac+15

Le plus proche de mon cœur était Python, mais bon sa gestion des chaines est tout bonnement assommante.
Disons que j'ai pris C++ (le langage est d'ailleurs implanté en C++), je l'ai croisé avec du Java et du Python, et j'ai obtenu un langage plus à mon goût.
La version d'origine était en anglais, mais je l'ai francisé, dans un premier temps, pour expérimenter ce que ressent un anglophone quand il lit du Python ou du Java, mais aussi parce que j'ai en tête depuis très longtemps de trouver une façon simple d'enseigner l'informatique.
Une des particularités du langage est qu'il est "agnostique" quant à l'encodage. Il manipule des chaines aussi bien en UTF-8 qu'en ISO-Latin et ce de façon transparente. La deuxième particularité, c'est que la déclaration explicite des variables permet d'offrir un large éventail de traduction implicite de type.

Maintenant, je dois avouer cet horrible secret: je suis un proto-geek des années 80. A l'époque quand on ouvrait son ordinateur, on entrait de plein pied dans l'interpréteur BASIC et on pouvait tout de suite commencer à expérimenter.

Pour cette raison, j'ai conçu un interpréteur tout en un, qui intègre de quoi immédiatement jouer avec les concepts de base de l'informatique.
Il offre d'entrée un accès à une:
  • API graphique
  • API audio
  • API socket
  • API base de données (SQlite)
  • API WEB (curl)

En quelques instructions, on peut créer une petite architecture client/serveur, un serveur REST etc.

Enfin, on peut étendre le langage avec des libs dynamiques, en C++, que l'on peut charger dans ses programmes. Je dispose à cet effet d'un petit programme qui permet de générer le stub d'une lib compatible KIFF.

On peut l'utiliser aussi bien avec une interface graphique qu'en mode commande de ligne.
Il est disponible sur la plupart des plate-formes (Windows, Mac OS, Linux et raspbian bien sûr), mais je préfère me concentrer uniquement sur la raspberry pour le moment.

Personnellement, je l'utilise tous les jours, en particulier pour la simplicité et la lisibilité du code.

Je préfère être clair sur le but de ma démarche. Je ne cherche pas à monter un business sur la base de ce langage pour l'instant, je cherche plutôt un retour d'utilisateurs de façon à corriger certains bugs (le langage existe depuis 2010) que je n'aurais pas détecté par exemple.
A terme, je le mettrais en Code Libre, mais pour le moment, je me contenterai de distribuer les versions binaires.

Je rappelle le site: http://affaire.roux.free.fr

Je vous invite à venir le visiter...
Répondre
#2

Bonjour,

Tout d'abord, c'est tout à ton honneur de consacrer de ton temps et de proposer un nouveau Langage Informatique (pour t'inviter à créer une entrée à la lettre K ;-)

J'ai lu la présentation avec intérêt et curiosité; je n'aborderai ici que 2 points tellement le sujet est vaste, intéressant et d'actualité:

1) Choix de la syntaxe française: Sans lancer un débat ici, tu te doutes bien que c'est le premier point qui peut achopper et être même rédhibitoire pour un utilisateur d'un clavier Qwerty (j'ai essayé sans succès en suivant: Mettre des accents avec un clavier QWERTY).
Une des solutions est d'offrir une IHM comme pour le Langage Linotte qui a l'air d'adopter la philosophie actuelle avec sa Programmation Visuelle et principalement représentée par Scratch. De plus, je ne parle pas de l'apprentissage d'un dictionnaire de mots qu'il faudra oublier dès lors qu'un autre langage sera appris, car aujourd'hui c'est la maîtrise de plusieurs langages qui est demandée et parfois même requise tout comme celle d'ailleurs de plusieurs langues dont l'Anglais.

L'Anglais qui reste (on peut le regretter mais pas l'ignorer), La Langue de l'Informatique (et de l’Électronique) que nos enfants devront apprendre le plus tôt possible et ce, quel que soit le domaine d'activité vers lequel ils se destinent.

2) Solution à des traitements récurrents et manquants (sic): Malheureusement, je crains que la recherche du Graal pour proposer un Langage Universel n'est plus d'actualité après plus de 60 ans et des centaines de langages proposés avec plus ou moins de réussite. Pour moi, l'adoption d'un Langage Informatique doit avant tout reposer sur la richesse de son écosystème; ce qui fait le succès du C, C++, Java, etc. et Python.
Ce dernier semble être retenu pour l'apprentissage de la programmation (notamment aux USA et maintenant en France et en Europe).

Un autre point important pour le choix d'un langage est sa capacité à répondre à une problématique bien définie et c'est la raison pour laquelle, plusieurs langages sont parfois nécessaires pour proposer une solution dans une architecture globale.

Je te souhaite beaucoup de réussite avec ce nouveau langage et sans te donner de conseils, tu auras peut-être plus de retours en postant sur des forums que tu connais sûrement déjà et plus orientés programmation comme:
- Développement et programmation et Vos développements libres
- Developpez.com
- etc.

NB: C'est promis, j'installerai ce Langage KIFF par curiosité et intérêt sur mon RPi en passant par une session ssh/PuTTY car je te l'avoue sans plus tarder, l'argument du clavier Qwerty n'est pas convaincant ;-). Maintenant, si tu as une version binaire pour Debian/Linux/x86, je suis vraiment preneur pour l'installer sur un Ubuntu en attendant une entrée sur Git...
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)