On Thu, Apr 25, 2019, at 7:57 PM, LM wrote:
> 
> Also wondering what user interfaces are typically used with Plan 9
> programs (programs not designed for the command line).  Is there
> anything on the roadmap for user interface development?  I've looked
> at several GUI and TUI libraries on a variety of operating systems
> (over a long period of time) and I've yet to find one I really like.
> I do like working with command line programs, but some programs just
> don't lend themselves to that format.  Was wondering what design ideas
> Plan 9 developers might have for user interface development.
> 

I'm not up to writing much at the moment, (and I think I might have not 
received some messages in this thread,) but just to say the filesystem 
interfaces of Plan 9 programs make a fascinating extension to their UI and 
functionality.  I once cropped an image interactively using page, rio, topng of 
course, and crop -i 4 to trim off rio's border.  Smoothing off the rough edges 
of that process and making it a little more powerful would be interesting.  The 
plumber is a powerful tool too, as are namespaces and the ability to nest rios. 
 

What I don't like is the use of spaces to separate tokens in all the filesystem 
interfaces.  While it means you can hypothetically type into them with con, or 
just use echo or any other shell utilities to control them, in some 
circumstances quoting gets hairy.  Also, splitting tasks between multiple small 
languages gets annoying because the only means of communication between them is 
text, which means you have to write translation between different syntaxes as 
well as the task you want.  (Personally, I also have problems with the C source 
I'd need to work with to extend and improve these interfaces.)  I've started on 
my own system with one language embracing all the DSLs, and suitably structured 
data -- a-lists and tagged tables -- to ease the job of interfacing them, but 
it's a long job and not top priority in my life right now.  Plan 9 shell and 
environment support lists, but they're 1-dimensional, null-separated, and I 
don't think any of the filesystem interfaces even try to support them.  You 
can't echo them with the nulls anyway.

Reply via email to