This article misses a big part of the Unix philosophy. Modularity and extensibility are just as important as do only one thing and do it well. Unix works because a lot of small programs can be chained (piped) together to interoperate. Apps often don't do this very well or at all.