12 ms·
The Plan 9 Effect or why you should not fix it if it isn't broken
- avmich 10y agoReading the article it's tempting to say sometimes it borders on ridiculousness :) . > No one, in the Unix world, ever complained about the Unix's missed promise about file abstraction. The whole world, sans programmers, keeps moaning on complexity of computers, and Unix, and how hard it is to learn all those arcane commands and abstractions and why things can't be just plain and simple. I'll skip rants about how it's related to file abstractions :) . Being fully aware how the same things could look very different from different angles, I'd still maintain the "not broken - don't fix" approach has been countered then and now.
- pjmlp 10y agoThe UNIX haters book is a good example. And I coming from the world of Amiga and Windows, after a decade mostly spent on UNIX land, have returned mostly to Windows world in the last 6 years. The world has gone UNIX because it was free and for free stuff, everyone is willing to live with some warts. Had AT&T been able to sell it in first place, it probably would not have spread as it did.
- kgwgk 10y agoNot only because it was free, but also because "worse is better". Unix and C are the ultimate computer viruses. ["The Rise of Worse is Better" by Richard P. Gabriel, included in "The UNIX-HATERS Handbook"]
- pjmlp 10y agoYeah, now all the people that make money out of security related work and tooling are thankful that they spread like that.
- 1ris 10y agoWhile UNIX has it's downsides and I have seen beautiful non UNIX OSes such as OS/2, most non-unix oses simply suck, too, and usually more.
- yuhong 10y agoThis reminds me of my Blue Box on NuKernel idea, the idea being to later implement the Mac OS APIs in separate processes outside the box. One interesting thing it did was to use Pascal strings.
- kgwgk 10y agoWhat operating systems do you have in mind? The only remaining systems (outside of academia/research) which are not based on unix seem to be windows, openvms and os/z. Edit: thanks pjmlp. With so many name changes I forgot that IBM still had an alternative OS for small computers. I imagined that maybe there were still other mainframe systems, but I was too lazy to check...
- pjmlp 10y agoYou forgot IBM i (aka OS/400) and Unisys MCP (aka Burroughs B5000) and the myriad of embedded and real time OSes or bare metal runtimes.
- nickpsecurity 10y agohttps://news.ycombinator.com/item?id=10957020 https://news.ycombinator.com/item?id=10957020 Far as surviving ones, Burroughs MCP and GCOS are still around. BeOS is being cloned by Haiku. Amigas are still around with MorphOS being good. eComstation maintains OS/2. The THEOS OS and GEM(?) window system still exist. Plan 9 of course. GenodeOS continues microkernel-style tradition. JX continues language-style security trend. Oberon legacy last iterated as A2 Bluebottle OS. So, there's several I recall.
- kgwgk 10y agoThanks. Apart from the mainframe systems, the ones having experienced commercial/industrial success in your list are either life-extension efforts to support niche users or are clones of the actual thing developed by hobbyists. Maybe they would suck less than unix if they had seen in the last 20 years a fraction of the development behind unix operating systems. By the way, you forgot to include FreeDOS (I don't know if DR-DOS is still alive).
- MustardTiger 10y ago>The whole world, sans programmers, keeps moaning on complexity of computers, and Unix, and how hard it is to learn all those arcane commands and abstractions and why things can't be just plain and simple. I'll skip rants about how it's related to file abstractions It says "no one, in the unix world". People outside of the unix world are not in the unix world. The point is, unix became very popular despite being bad (or perhaps because of being bad). Even within unix, the worse a system is, the more popular it is in general (see a typical linux distro full of randomly tossed together junk).
- zxcvcxz 10y ago> the worse a system is, the more popular it is in general That's true of non-unixy systems too, see: Windows. And by that same logic, OS X is the worst Unix. A whole bunch of tools thrown together is pretty much the definition of an operating system.
- rayiner 10y agoOS X is not the worst UNIX. Darwin is kind of a shit kernel, but the user land is way more sensibly designed than your typical Linux distro (which is, as OP said, a random collection of junk).
- tptacek 10y agoFor desktops systems, maybe, but there's a reason almost nobody delivers SAAS stuff on Darwin, even as some do deliver on Windows.
- iris-digital 10y agoExcept for package management.
- rayiner 10y agoDon't agree. Self contained app bundles are great. I use homebrew for some stuff and dependencies are a PITA. E.g. multiple incompatible Python versions.
- pcwalton 10y ago> The whole world, sans programmers, keeps moaning on complexity of computers, and Unix, and how hard it is to learn all those arcane commands and abstractions and why things can't be just plain and simple. I'll skip rants about how it's related to file abstractions :) . There are a lot of things about Plan 9 that really aren't that good in 2016. The compiler, for example, lacks a modern optimization pipeline and generates code that is unacceptably slow by modern standards. The windowing system is not a compositing window manager; it's a '90s design through and through and cannot perform as well as solutions like Wayland (that are arguably simpler). The browser doesn't support dynamic changes and would have to be rearchitected to support anything more than simple pages with acceptable performance. None of this is meant to bash the great work that the Plan 9 team did while at Bell Labs/Lucent, mind you. With the team they had they did a really great job, and they're all top-notch developers. I only want to counter the notion that Plan 9 is all around a technically better OS than the ones we use today. It isn't. As sad as it sounds, most complexity exists for a reason. There is a good amount of cruft that could be dropped if not for backwards compatibility, but when e.g. compilers are concerned, you depend on that complexity for performance.
- IshKebab 10y ago> There are a lot of things about Plan 9 that really aren't that good in 2016. Well yeah, that's because Plan 9 wasn't written in 2016 and hasn't been kept up to date. I don't think anyone claimed otherwise. It doesn't invalidate the point that people do want a simpler OS that isn't as crazy and hodge-podgey as Unix. They just don't want it as much as they want compatibility with old software. Think how hard a sell Windows 10 would be if it didn't run software written for Windows 7. Literally no-one would use it. That doesn't mean it isn't better.
- f2f 10y ago> The windowing system is not a compositing window manager 8½ perhaps wasn't, but Rio is a compositing window manager.
- pcwalton 10y agoNot in the modern sense of compositing GPU buffers.
- coldtea 10y ago>The whole world, sans programmers, keeps moaning on complexity of computers, and Unix, and how hard it is to learn all those arcane commands and abstractions and why things can't be just plain and simple. Which is orthogonal to a broken filesystem abstraction here and there. Besides the plan 9 userland was hardly different or better in that aspect.
- rectang 10y agoIt's still beautiful. Damn this world of network effects.
- agumonkey 10y agoWe should have a group of people dedicated in catering to beauty whether or not it manages to create a large market.
- SixSigma 10y agoNot "was" but "is". Just because you don't use it doesn't mean we don't. Pop by the #plan9 irc channel on Freenode some time, or lurk in #9front as see the daily commits.
- keithpeter 10y ago9front has brilliant propaganda. If I could get texlive, a graphical browser and an rdp client running under it I could live there after I retire. Until then it remains something of a toy system for me (others may disagree). I'd be delighted to hear from those using it for actually creating stuff.
- msingle 10y agoI know that [kertex](http://www.kergis.com/en/kertex.html http://www.kergis.com/en/kertex.html) works on plan9, if there are parts missing between kertex and texlive, Thierry (the creator of kertex) could probably give you some pointers on getting those working too.
- keithpeter 10y agoMain issue would be TizK for diagrams. I might try building it under a fresh slackware (I noticed a slackbuild script) and see what I get.
- mveety 10y agoFor me abaco(1) is generally good enough, and I used to use vnc and esd to get video and sound to my terminal from my 'browser machine.' RDP is a bit harder, but writing a client or doing a hackjob of freerdp or whatever wouldn't be too bad.
- keithpeter 10y ago"Abaco is a lightweight web browser with the appearance of acme(1) with ncols columns (one by default)." So I'll be trying to build this on a 9front install on my old Thinkpad X61 in a few weeks when the exams are over (I'm a teacher).
- random778 10y agohttp://plan9.bell-labs.com/plan9/about.html http://plan9.bell-labs.com/plan9/about.html "Introduction Plan 9 from Bell Labs is a research system..." It does not seem that it was ever meant to compete with or replace commercialized operating systems. The direct output of research is not something you sell - but it does give the world better things which can be industrialized.
- protomyth 10y agoThe actual product ended up being Inferno, and that ran into the combined Java marketing campaign and Lucent's lack of ability to market anything to developers. Well, Lucent continued a tradition that flowed from AT&T's UNIX PC[1] and all their various weird marketing once they got free of the monopoly restrictions. 1) they did get the cover of Byte https://archive.org/details/byte-magazine-1985-05 https://archive.org/details/byte-magazine-1985-05
- jff 10y agoBy "the actual product" you mean "a completely different OS written on a virtual machine that happens to also run on Plan 9", then yes. Inferno has 9P, it has a lot of the same good stuff as Plan 9, but there's a pretty big gulf between the two and fluency in one does not translate to fluency in the other.
- kgwgk 10y ago> It does not seem that it was ever meant to compete with or replace commercialized operating systems. UNIX was also a research system. The following paragraph from the article would also by applicable: "One of the major problems with Plan-9 was that AT&T and the people behind Unix, while they were incredible scientists and programmers, they were not used to create commercial software and AT&T has never been in the software business. (...) They used software and they used to produce internal software to run their high end network appliances but they never created software to be sold to someone else and it never was major source of revenue (...). This just means that they never had a sense of what could have been needed into the outside world." If anything, this problem was relatively less important for Plan 9 given that they already had some experience in creating research systems that would become mainstream. Edit: By the way, saying that "AT&T used software and they used to produce internal software to run their high end network appliances" seems a bit of an understatement. Quoting wikipedia: "Researchers working at Bell Labs are credited with the development of radio astronomy, the transistor, the laser, the charge-coupled device (CCD), information theory, the operating systems Unix, Plan 9, Inferno, and the programming languages C, C++, and S. Eight Nobel Prizes have been awarded for work completed at Bell Laboratories."
- webkike 10y ago> I am quite sure that you do not know what Plan-9 is and that, probably, you never have heard of it too. Right off the bat with a failed assumption. Of course I know what Plan 9 is, I've used it lots. Why make this assumption? Just say "most people" and you've already hedged your bets.
- nitrogen 10y agoIf you already know you aren't the target for someone's writing, and you could figure out what it meant anyway, why bother complaining about it? It's a rhetorical device, not a declaration of fact. Read like a human, not a computer, and you might enjoy life a lot more.
- chrismonsanto 10y agoOh please, it's a poor use of rhetoric, and calling that out doesn't mean that you are somehow a robotic emotionless monster.
- deleted 10y ago[deleted]
- Decade 10y agoThat just means that you, I, and other knowledgeable people are not the target audience, and he intends for it to be read by people who do not have the context to disagree with his just-so story for why Plan 9 failed, which coincidentally includes a business principle. And my interpretation of his thesis boils down to: Don’t scratch your own itch. Fine. I have my own explanation for why Plan 9 failed, and there are lots of reasons you can invent, based on hindsight and your own biases.
- protomyth 10y agoLet's say for the sake of alternatives, that Plan 9 was released to the public in 1995 under the MIT license. I think at least one of the BSDs would have used the C compiler, but I think it would have been bigger than that.
- donatj 10y agoSo never simplify anything? Let everything become more and more complicated with band aid fixes until no one has any idea how the hell the whole thing works or any clue why things happen. Sell people a faster horse, because that's what we've really wanted all along? Is that the moral of this?
- eumoria 10y agoDon't try to fix things. Just pile more garbage on top of it until it sort of works. Sounds like modern programming
- wavefunction 10y agoYou need to structure your brilliance to focus it in one direction.
- massysett 10y agoSeems to be saying that Plan 9 introduced one thing now on most unix-like systems (/proc) and another thing now on most systems period (UTF-8). However Plan 9 was a total failure and a waste of time and teaches us not to solve problems if they aren't a big deal. ?
- coldtea 10y agoYes. Those two (and a few more) good things about it that solved real problems were adopted. Most others, including its central premise about everything actually being a file, were not (adopted or successful), and turned out they weren't a big deal. If from one product with 1 central premise and 10 new features the world only adopts 2 of those features, I'd still call it a "total failure" market-and-adoption wise, and a waste of time for those building it. They could have built those 2 features independently anyway.
- mwfunk 10y agoPlan 9 was not a product though. You seem to be arguing against the concept of research in the software world.
- coldtea 10y agoIt was packaged into a product called Inferno later on. And it was only "research" because AT&T (or Lucent at the time?) couldn't sell it.
- protomyth 10y agoTo be fair, Inferno was a bit different with the whole Limbo and VM thing. It really didn't have a chance being targeted at the same market as Java with a whole lot less ad / industry push. Lucent just never got it together for product pushes. 1995 was Lucent, and AT&T did enter the UNIX PC market in the 80's. I got to use a 3B2 in college in 91. Sadly, that was my first UNIX computer.
- jff 10y ago
- hodgesrm 10y ago> The first one is not to try to fix things that are not broken or better, if you want to fix them, only fix the broken pieces and do not try to fix what is clunky but it does, somehow, work as it is intended to. For instance, UTF-8 is a wonderful idea and you need to do that but you can implement that in libraries or subsystems in such a way that you can use it in other operating systems more than create an operating system all around an encoding system. I disagree 100%. The Plan9 use of Unicode and UTF8 was visionary. Character set handling was seriously broken on all Unixen in the 1980s. One major problem was the range of character sets available on most hosts which constrained the type of character data applications could handle easily. Another was the plethora of competing, overlapping encodings like EUC-JIS and SJIS or the myriad of ISO-8859 encodings. This required constant mapping (or rather partial mapping) between different layers of the stack with attendant hits on usability, configuration problems, data corruption, etc. Unicode with UTF-8 storage encoding almost completely solves these problems, the more so as software up and down the stack adopts the same conventions. At least on the projects I worked on then in the DBMS industry we would have gladly taken the hit to upgrade. [edit] corrected typo
- bhaak 10y agoThe article almost makes it sound like UTF-8 was a Plan9 invention. I also don't understand why using UTF-8 was a bad idea. If I start a new OS from scratch, I would have to be brain-damaged to not use UTF-8 as the sole encoding (and other encodings being treated as second class citizens). I can understand the issue with taking the file abstraction to perfection. If by doing that you are incompatible to most of the software there is, you're going to have a hard time getting developers to develop for your OS. This could be somewhat alleviated with a ioctl compatibility library for the time being.
- jflatow 10y ago> The article almost makes it sound like UTF-8 was a Plan9 invention. It more or less was: https://en.wikipedia.org/wiki/UTF-8#History https://en.wikipedia.org/wiki/UTF-8#History
- 10y ago
- MustardTiger 10y agoI don't think the assumption of brilliance is warranted. Plan 9 was facing an uphill battle due to the lack of conformity, sure. But it wasn't a brilliant system, it was pretty bad. If it had been brilliant, maybe it would have won that battle. But I don't think it is far to say brilliance fails without conformity based on a single example whose brilliance is very debatable.
- necessity 10y agoAssuming ignorance out of your audience is a great way to make people close your website's tab before reading anything else.
- cantrevealname 10y agoOne of the messages of the article is to identify if there is a market. I must have read this a thousand times so far in my life. It's as if so many product failures and millions of developer-hours could have been saved if we followed this advice and thought really really hard about the market. It's so simple and we're morons for not embracing this wisdom. The problem is you just don't know. You might create a new market where none existed or completely take over a very crowded market, or (much more likely) fail regardless of what your marketing research told you. How does the author explain the huge success of the original UNIX? It violates everything he says. Certainly Dennis Ritchie and Ken Thompson weren't thinking about the size of the market for a new OS. UNIX was incompatible was everything that existed at the time and AT&T could have used an existing OS for everything they needed done. Facebook is another good example of you just don't know. Probably there were a thousand other equally smart Zuckerbergs trying to create a social whatever in 2004. One succeeded and 999 failed. Was it because Zuckerberg was thinking hard about the market and the others weren't? Many of the factors you don't understand, don't control, can't predict, and can't even explain more than a decade later.
- mayukh 10y agoI agree with this and in general think the degree of randomness in outcomes and survivorship biases aren't fully appreciated by a lot of folks examining the startup world. With that said, I do think there is one trait that is common to successful products/projects ...they were successfully sold. Now this might seem obvious after the fact but I think the amount of effort expended in 'selling' should be somewhat proportional to the novelty (and or perceived ineffectiveness )of the product. If you don't have an evangelist (on your team or external) that can sell the idea to customers, employees, business partners, investors ... your chances of success are greatly reduced. And even then pure randomness and timing (you could be too early/too late ) will drive the final outcome.
- dwaltrip 10y agoAnother one: Doing market research well is really hard, and not something the person/group has a lot of experience in. It also might result in finding out that there isn't really a market which means we would have to abandon or drastically change our plan, and we really don't want to do that. So, let's just not bother and assume there is a market! Then there's the fun dynamic where if you are being really honest with yourself you don't care too much about whether there is a market or not, you just want to see the idea in your head become reality, because it would be super cool and you will feel good for having been able to do it. Which might be fine for a one-person side project, but otherwise not so much.
- jff 10y agoI'm sure the guy who thinks it's spelled "Plan-9" has some very insightful things to say. Maybe it's time for me to blog about Ruby/On/Rails, the latest web-dev hotness.
- bakul 10y agoAnother view is plan9 didn't become popular because it was not freely available. If it had been "freed" prior to when 386bsd was first released, history might've been different. I knew about it much before 386bsd came out and would've jumped at the chance to use it....
- mwfunk 10y agoIt was a research OS. That by itself renders the entire article moot. It's akin to someone writing an article about how Minix "lost" vs. Linux- it's apples and oranges. You can't call something a failure if it was never intended to be the thing you claim it failed at being.
- hollerith 10y agoSome of the people behind Plan 9 lobbied AT&T's management very hard for years to get permission to open-source it, which they obtained in 2002. (Lucent Public License 1.02 satifies the Open Source Definition and the Debian Free Software Guidelines.) Some of the people posting to the Plan 9 mailing list at that time from plan9.bell-labs.com addresses certainly hoped that Plan 9 would catch on.
- hollerith 10y agoSome of the people behind Plan 9 lobbied AT&T's management very hard for years to get permission to open-source it, which they obtained in 2002. (Lucent Public License 1.02 satifies the Open Source Definition and the Debian Free Software Guidelines.) Some of the people posting to the Plan 9 mailing list at that time from plan9.bell-labs.com addresses certainly hoped that Plan 9 would catch on. In the 1990s Rob Pike tried to persuade one of the major browser vendors to support Plan 9.
- yegortimoshenko 10y agoWith such conclusions you are not going any further than PDP-11 assembly language.
- ktamura 10y ago>Moreover, in Plan-9, many of the "good old things" were removed and a lot of incompatibility was introduced in the system with respect to the other Unixes. This prevented many different companies to even start thinking of porting their applications to Plan-9. This is fundamentally why plan9 didn't take off. It was too different and not better enough. Platform technology marketing is being on the right side of a nuanced dichotomy: 1. You need to be different enough to be noticed and given attention 2. And better in the eye of the user (which implies familiar) For example, OSX was a great success among hacker types for this very reason: It was different yet familiar (Most UNIX-y stuff just worked on OSX thanks to its FreeBSD lineage). Another example is Go: It's different enough from the previous generation of server-side languages to command attention, but its syntax was very much in the C language tradition (And it articulated its "betterness" well, such as performance gain over Python/Ruby and ease of use over C/C++/Java). Fundamentally, Plan9 was way too different from the incumbent without any clear advantage.
- davidjnelson 10y agoI find your point 1 and 2 to be very insightful. It strikes me as why react native is doing so well on it's platform technology marketing. Different enough: mostly javascript and a consistent mental model for ios, android, and perhaps web. Better in the eye of the user: More shared code, faster tooling and workflow due to compile speed improvements.
- agumonkey 10y agoReminds me of Dan Ariely psychology of choice. Always find a way to appear better. Bring something/someone less good so people don't question it in the current context.
- deleted 10y ago[deleted]
- qwertyuiop924 10y agoYeah. The compatability problem, or why Windows is still crazy after all these years. Build it close to right the first time: the world won't give you a second chance. I really like Plan9's ideas, but its community gravitates to catv.org, which is full of assholes who believe that if it hasn't been blessed by Murray Hill, it has no merit, no matter what the real world has to say. I'm going to get crucified for this, aren't I?
- mveety 10y agoChanging the way people get stuff done is one of the hardest things to succeed at. We're not assholes unless you come talk to us without checking your assumptions and entitlement at the door. Probably.
- qwertyuiop924 10y agoReally? Cat-v and many other sites that are fans of plan 9, as I said, seemingly refuse to believe that's happened in the UNIX world has any merit, claiming that it is either a) overly complicated, or b) useless. So I'll attempt to refute most of cat-v right now. You know, sometimes things are unnecessarily complicated (I'm looking at you, systemd), but there are REASONS for things like python and ruby. Pthreads or and forks are necessary to build CSP-concurrency, and are in fact simpler and more unix-y than them (I'm NOT saying they're better, but they are closer to the unix spirit in many ways. You did read ALL of Lisp: The Good News, The Bad News, And How To Win Big, right?). Bash and ZSH kind of suck, but none of the other shells are really any better, because the really problem is the f*king INSANE standard, which codifies the absolutely insane behaviors that shells are supposed to have. RC is better than most, being from plan 9, but it still has plenty of warts. GCC and Clang may not be perfect, but they generate better code than 8c ever did, and have world-class teams working on them. automake is TERRIBLE, but you really do need something more complex than Makefiles sometimes, so scons is probably your best option. See above about Python. GUIs exist for a reason, and while glib sucks, you can't replace it with libc. There are other libraries, though. Emacs is more powerful than ACME, and you can't just ask people to learn a new interface because you hate VI. UTF-32 (UTF-16 DOES suck NOW, it didn't always) has different trade-offs from UTF-8, and is a legitimate choice sometimes. I shouldn't have to explain why you can't just replace SQL with hierarchical databases, or non-relational databases. Maybe you can sometimes, but not in the general case, and not with good performance. Just because you use OpenBSD doesn't mean that everybody should. Solaris and FreeBSD have some technical advantages as well (e.x. jails). SVG, PDF, and EPUB cannot be replaced by postscript. I mean, come on, you say you want security, and then you advocate an image standard that's TURING COMPLETE, effectively giving any image the capability to crash your computer, or inject code, if there's a flaw in your postscript implementation. I used to think that cat-v was somewhat satire, but it really didn't seem that way, once I'd read what people were saying on it. And that is really sad, IMHO.
- Animats 10y agoIt's interesting to look at QNX's implemention of POSIX. In QNX, the POSIX library mostly makes calls for interprocess communication, using MsgSend and MsgRecv. That's the real underlying primitive. Not files. MsgSend works like a remote procedure call - you send data and wait for a reply. (There's a timeout mechanism available, and you can time out anything that blocks. Real-time OS, remember.) QNX lets you make anything look like a file, by writing what QNX calls a "resource manager". This takes over a subtree of the pathname space, and the library turns create, open, close, read, write, and ioctl calls into the appropriate MsgSend calls. That's how you write a file system under QNX as a user process. But there's no reason to turn things into files unnecessarily. Displays are not files, for example. QNX has what looks like a Berkeley sockets interface, but "send" and "recv" call the same thing as "write" and "read". You can use read and write on a socket. I think you can use "send" and "recv" on a file system, too. If you're going to have one primitive, MsgSend and MsgRecv are a better choice than files. But it's easy to get that wrong. Mach botched it, and for decades, microkernels had a bad rep.
- jacquesm 10y agoQnX is one of the under-appreciated gems in the OS landscape. I still hope that RIM will entirely open-source it and I'd happily contribute a good sized chunk of money towards a ransom.
- Animats 10y agoIt was open source for a while under Harmon, and free for non commercial use. I wish I'd downloaded it all back then. I'd like to see a QNX-like OS in Rust.