10 ms·
http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs follows the Unix philosophy. A lot of legacy has been shed
by dexen 14y ago
http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs follows the Unix philosophy. A lot of legacy has been shed. I can count 13 options to ls, 11 options to sed and just 5 to sed.
The standard Plan 9 shell, Rc, is described in mere ~500 lines of manpage, while Bash takes whooping ~5400 lines.
Oh, and there is no `dll hell' in P9 :-)
- telemachos 14y ago> A lot of legacy has been shed. An example I remember from the UNIX to Plan 9 command translation page[1]: UNIX Plan 9 head sed 10q [1]: http://www.plan9.bell-labs.com/wiki/plan9/unix_to_plan_9_command_translation/index.html http://www.plan9.bell-labs.com/wiki/plan9/unix_to_plan_9_com...
- DeepDuh 14y agoLooking at this list I can't really tell why this is supposed to be better. Shedding complexity ok - but getting rid of many shorthands that are there for a reason? It reminds me of how Java wanted to replace printf with a ridiculously complex string formatting system.
- sp332 14y agoThe point is that "head" on your system is not the same as "sed 10q". There are two different codebases. By default head shows the first 10 lines but you can change it with flags etc. Well why bother when you already have sed to do that? head -n 5 sed 5q For most cases, head is not a shortcut. 10 is just a special case.
- DeepDuh 14y agoI agree with that change. I don't with many others.
- telemachos 14y agoGetting rid of good things would be bad, but is sed 10q really "ridiculously complex"?
- DeepDuh 14y agoNo, but $home instead of ~ is, IMO.
- telemachos 14y agoAh, fair enough. I really only meant to cite the one example - since I found it so striking when I first saw it. (It had never occurred to me to use sed for head that way.)
- ori_b 14y agoThe thing is that ~ is special shell magic. $home is an environment variable, and is consistently expanded as such. Although, to my eyes, the most plan9-y way of implementing a home directory would be to have '/home' as your home directory no matter what, and have it default to a bind from /usr/$username.
- papsosouid 14y agoI really like plan 9 conceptually, but what am I supposed to actually do with it? Here's a list of services I need to provide, can I do any of these with plan 9? Email (smtp+ssl, pop3+ssl, imap+ssl, greylisting + spam and virus scanning, virtual accounts authenticating against some central source like ldap) central authentication (windows domain, kerberos domain, something along those lines that can authenticate windows clients) file servers (again, windows clients, using central authentication) web servers (just simple static file serving and proxying dynamic content to app servers) database server (no postgresql for plan 9 still) app servers (pretty much no languages support plan 9, so our custom web apps are a no go right?) As far as I know, I can't do any of those things with plan 9. Am I mistaken? Is there something I am not thinking of that I could use it for? Do people only use it in their own private little plan 9 only networks? It doesn't make much sense to offer plan 9 as an alternative to unix-like systems if it can't do 99.9% of the things unix-like systems are used for.
- dmm 14y ago> but what am I supposed to actually do with it? Plan 9 is a research os that was made to explore the rigorous implementation of a few key ideas. You're missing the point if your criticism of it is that it doesn't run your favorite database. If you like the ideas that Plan 9 implements you should apply them to you favorite big and nasty, full-of-compromises, gets-real-work-done OS. For example, a key idea in Plan 9 is that all resources, from files and networks, to a processes runtime environment, to compute clusters should be represented as an entry in a single hierarchical namespace that is accessed with file semantics(read(),write()). This is a really cool approach. It makes interacting with resources really easy. You can use any tools that manipulate files. It allows easy remote sharing and manipulation. Want to use a printer on a different machine? Mount the printer and go. Want to write to a remote screen? Mount the framebuffer and go. Want to administer a running daemon? Mount the directory that represents it and starting messing around. You can also create your own resources in this namespace. An example was a computing cluster with a file interface. Want to run a program on the cluster? Just mount the file an write your binary to it. It is a neat approach and I would recommend you check it out.
- 14y ago