15 ms·
The Plan-9 Effect or why you should not fix it if it ain't broken (2016)
- jensenbox 4y agonit: iotcl in the article should be ioctl
- lproven 4y agoThe article is riddled with grammatical and spelling errors as well as its many errors in reasoning.
- lamontcg 4y ago> I am quite sure that you do not know what Plan-9 is and that, probably, you never have heard of it too. Pretty sure I knew what both Plan9 and Inferno were by 2001.
- jleyank 4y agoProblem is, it’s quite difficult to know in advance what will be the win. Things that help the development and maintenance processes are good, even if they don’t map 1-1 to a problem. Projects are always short of resources and code is hard to maintain. Perhaps Linux might have come from plan 9 rather than minix if there was a better internet when it appeared. Perhaps we’d have plan gnine from rms. I see a value in being to abstract away hardware issues as it lets me reduce the complexity of what I’m working on. Operation within an abstraction can be improved or changed without changing what uses it - and the changes are made in a single place, simplifying maintenance. There can always be performance issues, but one should not set out to tune things without a reason to.
- jhbadger 4y agoExactly, and each system doing something different from standard AT&T V7 Unix did so because they thought something was broken. And they weren't entirely wrong. Yes, most people don't use Plan 9, or Hurd, or Minix, today, but we don't use V7 Unix either. Unix/Linux evolved, and it it didn't do so in a vacuum isolated from these other systems but took things from them that turned out to be improvements.
- pjmlp 4y agoI wouldn't tell, looking at how some keep using text based workflows, TUI, and multiple TTYs as if their last Linux distribution has hardly changed since AT&T V7 UNIX.
- shadowofneptune 4y agoIf we're being nitpicky, did TUIs even exist on V7? IIRC, support for terminals that did more than scroll downwards was lacking in Unix at the time, only really starting on BSD.
- pjmlp 4y ago"A few years later, Mary Ann Horton, who had maintained the vi and termcap sources at Berkeley, went to AT&T Corporation and made a different version using terminfo, which became part of UNIX System III and UNIX System V." https://en.m.wikipedia.org/wiki/Curses_(programming_library) https://en.m.wikipedia.org/wiki/Curses_(programming_library)
- t-3 4y agoWhat do you have against text? I can't cope with GUIs hiding everything while wasting half the screen on decorations. Text is simple, doesn't change, is easy to remember. I started with GUIs too, used Windows, Mac OS 9 and OS X before discovering the CLI, so this isn't nostalgia, I really prefer text. It's incredibly empowering to interact with the computer through a simple and comprehensible text interface.
- pjmlp 4y agoText, is ok when it makes sense, and even then, a REPL is much better option. Living in the past of when graphics workstations were more expensive than buying a house, if available at all, not so much. When I started, text was the only option, so yeah for me it doesn't make sense to throw away everything we got since 1980's in computing.
- ilyt 4y ago
- LoganDark 4y agoPlan-9 isn't Unix
- bediger4000 4y agoI've always wondered about the hidden convergence of the "9" in Plan 9, and the "IX" in Unix. IX, after all, is how Romans and Western Civilization wrote numbers until say 1200CE. Given how smart Pike, Thompson, Ritchie etc are and we're, I doubt this is a coincidence!
- keiyakins 4y agoIt probably was, seeing as Plan 9 was named after a movie.
- RcouF1uZ4gsC 4y agoI think the other lesson to learn is that “everything is a …” abstractions don’t work as well in practice as in theory. All abstractions leak. The more surface area an abstraction covers, the more leaky it is likely to be.
- chillfox 4y agoThe "everything is a ..." is an incredible powerful abstraction type, but you really have to go all the way for it to really work well.
- jacquesm 4y agoIt actually works like a charm. The lack of adoption certainly isn't due to the 'everything is a file' abstraction layer, more because by the time it had been released to the masses the momentum in Unix / Linux was absolutely massive and super hard to overcome. And they in turn were under fire from Windows and Mac on the desktop, which left only an extremely small niche, one that was too small to be viable. But if you've ever worked with it then you will be longing for exactly those features forever and wondering why we did not manage to take more of its deep insights forward. A lot of really good ideas have been slaughtered on the altars of commerce and perceived performance improvements. As a result we are still developing software roughly the same way that we did 50 years ago, a model that wasn't ideal but that was good enough.
- NohatCoder 4y agoThe API/ABI structure of every modern OS is a hot mess, that has nothing to do with syscalls not being files, and everything to do with the way the systems have been extended over and over again for decades. Making a simpler API is a great idea, and from you comment I guess they mostly succeeded, but they did not have to go down the everything-is-a-file path to do that. What role this played in lack of adoption depends on what alternate course of action you compare it to. A non-file-based rewrite of the API would likely have had approximately the same result, in any case a good compatibility layer might have made a big difference.
- pjmlp 4y ago
- deleted 4y ago[deleted]
- foobarbecue 4y agoFirst sentence made it clear I'm not the intended audience so I didn't read any further.
- lokar 4y agoSame here. Author comes off as a bit of a jerk. Stopped reading.
- linksnapzz 4y agoHe comes off as Italian & opinionated, and writing informally about a topic. He probably doesn't feel the need to be circumspect about his observations on his own blog. Even though I think he's (mostly wrong) about his conclusions, I wouldn't ascribe jerkishness to what is probably an unintended cultural impedence mismatch.
- asveikau 4y agoI know a lot of Italians who are less arrogant than this guy. I don't think you can blame it on him being Italian.
- linksnapzz 4y agoIf you could get the ones you know to write a piece on Plan9 (in English), we could have a comparison. I'm pretty forgiving of people who want to have their say on things, even if they're not omniscient.
- Gordonjcp 4y agoIt's okay, the second sentence was so incredibly wrong I began to wonder if it was a parody site.
- cortesoft 4y agoRight? I have had so many discussions about plan-9 over the years. A pet peeve of mine is statements like that… just because you just learned about something doesn’t mean other people didn’t know about it before. Even if you ask all your friends and they don’t know, that doesn’t mean different circles don’t know about it.
- bediger4000 4y agoThis strikes me as revisionist. Research Unix v8-20 had quietly trended towards more things-as-files. The hardware environment that Plan 9 assumed was very different - separate file servers, compute servers and graphic workstations, plus it came out when Microsoft and Windows were at their maximum power. Beyond all that, today's leading OS, Linux, has incorporated many of Plan 9's ideas. /proc filesystem, the signalfd system call, and UTF-8 are all examples. I think it's dangerous to assume what this article advocates. You risk trying to make a faster horse, or maybe the Uber of $X
- lproven 4y ago> Research Unix v8-20 had quietly trended towards more things-as-files Hang on, what? AFAIK UNIX 10 was the last ever version. https://en.wikipedia.org/wiki/Research_Unix#Versions https://en.wikipedia.org/wiki/Research_Unix#Versions
- zokier 4y ago> Research Unix v8-20 had quietly trended towards more things-as-files That brings up another point; UNIXes v8-v10 are even more irrelevant and forgotten than plan9, despite presumably being more compatible with the venerable v7 UNIX. So pinning plan9s failures on it being different seems to me very misguided
- zozbot234 4y agoLinux is still incorporating ideas from Plan 9 in a haphazard and unplanned way. "Containerization" (kernel-level namespaces, really) was a big one; user-space block devices was one of the latest. I do think that Plan9's de facto requirement for graphics-capable hardware is a bit weird in retrospect. It really was made to be a research OS for networked workstations (and the default UI basically clones Oberon) even though the design concepts it ultimately leverages are far more applicable.
- pjmlp 4y agoIBM mainframes got there first.
- 4y ago
- smitty1e 4y agoEven when the fixes are arguably improvements, it's still tough sledding. Ask Guido van Rossum re: Python 2=>3.
- bakul 4y agoEven Minix, which was (IMHO) worse than Unix Version 7, was popular at one point! What Torvalds started from. With the advent of i386, many people definitely wanted something better than MSDOS or early Windows. If plan9 had been released as open source by 1992 things might’ve been very different.
- rjsw 4y agoYou could buy commercial UNIX for the i386 in 1985, worked well, I ran one version on my home PC before switching to 386BSD 0.1 in 1992.
- CogitoCogito 4y agoMinix is arguably more popular than its ever been given its use in Intel chips' management engine.
- lproven 4y agoThat's Minix 3. Minix 3 is a very different OS, with a different design, different goal, and different licence. It's very important to distinguish between them, or else you make statements that sound akin to "Anglo-Saxon is the main language of trade in the 21st century."
- unsafecast 4y agoThat's unrelated. It's about what people use, not what a company decided is a good fit for an extremely domain-specific part of a system. Most people have no idea what MINIX is.
- einpoklum 4y ago> No one, in the Unix world, ever complained about the Unix's missed promise about file abstraction. I was complaining about the missed promise of file abstractions since the first time I was exposed to their potential: "Oh, that's great - but then, why isn't XYZ accessible as a file? And why can't we have the kernel offload interpretation of path suffixes to userspace code? And why isn't `/proc` richer? And why do I need to mess around with BSD sockets if we can just go through files? etc. etc." Now, sure, I'm just a nobody (and was a complete nobody 25 years ago when I noticed this) - but the author's claim is just false.
- drdaeman 4y agoSo did I. Just the last week I needed a replacement for a container init that watches the process outputs and kills the process on timeout. Surprising, but I haven't found anything readily available, so I had to hack my own tiny program. I haven't done much system programming any recently so my knowledge was kinda rusty. I knew the basics of what I should do - I had to wait on the child PID, watch out for the signals (because I'm running an init process, can't keep those zombies around), and work with the piped stdout/stderr fds. Sounds trivial, except that it's three completely independent APIs and those aren't files so select(1) is not my friend here. So I learned about signalfd and then learned how it's broken. Almost thought I have to run some threads but then I've learned about pselect(1) which seem to do the job. Either way, "gosh, I'd wish I'd have Plan 9 instead of all this mess" was one of my thoughts that day.
- uhura 4y agoThis kind of article develops a dangerous line of reasoning. The failure of Plan9 is not about what went wrong or right. It is about how the market evolved and made decisions, which goes beyond the scope of this comment. The first conclusion "...is not to try to fix things that are not broken..." is dangerous because what someone identifies as broken is not the same as someone else. As a Plan9 user you may identify Unix deficiencies as problems and a Unix user might disagree. The second conclusion "...is to try to identify if there is a market..." and there are many things in life that contradicts this (maths, basic science, maybe the beginning of Unix itself...). And the final conclusion is about backwards compatibility. This is sound in the authors perspective because of the first conclusion but does not hold against good reasoning. Plan9 broke some compatibility because it needed and kept others because they were already good in the POV of the developers/researchers. The Plan9 effects to me is far different. It is about the fact that Plan9 is unable to die against all expectations. 9P is there to stay, 9front gets releases every year, /proc is everywhere, same for UTF-8, and so on. Good ideas stick, they are hard to let go and even harder to ignore. Plan9 failed in the commercial OS sense, just as many others failed. "You may never know it's broken until you fix it" (I'm sure heard it somewhere).
- pjmlp 4y agoProcfs appeared originally on UNIX, see USENIX paper.
- yakubin 4y agoAnd BSDs removed it, deeming it a security risk. Personally, I don’t like that it’s more of parsing text files to get a number, when you could have functions returning structs (of variable length, to get extensibility, while preserving backwards compatibility).
- trasz2 4y agoNot just BSDs; no major operating system other than Linux uses procfs anymore.
- chubot 4y agoThis is a very shallow, incorrect analysis. The author needs to learn about composition to understand both Unix and Plan 9. As others mentioned, the author also needs to consider what research is.
- dn3500 4y agoI don't think this guy understands what research is and what it's good for. He even says that the AT&T Research Group "were not used to create commercial software and AT&T has never been in the software business" as if that's a bad thing.
- asveikau 4y agoYeah it's kind of weird that he acknowledges UTF-8 came from there and simultaneously calls it a failure. UTF-8 alone would make it a success.
- pjmlp 4y agoWell, that is how UNIX got its free beer adoption, which workstation startups like Sun took to their advantage. Plan 9 and Inferno failed at that, because AT&T had already changed by then, and there was no more free beer.
- jamal-kumar 4y agoYeah it always sounds like such a bad take when people use research operating systems as some kind of failure case against giant commercial behemoths which have a totally different model of operation and goals. Key word: RESEARCH. OpenBSD gets a lot of flak for this, which is funny because outside of its performance issues which are somewhat the result of all the mitigations, people sure love taking things that were first implemented there and using it in stuff like Windows, or using software which is an integral part of that project like OpenSSH and tmux. I don't think some people realize that it's largely a research project led by professors out of universities in Alberta when they're really quick to heap criticism on it.
- linksnapzz 4y agoBy some standards, the Velvet Underground were an unsuccessful band; never having much radio airplay, and no high-charting hits. But...the were hugely influential. Someone once said that they may have only sold 500 albums, but each an every one of those purchasers started a band. Success needs to be carefully defined in advance of declaring failure.
- dopidopHN 4y agoThey sold 500 albums ? Crazy to think they are an absolute must listen to high school kids ( at least in rural France of the 90s… )
- AdmiralAsshat 4y agoThe quote in question was from Lou Reed and was about the first pressing of their debut album, IIRC.
- lproven 4y agoIt was Brian Eno, and it was 30,000 copies, not 500. https://quoteinvestigator.com/2016/03/01/velvet/ https://quoteinvestigator.com/2016/03/01/velvet/
- keiyakins 4y agoThis article is kinda garbage, it gets simple facts wrong in the first sentence of the abstract (and again in the second sentence of the article): Plan 9 is not Unix. At all. It shares some ideas with it sure, but if that's enough to make something Unix so is Windows NT. It's also rather debatable that it "failed" - a lot of good research happened there and those ideas have gone on to influence production environments the world over.
- IshKebab 4y agoMmm not written very well but there are some things that are true. I just take objection to "don't fit it if isn't broken". Plan 9 fixed a ton of things that were broken. Everything-is-a-file isn't one of them but that's not the only thing they changed. I think a better conclusion is that Plan 9 blew their "weirdness budget". I can't remember where I read it (either here or Reddit) but someone stated the idea of a weirdness budget. If you're making a new thing it can only be a bit weird and different. If it's too weird people will just stick with what they know and you'll be relegated to a research project that nobody uses.
- pram 4y agoI agree with your assessment. I tried p9 in 2002 and it was a daunting experience. Everything was just different enough to make typical tasks a pain in the ass.
- lproven 4y agoI agree. The really sad thing is as well as improving on many other aspects of Plan 9, Inferno also makes the UI much more sane and comprehensible, by accepting that by the mid-1990s a lot of standardisation had happened in GUI design, and incorporating that. Inferno is, for me, much easier and saner to use. Inferno is to Plan 9 as Plan 9 is to UNIX: taking the ideas further, fixing the rough edges and making it more versatile and more general. But Inferno is even more obscure and forgotten than Plan 9. Some 15Y ago I was able to find an ISO image of x86-32 Inferno and boot it in a VM. Not today. :-(
- dang 4y agoDiscussed at the time: The Plan 9 Effect or why you should not fix it if it isn't broken - https://news.ycombinator.com/item?id=11791980 https://news.ycombinator.com/item?id=11791980 - May 2016 (107 comments)
- thom 4y agoThings being files was never the interesting thing about Unix or Linux. Don’t make me tap the sign: https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you/ https://www.joelonsoftware.com/2001/04/21/dont-let-architect...
- asveikau 4y ago> I am quite sure that you do not know what Plan-9 is and that, probably, you never have heard of it too. First sentence is false. Confidently, arrogantly false. I'm hesitant to continue reading. Assuming too much of your audience like that can really detract from what you have to say.
- teddyh 4y agoIt’s absolutely mind-boggling to me that everybody is ignoring the relevant difference between Unix™ and Plan 9: Unix source code was given away (or cheaply licensed) to hardware companies which all wrote their own operating systems on top (SunOS, Ultrix, HP-UX, etc. etc.). This made Unix the common factor of very many commercial workstation environments. Plan 9? It was sold directly as a commercial product, for no hardware platform in particular. Nobody wanted to buy it. People liked Unix because it was free – either really free, via BSD, or as a Unix derivative provided at no cost when people bought their workstations. A new revolutionary operating system had absolutely no reason for anybody to buy it: No commercial developers wanted to develop to a platform without users, and no users wanted a platform without software.
- teddyh 4y agoI’m reminded of a similar blunder made by IBM with their PS/2 series of computers. The initial IBM PC, PC XT and PC AT models were very popular, because they could be cloned by third-party manufacturers, which in turn created an enormous market for third-party software and hardware accessories and peripherals. But IBM wanted a bigger piece of that pie than just the few sales of genuine (and very expensive) IBM hardware, so they created the IBM PS/2 line: Heavily locked down, with its own new proprietary bus (MCA), connectors and peripherals; all heavily patented, so only IBM could produce them. It was a disaster. The only thing which endured was the PS/2 style connectors for mouse and keyboards, and those were made obsolete with USB. Nothing beside remains.
- lproven 4y ago> Nothing beside remains. This is wrong. The influence is far wider than you realise. The PS/2 standard for keyboards and mice is perhaps the only one that bears the name PS/2 but it is very far from the only standard that came out of the PS/2 range. VGA is a PS/2 standard. The VGA port and the still-ubiquitous SVGA plug and the SVGA modes is a PS/2 standard. My Core i7 nVME-only native-UEFI laptop still has both these ports on its vendor-supplied docking station. 3.5" HD 1.4MB floppy drives are a PS/2 standard. TTBOMK the 3.5" hard disk bay is also a PS/2 range innovation: while tower PS/2 machines came with 5.25" hard disks in the early models, the smaller desktop machines came with 3.5" hard disks. That was certainly the first time I ever saw a 3.5" hard disk and I vividly remember being boggled by how small it was. PS/2s predated the rise of CD drives and optical media. The desktop ones didn't have 5.25" bays. That drove the success of 3.5" hard disks. But the floppy drive was more influential. If you have an old PC with a floppy drive, then it's a PS/2 format floppy drive. More to the point, the PS/2 range is the direct reason that Microsoft Windows was a success. The widespread success of Windows is what created the conditions for Linux to be written. The reasons that the PC industry exists and thrives today is the IBM PS/2 range. I had to try to explain this here on HN recently, as in just this autumn, and while I can't find that comment, here's the blog post I made from it: https://liam-on-linux.dreamwidth.org/87108.html https://liam-on-linux.dreamwidth.org/87108.html And that itself caused considerable discussion here: https://news.ycombinator.com/item?id=33019019 https://news.ycombinator.com/item?id=33019019
- simne 4y agoI'll risque got many minuses, this is right of all. But read whole comment, and if you could, write counter arguments. I must admit, this is good article, because it illustrating different styles of thinking, and using excellent example of really great fail, but absolutely avoidable. Unfortunately, it is written considered tech people, in language of tech people, on resource intended for tech people, but it is much closer for entrepreneurs, business owners, investors, freelancers. I could not add much to what already mentioned, except, that exists huge number of examples, when big corporations used best scientific research and fail. This is because scientific is right in only some dimensions of space-time and https://en.wikipedia.org/wiki/Noosphere https://en.wikipedia.org/wiki/Noosphere, which are accessible for current science (and not right in huge non-digitized areas. And usually, researched really past, but product is made for future, and future is mostly unpredictable for current science. As summary of my comment, when use research data for work, you risque, to make product for some abstract market, existed in past, but will not exist in future.
- unsafecast 4y ago> As summary of my comment, when use research data for work, you risque, to make product for some abstract market, existed in past, but will not exist in future. Of course - this happens all the time. But I'd argue this is definitely not what happened with Plan 9. I think the article mentioned this as well, that Plan 9 was not really made by business people with commercial interests in a software company with experience. It was actually the polar opposite. The people that worked on Plan 9 wanted to make a better system. I don't call it a failure, I call it an enormous success. It of course failed as a commercial product, but that was an afterthought from the beginning. I digress. You said that Plan 9 was designed for a future that never got to be. What about all its legacy? All the things that I'm sure I don't have to repeat, that got into every other system eventually. Someone earlier in the thread mentioned a weirdness budget. I think that's the best explanation. Plan 9 finished up their weirdness budget about 5% in. That made it an awfully good system that nobody used. We need systems like that to show us what's possible, but they'll never be mainstream.
- lproven 4y ago"Risqué" (French: rees-KAY) is not the same word as "risk" (English). The main use of "risqué" in English means "overly sexual and provocative".
- GianFabien 4y agoI would have done more work with Plan9, but the GUI is an acquired taste and I just can't make myself like it enough to work with it. If only Plan9 had been released as an "improved Unix" and retained the primarily tty console / CLI mode. DrawTerm, RIO, etc could have been released as an add-on instead of as an integral part.