Earlier quoted context omitted.
In this context... "specialized" = Do one thing "flexible" = and do it well. That said, the key ingredient of the Unix philosophy that is missing isn't specialised, flexible tools, it's composability of those tools. Imagine if you couldn't pipe grep output to another program, wouldn't it be a lot less useful? I'd say so. There are ways we can get around this, but they would require a fair amount of development time.…
How does flexible mean do it well? "Do it well" is so vague of a saying that it really could mean any of those things, whether it be flexibility, or simplicity, or etc.
Do One Thing
51–60 of 136 posts
Re: Do One Thing
#52I had two thoughts while reading this. 1 - The need for the web to be profitable in some way makes 'single tools' hard to build. You have to grow users, add features, etc, etc. So even if you have an API or something useful it likely won't scale economically. Unless it's government supported or behind a foundation of some sort. The Twitter API comes to mind here. 2 - This is tricky because for the web to meet the UNI…
> Once again, capitalism ruins everything fun And creates everything fun.
Re: Do One Thing
#53I agree on the face of things, but what the web is missing from the unix philosophy is an equivalent to |. Without the ability to string multiple, focused tools together even tools that did one thing well(i.e., Evernote) will continue to add features until it does a bunch of things meh.
Absolutely! And just follow that to logical conclusions, to me it seems to answer the question of why we don't have it, right? On the web, "|" (pipe) means integration with other services, and it comes with all the associated trials and tribulations. To make web pipes work, just to even get started, you first have to solve authentication and data format/transfer standards. Those things are a big pain, its not surpris…
The web has a variety of other content types - images, videos, applications, structured data - that don't map well to this model. Before you have interoperable webapps, you need to define common data formats for them to interop.
Re: Do One Thing
#54The modern "web operating system" is Amazon's AWS, and I'd argue that the unix philosophy survived surprisingly well there. AWS has many services; each one does a specific job really well, and they interoperate very well together. That's the very embodiment of the unix philosophy.
Re: Do One Thing
#55I am a great fan of the Unix philosophy and can sympathize with the author and his points, but I really don't know how realistic the whole "make the Internet a new Unix"-scheme is. As others have pointed out, there are great practical difficulties in integrating different web services. Unix has pipes built into the core of the OS - anything analogous would have to be "bolted on" to the Internet, and thus probably tur…
The internet already has a very simple interoperable protocol, HTTP. There is nothing to bolt on really since the pipe is just a channel for text and sockets on port 80 can just as easily act as those channel.
To be fair, I don't think we have a good way to do that with graphical OS shells even on Unix, just CLIs, so its probably not surprising that we don't have it in web browsers.
Re: Do One Thing
#56I am a great fan of the Unix philosophy and can sympathize with the author and his points, but I really don't know how realistic the whole "make the Internet a new Unix"-scheme is. As others have pointed out, there are great practical difficulties in integrating different web services. Unix has pipes built into the core of the OS - anything analogous would have to be "bolted on" to the Internet, and thus probably tur…
The internet already has a very simple interoperable protocol, HTTP. There is nothing to bolt on really since the pipe is just a channel for text and sockets on port 80 can just as easily act as those channel.
Re: Do One Thing
#57People mean a lot of things when they say "one thing". "Do one thing" can mean "replace all occurrences of one string with another". Or it could mean "browse the web", which of course isn't really one thing but a thousand things.
I've always wondered how Emacs fits with Unix philosophy? With it you can replace strings AND browse the web, but also play games, do file management, email, chat, etc...
Editors that do fit with the Unix philosophy (they were written by its original developers) are ed sam and acme.
Re: Do One Thing
#58Earlier quoted context omitted.
The internet already has a very simple interoperable protocol, HTTP. There is nothing to bolt on really since the pipe is just a channel for text and sockets on port 80 can just as easily act as those channel.
But HTTP is one-directional (disregarding Websockets which is a client thing).
Re: Do One Thing
#59I had two thoughts while reading this. 1 - The need for the web to be profitable in some way makes 'single tools' hard to build. You have to grow users, add features, etc, etc. So even if you have an API or something useful it likely won't scale economically. Unless it's government supported or behind a foundation of some sort. The Twitter API comes to mind here. 2 - This is tricky because for the web to meet the UNI…
I don't follow your first point. For most web things (where there's zero marginal cost) profitability has nothing to do with scaling.
Re: Do One Thing
#60People mean a lot of things when they say "one thing". "Do one thing" can mean "replace all occurrences of one string with another". Or it could mean "browse the web", which of course isn't really one thing but a thousand things.
I've always wondered how Emacs fits with Unix philosophy? With it you can replace strings AND browse the web, but also play games, do file management, email, chat, etc...
(Although one thing that can be said for Emacs as regards the Unix philosophy is that it is programmable.)