I 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…
Do One Thing
31–40 of 136 posts
Re: Do One Thing
#32Earlier quoted context omitted.
The OP was talking about web apps. What do Makefiles and npm have to with Evernote or Dropbox?
Why use a web app to take notes when one has vi or emacs?
That's just one, assuming you never want formatting, tables, pictures, etc.
Re: Do One Thing
#33There is some merit to "doing one thing well", but taken to the extreme it can be horrible in a different way: tar cvf - FILE-LIST | gzip -c > FILE.tar.gz ( https://xkcd.com/1168/ )
Re: Do One Thing
#34On the 'do one thing and do it well' issue, there seem to be two spectrums: 1. suitability of a tool to multiple tasks 2. number of features a tool has This makes for sort of a field with four quadrants: 1. simple but flexible tools 2. complex and featureful tools 3. specialized but simple tools, 4. highly specialized and highly featureful tools So take a tool like grep and it clearly belongs in the first quadrant. Y…
"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. To give you one example, consider how the JACK audio server allows programs to share audio streams. Similar data streaming arrangements could be made for other types of data.
Re: Do One Thing
#35On the 'do one thing and do it well' issue, there seem to be two spectrums: 1. suitability of a tool to multiple tasks 2. number of features a tool has This makes for sort of a field with four quadrants: 1. simple but flexible tools 2. complex and featureful tools 3. specialized but simple tools, 4. highly specialized and highly featureful tools So take a tool like grep and it clearly belongs in the first quadrant. Y…
It's important to remember that while quite involved and extremely domain specific, Beeminder has an API. He seems to care a lot about that, and I have no idea if his real point is "make things that don't suck and avoid digital vertical integration".
Re: Do One Thing
#36People 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.
Re: Do One Thing
#37Re: Do One Thing
#38Cohesion is achieved when the degree of complexity is determined by both domain and audience, so Photoshop's relative complexity and Pixelmator's relative simplicity are both fine - in each case the domain is satisfactorily handled for the needs of the respective audience. They're both cohesive tools. Now if Photoshop decided to throw in a chat client (hello gmail), we'd be having a different conversation.
However, if the author is actually advocating breaking up Photoshop into a thousand pluggable little tools that everyone would have to piecemeal assemble into some sort of shared "workspace," that's where we (and most non-geeks) part company.
Re: Do One Thing
#39Earlier quoted context omitted.
Part of my comment was about his statement that the Unix philosophy is something of the past, which is false. Parts of the rest of my comment dealt with what he said about the plethora of "one size fits all" tools people are using now instead of the simple tools. Can you not make the connection?
The OP was talking about web apps. What do Makefiles and npm have to with Evernote or Dropbox?
Re: Do One Thing
#40I'm definitely guilty of holding onto a philosophy and thinking it applies universally, so I can't blame people that hold onto the Unix philosophy extremely strongly. But I can't help but think that the world requires a hell of a lot more pragmatism than the Unix philosophy can provide. The first problem I see is that "One Thing" is really subjective. Some people might see Postgres as doing one thing really well (It…
In general I agree with your line of thinking, but I will nitpick on this particular sentence (or the way it's phrased) and say: the whole idea of doing only one thing is that if you try to do more than one thing, you will definitely not do them all well.
I do agree with you though. The "many things" that postgresql does are all actually just one thing: database system.
Yea some people could argue that under the cover it's many different things, but the whole idea is about focus, not about counting features. There are always multiple aspects to the "one thing" (whatever your one thing happens to be). Doing the one thing well means tackling all of these aspects.
The reason you can't do multiple things well is that each one of the multiple things you want to do will in itself have many aspects, and your focus will be fragmented trying to tackle too many things with very limited resources.