Le langage de programmation Pliant
Pliant en peu de mots
Les positions qui amènent à Pliant sont :
•
|
un langage doit être procédural (par opposition à fonctionnel) parce que le cerveau humain décroche moins vite quand il décrit les choses de manière procédurale¹
|
•
|
le sujet d'un language c'est de concilier expressivité et efficacité²
|
Par opposition, les autres langages raisonnent en termes de "feature" (qu'on peut traduire en français par "une fonction disponible qui est pratique").
Le truc génial de Pliant, c'est d'avoir posé un double modèle de codage du programme, et défini la méta programmation comme la possibilité de définir librement comment on passe de l'un à l'autre.
Cette phrase peut paraître incompréhensible, mais c'est cela qui permet à Pliant d'être à la fois très expressif, très efficace, et surtout d'avoir un mécanisme qui permet d'écrire toute "feature" dont on a envie dans le langage, alors qu'avec les autres langages, il faut attendre et espérer qu'elle sera disponible dans une prochaine version ou dans un autre langage. Là se fait le lien avec une démarche philosophique : permettre aux gens de grandir au lieu de les rendre dépendants.
Ensuite, ce qui valide le tout, c'est le fait qu'une personne seule ait pu écrire tout un système informatique en Pliant (ce système s'appelle FullPliant), qui fonctionne efficacement, et avec une économie de moyens qui fait qu'il est de l'ordre de 100 fois plus petit qu'un système classique. Ce chiffre n'est pas à prendre comme une exagération marketing : il faut à un moment se donner le mal de compter les lignes.
Il existe des centaines de langages, mais ceux dans lesquels on a pu écrire un système complet qui ne repose pas en fait sur des briques écrites dans un autre langage plus costaud (généralement C/C++) sont très très peu nombreux. À part C/C++, il y a eu des machines LISP, à une époque, pas vraiment efficaces, Java a essayé et s'est rétamé, bref pas grand monde.
¹ Procédural, cela signifie décrire sous forme séquentielle : fait ceci, puis cela, puis cela, etc.
Par opposition fonctionnel, cela signifie exprimer sous la forme : le résulat doit satisfaire ceci, ceci et cela.
² Expressivité, signifie pourvoir indiquer en peu de lignes à la machine ce qu'elle doit faire.
Efficacité signifie avoir besoin de moins de puissance de calcul pour résoudre un problème donné.
Pour aller plus loin
↣ Article Wikipedia concernant Pliant
Le site de Pliant est beaucoup plus complet que ce simple article, mais en anglais du fait qu'il est destiné à un public de programmeurs.
↣ Le site web de Pliant
Deux articles sont plus particulièrement intéressants pour qui souhaite se faire une idée de Pliant, non pas pour l'utiliser en tant que langage de programmation, mais simplement comprendre ce qu'il a représenté en termes d'avancée technique et de support ayant permis Storga.
Avec une simple métaphore, on pourait dire que la méta-programmation de Pliant, c'est l'équivalent de l'arc-boutant pour des cathédrales. Ceci étant, l'article sur la méta-programmation n'est pas à la portée de la plupart des programmeurs professionnels même expérimentés, probablement parce qu'il suppose une certaine sensibilité à l'esthétique de la programmation par opposition à une approche orientée exclusivement sur "arriver à le faire". Vous êtes prévenus :-)
↠ Présentation du langage Pliant avec plus de détails
Brosse une succincte histoire des langages informatiques très orientée sur les concepts plutôt que les produits, et explicite les conséquences pratiques de chaque approche.
↠ La méta programmation
Cet article expose plus particulièrement le concept génial et singulier sur lequel tout Pliant repose,
à savoir le double système de représentation du programme, et la possibilité de définir librement la transition entre les deux.