logoalt Hacker News

MisterTeatoday at 1:48 PM4 repliesview on HN

Plan 9 is mostly Rob Pikes idea and did not involve Ritchie heavily. https://doc.cat-v.org/plan_9/1st_edition/designing_plan_9

Recently, Pike commented that he designed Plan 9 so he could build the windowing system he wanted. (edit: oops, link) https://9fans.topicbox.com/groups/9fans/T4fec171fec7e3845-M2...


Replies

vintagedavetoday at 2:28 PM

So that would be 'rio'?[0] I can find screenshots but haven't found much that explains how or why it's different -- what I've read explains it's not how it looks so much as how it functions, eg, each process genuinely own a console or mouse rather than getting events from the OS as you might in, say, Windows. I can't tell if I am understanding this correctly, of course.

I do know that in Plan9, 'everything is a file' is literally correct. So owning a mouse would mean reading from /path/to/mouse. But what I've also read is that every process can do so believing they own it - it's theirs exclusively?

For anyone reading this comment in future please do not trust it, I don't know what I'm talking about, except that standard references I've found don't fully explain.

[0] https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs#Graphica...

show 1 reply
pjmlptoday at 5:46 PM

Additionally, the end stop was Inferno and not Plan 9.

Rob Pike also acknowledged that leaving GC out of Alef and going back to C was a mistake, speaking of which the Plan 9 C compilers continued to be their own thing instead of blindly following the new language standard.

lproventoday at 2:08 PM

I knew this about Pike, but not Ritchie. Thanks.

I think, though, that one of the vastly underestimated aspects of Plan 9/9front is its simplified C.

AIUI one of the biggest differences is that a file is not allowed to `#include` anything that has already been #included in a parent project. You are not allowed to nest #includes.

The result is vastly reduced compile times. I have read claims of over 1000x fewer lines of code going through the compiler.

(Sure, disk caching helps a lot, but it still has to go through CPU.)

Cleaning up a codebase is a massive PITA but it's a one-time job and I have read comments that once you learn this, it quickly becomes habit.

Imagine if that was put into C29 as an advisory.

Decades and centuries of compute-time saved.

This is standard in Go, which is of course Pike's more recent baby.

ANSI C let you get away with this, which sounds like one of the more epic mistakes:

https://go.dev/talks/2012/splash.article#TOC_5.

pramtoday at 2:11 PM

That XTerm readme is pretty funny

"Abandon All Hope, Ye Who Enter Here"

show 1 reply