9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Ethan A. Gardener" <eekee57@fastmail.fm>
To: 9fans@9fans.net
Subject: Re: [9fans] What are you using Plan 9 for?
Date: Wed, 20 Jun 2018 22:35:42 +0100	[thread overview]
Message-ID: <1529530542.3279707.1414877304.5B04A2FD@webmail.messagingengine.com> (raw)
In-Reply-To: <C01BE0D0-89DF-4421-9DC7-B667EAD99866@yingmi.cn>

On Mon, Jun 11, 2018, at 7:14 AM, 刘宇宝 wrote:
> this makes me wondering 
> whether anybody still seriously uses(or used?) Plan 9 for serious work, 
> what software they frequently use, what software is most lack of.

For many years I used it and especially Acme to try to organise my life, including every area of interest I had. Plan 9 and Acme played their parts quite well. I even had multiple Acme sessions running, each with its own plumber. Some windows held sub-instances of Rio, again with their own plumber instances, for projects requiring graphics or PDFs. 

Another use I had for it was playing MUDs, MUSHes, MU* -- telnet-based multi-player games. I particularly liked Rio's "noscroll" feature in this case, as I could catch up with all the messages at my own pace. In fact, I very much like noscroll in general. On the other hand, the lack of color meant I could miss things sometimes, such as a clue in a room description or a private message while travelling -- noscroll isn't really feasible when you're following someone rapidly through a dozen rooms, each with their own description. I never got around to filtering different kinds of messages into different windows. I should have.

Overall, I asked Plan 9 to do quite a lot of things it wasn't really designed for, without writing a bit of C code, and for the most part it proved remarkably convenient. Frustration eventually built up over some things, particularly all the string manipulation -- converting data between the different programs' needs -- when, even after all these years of practice, I am _still_ bad at regular expressions! I developed ideas about another operating system with structured pipes, but around this time I learned to relax. I dropped most of my projects, stopped trying to play so many games so hard, and no longer needed Plan 9 to help me organize it all.

Ironically perhaps, relaxing has freed my creativity so that I'm now programming more than at any time since before I started using Plan 9 full time. Most of it is going into game scripting at the moment, but on the back burner is a Forth-based project; a sort of operating system where the primary interface to all tasks is a Forth interpreter. So far, I've written the basics of a text editor. It's *very* little code! Plan 9 is a very expressive system for how little code it has, but this seems to be a major step beyond that. It's a bit too early to really tell. 

It offers the full power of a systems programming language at the editor prompt. If that sounds like a problem, it's not yet. If it ever becomes a problem for common tasks, I can write safer, higher-level, and probably more convenient words (=functions, =commands,) to handle those tasks. That's arguably how the text editor's basics already work. For instance, change-dotlen performs safety checks before calling the (dangerous, powerful,) move word to adjust the contents of the buffer for inserted or deleted text. rdot ("replace dot") is a user command which calls change-dotlen to do most of the work, then calls move again to copy the string into the buffer. change-dotlen is well tested, rdot is so simple there are obviously no faults. :) (That's not something I really believe in, I tested it too.) None of the other user commands call move, they adjust dot and then call rdot. Adjusting dot means a call to dot! (dot-store), which also has safety checks.

When all the necessary tools are written, there's just no need to use the unsafe features, but neither is there a need to partition those features off into compiled program space. There's no need to learn five different languages for one task, and if you want to point out that a Forth system may well include lots of mini-languages, there's no need for the mini-languages to have -- or LACK -- their own loops, conditionals, variables, or function definitions, not to mention jammed-into-a-string terse syntaxes.

I'd better stop here because I'm getting enthusiastic. :) It is early days yet, I may have to retract some of my beliefs in the future. I still have a Plan 9 system which is almost always on, but now I no longer have a desk of the right proportions to make mouse use comfortable, and can no longer bend over a laptop for hours on end, (a Thinkpad with 3 buttons,) text editing in Plan 9 has become unpleasant. I could patch Samterm and Rio to make it more comfortable, but it's not worth it. 

