[HN Gopher] Plan 9 from User Space
___________________________________________________________________
Plan 9 from User Space
Author : abudabi123
Score : 113 points
Date : 2023-04-28 14:45 UTC (8 hours ago)
(HTM) web link (9fans.github.io)
(TXT) w3m dump (9fans.github.io)
| dang wrote:
| Related:
|
| _Plan 9 from User Space (aka plan9port)_ -
| https://news.ycombinator.com/item?id=3064180 - Oct 2011 (2
| comments)
|
| _Plan 9 from User Space_ -
| https://news.ycombinator.com/item?id=2125731 - Jan 2011 (6
| comments)
|
| _Plan 9 from User Space_ -
| https://news.ycombinator.com/item?id=1266168 - April 2010 (6
| comments)
| JHonaker wrote:
| After a brief diversion with the Acme editor (a big part of Plan
| 9) and some modern Smalltalk environments (Squeak, Cuis, and
| Pharo), I can't help but feel like we are stuck in a very local
| optimum as far as UI/UX go.
|
| The insane amount of introspection available to you in a
| Smalltalk image, and the way every bit of text becomes a
| potential button or action in Acme just put the lack of
| creativity in modern interfaces. I say all this as a Haskell and
| Nix fan as well, so I'm very in-tune to the benefits of
| functional purity and reproducibility in a computing system. It
| really makes the silo-ed world of isolated microservices,
| containers, and walled "garden" ecosystems seem really sad.
|
| I guess this is my way of saying, that we should all try to do
| things differently. Haskellers, go learn Smalltalk. It's not a
| big deal that things mutate things when you can literally inspect
| every object as its running, including the debugger :D.
| Smalltalkers (or Rubyists or whatever is closest) go learn
| Haskell. Sometimes boundaries are GOOD. Formality can be very
| helpful when it comes to organizing, designing, and reasoning
| about your stuff!
|
| And we should all try to do something weird.
| pmoriarty wrote:
| My biggest problem with acme is that it's so mouse-oriented.
|
| As a big fan of keyboard-only use of vim and emacs, this made
| acme a complete non-starter for me.
| Paul-Craft wrote:
| One could say much the same thing about emacs and vim as well.
| emacs, in particular, is essentially nothing more than the
| elisp interpreter, with some good primitives to build a (some
| say mediocre) text editor inside a pretty cool operating
| system.
|
| What sort of "weird" do you think would be fun?
| JHonaker wrote:
| I have been using Emacs as my daily driver for about a
| decade. It's the closest thing we have to a "popular"
| Smalltalk environment. The desire to bring everything into
| Emacs is the same desire I felt after experiencing what
| computing could be in Smalltalk.
|
| One of the really striking things that you're confronted with
| in a modern Smalltalk is the Morphic UI system. Imagine that,
| with one click, you could drop into a new window with a live
| inspector and a (very freeform, repl-ish that's not a repl)
| REPL loaded into the internal context of any button, window,
| pane, scrollbar, you name it that you can see right now.
| (Even my own vocabulary is stifled with the traditional UI/UX
| we have now!) Now imagine you can do that on any application
| on your computer. Now imagine you can drag those
| subcomponents around, rearrange them, drag them onto new
| windows, modify their code, spawn new ones, and so on _all
| while the thing keeps running and functioning_.
|
| If you break something, it's okay. The debugger pops up and
| allows you to do the same thing that you did when you
| inspected the widget _for any point in the frame in the stack
| trace_. Yes, you can debug, live, multiple levels of your
| stack trace at the same time, that have live, editable
| versions of the code as well.
|
| You don't have to imagine it. You can see it here [1] or just
| download a Smalltalk system yourself.
|
| If the Smalltalk community focused on building some tooling
| to allow you do develop other languages inside a Smalltalk
| image based editor, I don't think even Emacs could compete.
|
| -------------------------------------------------------------
| --------
|
| As far as what kinds of weird would be fun, I always find new
| interaction paradigms fun. That's one of the things I loved
| the most about Acme. It's kind of crazy how versatile and
| adaptable "execute the highlighted text in the shell" is as a
| core interaction loop. If you want to search files for
| something, just type `grep` in front of the word, select them
| all, and then you get a new buffer with the results. Which
| are, of course, editable and executable in the same way.
|
| The two most common places I see experimentation in this are
| in Linux window managers and programming languages. I've
| tried StumpWM, i3, and AwesomeWM before. I wish there were
| more people experimenting with non-tiling things. The person
| behind this project is doing some very cool stuff [2].
|
| There are tons of people making cool, small (and large) new
| programming languages like Idris, Janet, Lean, and Pony and
| lots of people still using really cool old programming
| languages like APL (or J or K or BQN), Forth, and Scheme
| (Racket is great, Gerbil built on Gambit is insanely good for
| a one person project). I see some insanely cool stuff about
| prototype languages doing staged metaprogramming (lookup
| Collapsing Towers of Interpreters if you want to read about
| something really cool, i.e. compiling out the costly
| abstractions in infinite towers of reflective interpreters),
| dependently typed experiments, and other wild shit.
|
| Surprisingly, there seems to be a lot (sadly meaning only 2-3
| actually separate movements) going on in the "OS space" too
| with immutable/declarative system specification. I'm
| referring of course to Nix and Guix and things like Fedora
| Silverblue and OpenSUSE MicroOS. That's gaining steam
| quickly. I personally find the Nix language rather fun and
| interesting in its own right, but I think I'm on the minority
| side of that.
|
| Broadening out past that, hell I don't know. That's why I put
| the call out to everyone else :D
|
| [1] https://youtu.be/QTJRwKOFddc [2]
| https://codeberg.org/mmontone/mold-desktop
| tarkin2 wrote:
| You can inspect, alter and debug any website too.
| (Minification makes this annoying but there are ways around
| this) The refresh button does delete all your modifications
| though.
| JHonaker wrote:
| I know. There's a big difference between peeking into
| something you're not supposed to, and interacting with a
| system designed to used interactively like that though.
| gatane wrote:
| Obligatory Bret Victor mention.
| butterisgood wrote:
| Not sure I'd call Acme a big part of Plan 9, though it does
| follow the philosophy somewhat. I know folks who use 9front who
| would rather spend time in the Sam editor than use Acme, and
| they use 9front as their daily driver system.
|
| But I totally agree with you on the "do something weird"
| approach to learning and gaining inspiration. Some problems
| that are hard in some spaces are extremely easy to deal with in
| others.
|
| I actually do use acme on 9front for a lot of coding tasks in
| conjunction with sshnet (imagine importing a remote system's
| network accessibility over ssh - like a lightweight VPN-almost
| sorta) and sshfs through that sshnet "tunnel".
|
| This gives me a nice code, compile, test cycle that has some
| "editing" commands that let me jump straight to where failures
| occur with a single click.
|
| And Acme knows nothing about what it's doing... it simply
| follows its own basic rules, and the file system underneath is
| arranged to enable my workflow.
| JHonaker wrote:
| Yea, I was really just trying to say, Acme is part of the
| Plan 9 ecosystem for people that have never heard of either.
| For me at least, Acme is the quintessential P9 application,
| but I concede that it's Sam for most P9ers in history. It's
| probably more apt to say Acme is an excellent exemplar of the
| Plan 9 way. The file-based socket-y proto-RPC "plugin" way of
| doing things is intimately tied to Plan 9's design.
|
| And yea, Acme is different, but Sam is _weird_. In a good way
| though. I never really tried to get the hang of it, but Sam
| does live on in some ways (Vim Ex commands and such).
|
| I'm also not surprised that a 9front user thinks it's a good
| idea to be weird. Just look at your webpage and this very
| bizarre thing that is for some reason linked one click away
| on the side menu: http://9front.org/movies/
| Weebs wrote:
| > And we should all try to do something weird.
|
| YES
|
| It's a big world out there and there's so many cool techniques
| we know are helpful but aren't widespread and really should be,
| and so much more to be discovered still!
| Paul-Craft wrote:
| For those who are unfamiliar, _Plan 9 from User Space_ a pun on
| _Plan 9 from Outer Space,_ an infamously "so bad it's good"
| movie from the 1950s. It has this ridiculous bimodal distribution
| of review scores as a result:
|
| https://www.rottentomatoes.com/m/plan-9-from-outer-space
|
| https://www.imdb.com/title/tt0052077/ratings/
|
| https://www.mentalfloss.com/article/78785/10-out-world-facts...
|
| https://www.bbc.com/culture/article/20220107-is-this-the-wor...
|
| https://en.wikipedia.org/wiki/Plan_9_from_Outer_Space
| msla wrote:
| The more proximal referent is Plan 9 from Bell Labs:
|
| https://9p.io/plan9/
|
| > Plan 9 from Bell Labs is a research system developed at Bell
| Labs starting in the late 1980s. Its original designers and
| authors were Ken Thompson, Rob Pike, Dave Presotto, and Phil
| Winterbottom. They were joined by many others as development
| continued throughout the 1990s to the present.
| jhbadger wrote:
| True, but that in turn was named after Ed Wood's _Plan 9 from
| Outer Space_. And its mascot "Glenda" is a reference to
| another of Wood's movies, _Glen or Glenda_.
| Paul-Craft wrote:
| That's not funny though, and it's an obvious reference to the
| movie.
|
| > The name Plan 9 from Bell Labs is a reference to the Ed
| Wood 1957 cult science fiction Z-movie Plan 9 from Outer
| Space.[17] The system continues to be used and developed by
| operating system researchers and hobbyists.[18][19]
|
| https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
| fsckboy wrote:
| yes, but since you haven't nailed the humor yet, the
| original pointer-outer should have pointed out, " _Plan 9
| from Userspace_ is a follow-on to the _Plan 9_ operating
| system from Bell Labs, which was whimsically named after
| the film _Plan 9 From Outer Space_. Since the unix
| operating system is built on a simple security model of
| kernel-space and userspace, this clever word play is also
| informative about the architecture "
| cduzz wrote:
| I've suspected; have no evidence to back this up, that
| "plan9" is a play on the roman numerals IX (9) at the end of
| "UN IX" and also that "research unix" never had a 9th or 10th
| version fully developed and released. And, TIL there's
| another thing called "IX"[1]
|
| [1]https://www.cs.dartmouth.edu/~doug/IX/
| Paul-Craft wrote:
| Here's a funny thing I just found out: in chasing the
| reference cited by Wikipedia regarding the naming, I
| learned that UTF-8 was invented for Plan 9.
|
| http://catb.org/~esr/writings/taoup/html/plan9.html
| ender341341 wrote:
| My understanding was it was a work in progress and they
| showed it to one of the plan 9 guys who pointed out a way
| to make it better and then implemented it into plan 9,
| not that it was particularly originally for plan 9.
| typical182 wrote:
| There is a pretty complete description of the origination
| of UTF-8 here:
|
| https://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt
|
| Rob Pike opens with:
|
| > Looking around at some UTF-8 background, I see the same
| incorrect story being repeated over and over. The
| incorrect version is: 1. IBM designed UTF-8. 2. Plan 9
| implemented it.
|
| > That's not true. UTF-8 was designed, in front of my
| eyes, on a placemat in a New Jersey diner one night in
| September or so 1992.
| ender341341 wrote:
| ah, thanks for the source!
| InfosecIcon wrote:
| [dead]
| ryanolsonx wrote:
| Acme is an interesting text editor for development. I've used it
| for React.js development before. Because of how you can script
| it, I could run Prettier on save and a few other things you'd
| normally expect in the JS world.
| cyberpunk wrote:
| I used it for about a year, once you have everything scripted
| and setup just how you like it it's.. Meh. Ok? I eventually got
| tired of only really being able to work at my desktop though (I
| still couldn't work out how to chord properly when using the
| trackpad on my laptop).
|
| These days I use goland and vim, and I feel much more
| productive.. I still write crazy amounts of small tools and
| scripts to solve little problems though, and my .profile has
| like 200 alias's, so I guess some of it bled over..
| bilegeek wrote:
| It has the smoothest cut/copy/paste routine once you get it
| down. Moving text around is just buttery.
|
| I personally find the lack of highlighting and auto-delimiters
| is a PITA for HTML/LaTeX though.
| Avshalom wrote:
| you could I suppose write a program that continuously scans
| the buffer and replaces things with unicode, but converts
| back to ascii on save.
|
| int mainvoid { }
| Paul-Craft wrote:
| > I personally find the lack of highlighting and auto-
| delimiters is a PITA for HTML/LaTeX though.
|
| Sadly, I have not used acme. Wouldn't this deficiency be
| simple to overcome with scripting? I guess that's one
| particular area where emacs, being essentially a specialized
| LISP interpreter, encourages you to think about these things
| by default.
| nmz wrote:
| If only it had keybindings.
| butterisgood wrote:
| That would be missing the point. It does have limited
| keybindings ctrl-a = go to beginning of line ctrl-e = go to
| end of line ctrl-u = cut from point to beginning of line esc
| = select the last "stuff" just typed
|
| The fact you can create your own "buttons" that do basically
| anything is pretty nice, but you REALLY want a 3 button
| pointing device to use it. It also doesn't care about the
| programming language you use to create such a button, but you
| will work with the filesystem metaphor provided by Acme
| itself to get things done.
|
| I find the mouse interface is extremely fast, and when you
| couple it with the power of the plumber in Plan 9, it's a
| reasonably good way to navigate around a complex workflow.
|
| It's also a reasonably small environment in terms of lines of
| code. The Go version (Edwood) is pretty good too!
| https://github.com/rjkroege/edwood
| jesusofnazarath wrote:
| acme is the best unix editor period.
___________________________________________________________________
(page generated 2023-04-28 23:00 UTC)