Guthrie · 2022-09-21 07:14
Since 1999, Hubert Tonneau has been working on a full OS, language, database and UI stack to overcome the sins of our complex modern software stacks.
From the about page (http://www.fullpliant.org/page/pliant/RLV8T5OB/0EEMTUB):
> It prooves that in other softwares, the signal to noise ratio in the code is very low. Free and closed softwares are no different in this area. Counting typically brings 99% noise. > No programmer can believe that, even if he can quite easily verify it through counting lines. This is just a perfect illustration of cognitive dissonance.
> I trace the poor signal to noise ratio in classical softwares to four reasons:
> * use of poor languages with no decent meta programming capabilities (poor expressivity)
> * poor software design (code layering)
> * unability to concentrate on ironing out core features instead of adding new not really usefull ones
> * and finaly interfacing different pieces of software with quite different logic and conventions instead of building an overall consistent system.
Unfortunately for poor Hubert:
> I was very proud when I published Pliant on the net in 1999, and firmly convinced that through providing it to the free software emerging movement, it would be a key part of free softwares success, and that I would be part of the movement I like the philosophy of, and would share the load with.
> Well, it did not happened the way I planned it: Pliant was, and is still just ignored.
But that wouldn't stop Hubert. No, instead he doubled down, adding a database engine, a graphical UI toolkit and a dynamic compiler with debugger and profiler.
> Around year 2005, I had understood that I would have to rewrite in Pliant most computing software key parts in order to get a significant enough consistency bonus so that switching to a different system worth the effort, and that I would have to do it alone because contributors proved to all go the shorter interface way. Once again, sharing strong concepts discovering effort is just not possible.
> I also started to understand that I was in a hurry because I would soon hit the age limit. Some might be lucky people that sit behind their desk 8 hours in the morning and get job done step by step, day after day. I'm not, and for the very difficult parts, I have to concentrate up to my breaking point several days or even weeks long to get the really good idea suddenly pop up. This is exhausting. If I try to do it step by step, it never appends.
Hubert is getting old now. But perhaps we can honor the work he's done for us by using and improving the cathedral he built for us: Pliant.
Install instructions: http://www.fullpliant.org/page/pliant/6BAQY8HO/0EEMTYW
Boris Grishenko · 2022-09-21 17:08
>Work hard on life's work
>Doesn't even have a small following
>Is getting old
Sad bros
Guthrie · 2022-09-21 23:40
Thats cool but can it run electron?
Void · 2022-09-22 12:03
Weird choice to require javascript for this extremely web 1.0 website.
array · 2022-09-22 13:50
>>32833
it even disables right-clicking. completely removes all credibility of anything written on there
Rick Deckard · 2022-09-25 09:40
interested in seeing the language he made, but this websitr is unusable
Miho Iwakura · 2022-09-25 11:25
OP, the about page is http://www.fullpliant.org/page/pliant/ZI0TDFOV/0DFXKE5 - you linked to the 'un-success story' instead.
My initial impression upon reading the language overview (3SR6QMB8/0EEMUVD) was quite bad: it dismisses entire programming paradigms based on pseudo-arguments, to eventually conclude that the perfect language is 'C but with typed macros'; and it also contains gems as this:
>In the 60s and 70s, [...] academic research produced the great concepts most nowadays computing systems are still based on (Unix, [...]
which don't speak highly of a would-be innovative OS designer.
But poring now through the about page, I see some better ideas laid out there. This, which also aligns with discussion currently going on in the 'sovereign computing' thread (>>32709), I can totally agree with:
>At the beginning, Pliant is a computing language.
>It's target is: enable to keep better control on the computing system and better adaptation capabilities thanks to reduced complexity. This has been achieved mostly through enabling to develop everything in a single language that combines high expression power with execution efficiency.
Other possibly cool ideas:
>a database engine [which] enables you to answer the following [...] requests [...]: 'revert only what user Joe did from time A to time B because his account had been cracked'.
>a large usage scope cross-platform user interface graphical toolkit. [...] In very few words, you don't have to chose anymore between a traditional graphical interface (Windows, X11, Qt) or a web interface for your new application; you get both at once.
Tentatively, I consider the OS similar to Plan 9: not groundbreaking, but packed with cool ideas worth looking into.
Now for the website itself, although a bit of a dead horse by now, I think its flaws are relevant in the context of this kind of project, so I'll summarise the key points. Firstly, the javascript requirement evidences this man's level of commitment to software freedom. Secondly, its design completely misunderstands what the web is about, and is overengineered and broken. One particular misfeature that the previous lains probably haven't observed: when you browse the site through a high-latency link, after a few seconds you get a red 'connection broken' text on the page's bottom, and then the javascript redirectors he uses in place of links stop working, giving you a fully dead document. A long chain of bad decisions is required to attain this result.
>So, what you can nicely do with FullPliant includes:
>- develop a web site with database interface, web 2 capabilities, using a high level language that completely hides the web 2 trickiness.
Heh.
XERXES · 2022-10-31 17:00
I think a big barrier to its discovery is that he doesn't seem to have the best grasp of English, in fact I think the entire website is most likely machine translated. English is the technical lingua franca and you're not gonna be able to reach much people being stuck with French.
cond · 2022-10-31 18:10
This seems to be geared towards industrial use. Not sure what even hobbyists would get out of it.
Ishikura "Tatsu" Tatsuhiko · 2022-11-03 16:43
I read these 3 files so far
/pliant_program/pliant/sample/fact.pli:
function fact x -> y
arg Int x y
if x=0
y := 1
else
y := x*(fact x-1)
export fact
console "fact(5)="+('convert to string' fact:5)+"[lf]"
/pliant_program/pliant/sample/flagset.pli:
flagset FileMode
all_x
all_w
all_r
group_x
group_w
group_r
owner_x
owner_w
owner_r
gvar FileMode fm := owner_x+owner_r
console (shunt fm=owner_x+owner_r "ok" "oops") eol # shoud print ok
console (shunt fm=owner_x+owner_w "oops" "ok") eol # shoud print ok
console (shunt fm:owner_x "true" "false") eol # shoud print true
console (shunt fm:owner_w "true" "false") eol # shoud print false
console fm-owner_x eol # should print: ownwer_r
console (string (cast fm Int) "radix 8") eol # should print: 500
console (cast 493 FileMode) eol # should print: all_x+all_r+group_x+group_r+owner_x+owner_w+owner_r
flagset TrafficLight
red
green
yellow
arbitrary_constant 16
console (.not. yellow) eol # should print: red+green+arbitrary_constant
console (.not. (cast 0 TrafficLight)) eol # should print: red+green+yellow+arbitrary_constant /pliant_program/pliant/sample/file.pli:
module "/pliant/admin/file.pli"
function file_count path
arg Str path
var Array:FileInfo dirs := file_list path extended+directories+relative
var Int total_count := 0 ; var Intn total_bytes := 0
for (var Int i) 0 dirs:size-1
if dirs:i:is_directory and not dirs:i:is_link
var Array:FileInfo files := file_list path+dirs:i:name extended+recursive
var Int count := 0 ; var Intn bytes := 0
for (var Int j) 0 files:size-1
if not files:j:is_link
count += 1 ; bytes += files:j:size
console (left dirs:i:name 30 " ") " " (right string:count 6 " ") " files " (right (string bytes\2^20) 6 " ") " MB" eol
total_count += count ; total_bytes += bytes
console "total for " path " : " total_count " files " total_bytes\2^20 " MB" eol
export file_count takeaway:
it has a primitive to compose flags without needing bit twiddling (flag1+flag2+flag3), check if its set with flagset:flag1, compare it to flag2+flag3, etc
this is not very useful to merit being built into a language. just use a set data type in any modern language
other than that it seems like a typical underpowered procedural language like pascala or java. translation for zewmers; its like golang
there is some GUI DSL or something
there is also metaprogramming which i dont care about since that requires having a sound and useful language first
>>33232
ive had no problem reading it. maybe your autism prevents you from comprehending casual writing
the reason for lack of success is that he didnt have a massive cult following like go's authors