The Pliant programming language
Pliant in a few words
The positions that lead to Pliant are:
•
|
a language must be procedural (as opposed to functional) because the human brain picks up slower when it describes things in a procedural way¹
|
•
|
the subject of a language is to reconcile expressiveness and efficiency²
|
In contrast, the other languages reason in terms of 'feature'.
The brilliant thing about Pliant is to have posited a double coding model for the program, and defined meta programming as the possibility of freely defining how we go from one to the other.
This sentence may seem incomprehensible, but this is what allows Pliant to be both very expressive, very effective, and above all to have a mechanism that allows you to write any 'feature' you want in the language. , whereas with other languages, we have to wait and hope that it will be available in a future version or in another language. There is the link with a philosophical approach: allowing people to grow up instead of making them dependent.
Then, what validates everything is the fact that a single person could write an entire computer system in Pliant (this system is called FullPliant), which operates efficiently, and with an economy of means which means that it is of the order of 100 times smaller than a conventional system. This figure should not be taken as a marketing exaggeration: at some point you have to take the trouble to count the lines.
There are hundreds of languages, but those in which we have been able to write a complete system that does not actually rely on building blocks written in another beefier language (generally C / C) are very, very few. Apart from C / C, there were LISP machines, at one time, not really efficient, Java tried and recovered, in short, not many people.
¹ Procedural, this means describing in sequential form: does this, then that, then that, etc.
By functional opposition, it means expressing in the form: the result must satisfy this, this and that.
² Expressiveness, means being able to indicate in a few lines to the machine what it should do.
Efficiency means needing less computing power to solve a given problem.
For further
↣ Wikipedia article about Folding
The Pliant site is much more complete than this simple article, but in English because it is intended for an audience of programmers.
↣ The Pliant website
Two articles are more particularly interesting for those who wish to get an idea of Pliant, not to use it as a programming language, but simply to understand what it represented in terms of technical progress and support that allowed Storga.
With a simple metaphor, we could say that Pliant's meta-programming is the equivalent of a flying buttress for cathedrals. However, the article on meta-programming is not within the reach of most even experienced professional programmers, probably because it assumes a certain sensitivity to the aesthetics of programming as opposed to an approach exclusively oriented on 'getting to do it'. You have been warned :-)
↣ Presentation of the Pliant language in more detail
Brushes a succinct history of computer languages focused on concepts rather than products, and explains the practical consequences of each approach.
↣ Meta programming
This article exposes more particularly the brilliant and singular concept on which all Pliant rests, namely the double system of representation of the program, and the possibility of freely defining the transition between the two.