-- 
The lyf so short, the craft so long to lerne. -- Chaucer



  parent reply	other threads:[~2018-06-20 21:35 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-11  6:14 刘宇宝
2018-06-12 14:57 ` 刘宇宝
2018-06-14  2:53 ` N. S. Montanaro
2018-06-14  3:53   ` 刘宇宝
2018-06-14  5:17     ` Lucio De Re
2018-06-14 21:12       ` hiro
2018-06-15  0:57         ` 刘宇宝
2018-06-15  2:24           ` N. S. Montanaro
2018-06-15 11:44           ` hiro
2018-06-16 13:39     ` Ole-Hjalmar Kristensen
2018-06-16 15:26       ` Jerome Ibanes
2018-06-21  9:06     ` Rui Carmo
2018-06-21  9:53       ` dexen deVries
     [not found]       ` <BJXPR01MB0277C36675F3F1EA52FC46EAD44B0@BJXPR01MB0277.CHNPR01.prod.partner.outlook.cn>
2018-06-26  3:24         ` 刘宇宝
2018-06-26  6:36           ` Tyga
2018-06-27 19:10             ` Ethan A. Gardener
2018-06-27 18:45           ` Ethan A. Gardener
2018-06-14  9:46 ` Tyga
2018-06-14 14:22   ` Steve Simon
2018-06-14 16:15     ` tlaronde
2018-06-14 17:23       ` hiro
2018-06-14 17:45     ` Daniel Camoles
2018-06-15  6:13       ` Mart Zirnask
2018-06-15 13:51         ` Lucio De Re
2018-06-15 14:26           ` hiro
2018-06-15 16:03             ` Mart Zirnask
2018-06-15 17:47             ` Lucio De Re
2018-06-15 19:02         ` Mark van Atten
2018-06-15 23:58           ` Iruatã Souza
2018-06-16  9:35             ` tlaronde
2018-06-18  8:35             ` Mark van Atten
2018-06-14 21:20   ` hiro
2018-06-20 21:35 ` Ethan A. Gardener [this message]
2018-06-21  3:58   ` Lucio De Re
2018-06-21  4:49     ` Bakul Shah
2018-06-21 16:02       ` Ethan A. Gardener
2018-06-21 15:23     ` Ethan A. Gardener
2018-06-21 18:03       ` Bakul Shah
2018-06-25  9:33         ` Ethan A. Gardener
2018-06-26  5:17           ` 刘宇宝
2018-06-27 19:01             ` Ethan A. Gardener
2018-06-26 21:03           ` Bakul Shah
2018-06-21  5:39   ` Kurt H Maier
2018-06-21 16:39     ` Ethan A. Gardener
2018-06-21 20:18     ` Skip Tavakkolian
2018-06-28  9:57       ` Richard Miller
2018-06-27  5:18     ` Iruatã Souza
2018-06-28  2:04       ` Tyga
2018-06-21  7:20   ` Mart Zirnask
2018-06-21 15:11     ` Ethan A. Gardener
2018-06-24  8:22       ` 刘宇宝
2018-06-15  8:16 cinap_lenrek
     [not found] <1740027127.295380.1529081094082.ref@mail.yahoo.com>
2018-06-15 16:44 ` Brian L. Stuart
2018-06-15 18:16   ` Mark van Atten
     [not found] <1401313358.335074.1529087916083.ref@mail.yahoo.com>
2018-06-15 18:38 ` Brian L. Stuart
     [not found] <135406475.3232013.1530116414782.ref@mail.yahoo.com>
2018-06-27 16:20 ` Brian L. Stuart
2018-06-28  2:06   ` Tyga
2018-06-28  7:22     ` Mart Zirnask
2018-06-28 18:47       ` Bakul Shah

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1529530542.3279707.1414877304.5B04A2FD@webmail.messagingengine.com \
    --to=eekee57@fastmail.fm \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).