[HN Gopher] Pliant language and FullPliant operating system
       ___________________________________________________________________
        
       Pliant language and FullPliant operating system
        
       Author : mr_golyadkin
       Score  : 73 points
       Date   : 2022-09-21 12:41 UTC (10 hours ago)
        
 (HTM) web link (www.fullpliant.org)
 (TXT) w3m dump (www.fullpliant.org)
        
       | rainingmonkey wrote:
       | This looks like a true lifetime's work, started in 1999 and still
       | developed.
       | 
       | From the description: 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.
       | 
       | It's always concerned me how we delicately stack fragile software
       | on top of incomplete, bug-ridden platforms full of workarounds
       | and "special cases" rather than building something that's
       | cohesive top-to-bottom. I'll be excited to try this out when I
       | get home!
       | 
       | It's a shame the documentation is a little unclear and the author
       | could do with some help with translation.
        
       | esjeon wrote:
       | > My name is Hubert Tonneau. I've been born in 1968. Legendary
       | will soon add that I had a computer in hand, but the problem is
       | to get an agreement on what model.
       | 
       | Okay, I'm hooked.
       | 
       | EDIT:
       | 
       | So I tried FullPliant for about 30 minutes.
       | 
       | * FullPliant is a distro. From the documentation: "operating
       | system and administration tools" (as one layer). The
       | administration tool can be access remotely. It feels like Redhat
       | + Cockpit to me.
       | 
       | * It's a kind of web-based environment. Each view has a
       | `loopback://` url.
       | 
       | * It has some interesting applications. Virtualization ones can
       | be handy for operating mini boxes.
       | 
       | * The UI is, indeed, very consistent. All menu operations can be
       | accessed with Alt+( ) combination. This feels very solid and
       | convenient.
       | 
       | But, overall, UI needs some more work.
       | 
       | * UIs are buggy in some deeper parts.
       | 
       | * WYSIWYG editor is buggy.
       | 
       | * Doesn't support text selection nor block delete (i.e. ctrl-
       | backspace).
       | 
       | * UI elements aren't kind. (i.e. calendar app requires you to
       | punch in date-string directly.)
       | 
       | (TBH, these are all not so fun to work on.)
       | 
       | Apparently, the author used his own creation to roll some
       | industrial boxes. If so, it does explain the application line up
       | and the overall look-and-feel. This can be useful for driving
       | server boxes with specific goals, but is less of a do-it-all
       | desktop environment.
        
         | dang wrote:
         | Does the site have contact info? I couldn't find any, but I
         | feel like one of us should let Hubert know this is on HN. Maybe
         | he'd show up to answer questions!
        
       | kragen wrote:
       | I've always thought Pliant was interesting. It is only a little
       | out of the mainstream (imperative language, runs on Linux) so, so
       | far, nothing that blows my head open (like Oberon, Smalltalk,
       | Prolog, Haskell, Coq, Hypothesis, TeX, and Plan9). But it seems
       | practical.
        
       | unixbane wrote:
       | > * It's a kind of web-based environment. Each view has a
       | `loopback://` url.
       | 
       | Great sounds like another idiotic thing I can skip.
       | 
       | > * The UI is, indeed, very consistent. All menu operations can
       | be accessed with Alt+( ) combination. This feels very solid and
       | convenient.
       | 
       | This is a feature of all products created by a single entity.
        
         | dang wrote:
         | You've been breaking the site guidelines repeatedly. Would you
         | please read them and stick to the rules? We ban accounts that
         | won't.
         | 
         | https://news.ycombinator.com/newsguidelines.html
        
       | gatane wrote:
       | "Anyway, I find the sociological level answer more pertinent.
       | [...] So, my two cents sociological level conclusion is just ...
       | Who is really working on languages nowadays ?"
       | 
       | This guy has some Stallman vibes, in the good sense.
        
       | JonChesterfield wrote:
       | This appears to be a software stack written by one guy who
       | doesn't really believe in marketing. Moderately difficult to work
       | out what is here from the docs but there is GPL'd source
       | available.
       | 
       | There's a language and I think a bespoke database. Some web
       | things. Probably not an OS and there are references to a patched
       | Linux kernel.
       | 
       | Quite difficult to determine the language semantics. I think it's
       | a hybrid of lisp and C.
        
         | ilaksh wrote:
         | If you spend a few minutes you should be able to easily find
         | the documentation that explains all of it.
        
         | cestith wrote:
         | There are places in the site that say it provides everything of
         | an OS except the kernel. So it's basically on par with GNU or
         | so needing a Linux or FreeBSD kernel to complete the system.
         | 
         | The site also refers to the language as a superset of C with an
         | instance-based object model, dynamic compilation, reflexivity,
         | and metaprogramming capability.
        
         | calvinmorrison wrote:
         | found this:
         | 
         | A minimal FullPliant installation is composed of:
         | 
         | - A Linux kernel,
         | 
         | - A tiny set of executables and libraries picked from an Ubuntu
         | distribution
         | 
         | - Pliant.
        
       | naasking wrote:
       | Talk about blast from the past. I came across this at least 10
       | years ago, had some differences of opinion over type checking for
       | Pliant IIRC.
        
       | djhaskin987 wrote:
       | I had to look at the overview[1] which I found to be super
       | interesting.
       | 
       | The author focuses on metaprogramming (something like hygienic
       | macros that are more efficient) as the only real needed extra
       | feature over C. He says that with this other stuff can be built
       | at need using libraries.
       | 
       | The upside is that new language features are just libraries that
       | gain or lose popularity as time goes on, allowing the core
       | language to be more or less the same as it was at its inception
       | while still staying alive. This advantage is shared by Common
       | Lisp for the same reasons.
       | 
       | The disadvantage is that since anybody can make a new sublanguage
       | simply by writing a library, you're left with a fight between
       | libraries on what language features are important for the whole
       | group, splintering the group into different sub language dialect
       | camps. This is part of the curse of lisp. The upside might be
       | that it's still probably pretty difficult to write meta
       | programming in Pliant relative to lisp because of its focus on
       | efficiency. Perhaps this will save it from most of the curse.
       | Time will tell.
       | 
       | I have never yet seen a "C++ Replacement" language's more
       | carefully argued or justified using simpler arguments than this
       | language. That the core language will probably endure easily is
       | very exciting to me, especially after seeing the evolution that C
       | and C++ has gone through over the years and how hard changing the
       | language is nowadays. In the language overview the author makes
       | some very good points about why he chose what he chose in his
       | design decisions.
       | 
       | Other replacement languages try to simply make design decisions
       | based on taste. This is not a bad thing; some language designers
       | have excellent taste. But it is nice to have a plain explanation
       | as to why specific features were included in a language.
       | 
       | One last thought I did have was that if language features are
       | libraries, there had better be a very good dependency manager and
       | packaging solution for this language from day one if it is to be
       | usable.
       | 
       | 1: http://www.fullpliant.org/page/pliant/3SR6QMB8/0EEMUVD
        
       | dgan wrote:
       | not a single button is clickable, can't even change language
        
       | brezelgoring wrote:
       | Hearing about one man building a full OS by himself and doing the
       | spec in an autobiographical fashion gives me TempleOS vibes.
       | 
       | Unfortunately I can't click the site's links on mobile (Safari,
       | iOS 15.6.1). Where do I file a bug report?
        
         | xixixao wrote:
         | You have to reload the page if you navigated "back" to it.
         | Strange bug.
        
         | twic wrote:
         | There are no links on the page. There are spans, styled to look
         | like links, with an attached event handler which sends some
         | cryptic ID associated with the pseudo-link to the server over a
         | websocket. The server sends back messages on the websocket
         | which look like:                 url_call
         | /page/pliant/ZI0TDFOV/0DFXKE5\u0001\u0002
         | 
         | The handler on the websocket reads the messages (in a slightly
         | roundabout way) and passes them to a function which parses them
         | (in a highly roundabout way), and then goes into a big if-else
         | ladder which dispatches on the first token to do various
         | things; commands supported are:
         | section_overwrite       section_head       section_tail
         | section_before       section_after       section_delete
         | image_write       image_copy       url_call       url_jump
         | url_return       focus_set       scroll       hook_visible
         | clipboard_trigger       javascript
         | 
         | The url_call command winds up doing this:
         | window.location.href = decodeURI(arg[1]);
         | 
         | It's ingenious, but completely demented and unnecessary.
        
           | brezelgoring wrote:
           | >It's ingenious, but completely demented and unnecessary
           | 
           | The story of this project in its entirety, that is.
        
           | [deleted]
        
           | iainmerrick wrote:
           | That is totally nuts but I kind of love it. At least you
           | can't say he isn't using his own tools. Talk about
           | dogfooding.
        
       ___________________________________________________________________
       (page generated 2022-09-21 23:01 UTC)