I’ve been lamenting the demise of the Unix philosophy: tools/products should only focus on one thing and do it well. It’s better to have a product that does everything and does nothing well than to have lots of small, smart products that connect together.

Review images

This philosophy was great in the past, but it has not survived the Web era. Unfortunately, there is no better idea to replace it. At the same time, we’re confining ourselves: a bunch of products all doing the same thing, but none of them doing it well.

Evernote is a classic example of this failure. I started using Evernote in the past because it was the perfect solution to my specific needs. I use it to take notes in meetings, or add contacts, or distribute documents from my laptop to notes, cell phone, or whatever else I might use.

But over time, Evernote has added many other features. Some features I might use are poorly implemented, and others I’d rather not have, thanks. I’ve tried sharing Evernote notes with other users, and they’ve been able to convince me to stop using them. Photos in folders? I really don’t care. When I’m working hard in a meeting, I never think about taking a photo with the speaker. Online discussion? No, please don’t. Too many existing chat services are poorly implemented. We can discuss my shared notes over email. However, considering that these are my personal notes and not public documents, I probably won’t share them. If I want to make a document, even if it’s very simple, I’ll use a tool that’s really good at making that document. Note-taking is not the same thing as writing, even if they look similar. I’m not going to use Evernote to save emails. I’ve never seen, and never want to see, an email client that doesn’t save emails perfectly. Clippings? Maybe, but I never really wanted to use it. Pinboard does a great job of saving links because it adheres to the philosophy of doing one thing well.

This may sound like a crazy joke about Evernote (ok, I admit it is), but the problem is not unique to Evernote. A lot of products are already in a mess. Gmail is a great Web mail service and does a great job of filtering out spam. But when you add chat, chat loops, a calendar interface, and the ability to pop up pictures of contacts, Gmail becomes a mess. Gmail keeps popping up pictures to distract me while I’m reading emails, which often makes me very angry. Before Google Maps tried to point out the locations of restaurants and attractions, it was a very useful service, before it was full of junk snapshots. (BTW, what is RAT Race Timing when they are actually my neighbors).

I can say that every product I use has this problem. Whether it’s Skype, Twitter, Google Docs, Flickr, or any other service, everything seems to be turning into a one-size-fits-all app. Even Dropbox is going this way. Tip: Never add email, chat, photo sharing, or video conferencing to your app unless that’s your app. As Nancy Reagan said, “Just say no.”

There’s a reason for the move toward complexity and redundancy, and it’s not necessarily the product manager’s crazy plan (hey, if we add chat, we can steal AOL’s customers). Pipes under Unix help us construct complex applications with a series of simple commands. On the Internet, no one knows whether a person or a dog is on the other side of the screen, but we have no pipes. So there is no good way to connect two Internet applications. In this case, each product tends to be independent, so in a network full of independent applications, products want to build their own territory, and therefore inevitably want to include the features of all other applications.

So what’s the problem? Why can’t I pipe mail messages to an unrelated video conferencing application? Google Docs is great for sharing, so why can’t I just pass my Evernote notes to Google Docs for processing? Evernote may have thought it would lose customers, but it had the opposite effect. Evernote has prompted me to stop using their file-sharing service, so if I wanted to take notes that I would eventually share, I would use Google Docs from the start. Web services have apis, so why not use them? IFTTT is moving in the right direction, although it may not be fully suited to my needs. Its biggest disadvantage is that it requires too much planning and unnecessary operations. Using Unix commands, you can perform the following operations: grep search text, pass the results to SED, and use WC to make statistics on the results. Unix is great for one-off applications that you will never use. The Internet is not, but it could be. The first person to create a tool to transfer a table from a browser to a Google Doc spreadsheet, or to a text file without major formatting changes, would be my hero.

I don’t want to enter anyone’s walls. Because I’ve seen what’s in there, and believe me, it’s not a palace, it’s a prison. I don’t want to differentiate between tools that are mediocre in every way. I need powerful and effective tools that focus on just doing one thing and doing it well and can connect with each other.