[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)