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
next prev 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).