4 ms·
Finished software has lots of nice properties. What this article gets wrong is that it elevates a situational property of certain software to an imperative. Lik
by hyperpape 5y ago
Finished software has lots of nice properties. What this article gets wrong is that it elevates a situational property of certain software to an imperative. Like so much praise of Unix, it's fetishized.
To be finished, software has to exist in a specific context, for a circumscribed purpose. But some software is inherently open-ended, because the question of how we should work is open-ended. The way we work has changed over the past decades, and the software that supports that work has also changed. IDEs aren't finished, and neither is Emacs. Compilers might have a stable interface, but their internals aren't ever finished (you can artificially freeze the optimizations you do, but you're not done, you're giving up).
Even for the cases the article starts with, I have my doubts. Is grep finished, or is it stagnant? The wow feature of ripgrep is performance, but it also provides new functionality (like ag before it).[0] Grep is finished, but the cludge of pipelines and copied shell snippets that people attach to it aren't. Eventually someone says "instead of find xargs blah, let's write a tool." Finished software makes a decision about shunting the complexity elsewhere.
[0] Amusingly enough, I don't use ripgrep or ff or many other new tools, because I am a creature of habit. But they look like something I _should_ use.
- mdrachuk 5y agoEveryone is a creature of habit. So new tools should be tenfold better to kick the habit. Is ripgrep so good? Doubt it, although it’s definitely better.
- lawrencema92 5y agoThe main reason I don’t use it much is because I can’t expect others to have it as well when writing scripts or sharing commands.
- mixmastamyk 5y agoI use ag wrapped in a shell script interactively. Does exactly what I want with more than enough speed. Been packaged with Debian for a long time as well. Ripgrep doesn’t seem to offer any advantages although could probably find something if I had time.
- marcosdumay 5y agoI would say that grep is finished. Somebody, even the grep developers, may create something better, but it's something else, not grep. Even if it's called grep 4.0, there isn't much that one can change and still have the same software.
- Isamu 5y agoWell grep is 47 years old. Still it took many years and many authors to reach a more or less steady state, because PEOPLE CANNOT STOP TINKERING. This is, by far, the reason software doesn’t get finished. Keeping some software extremely simple and focused is surprisingly controversial. Everyone in the world wants to add just. One. More. Little. Tweak. What could it hurt? It’s not quite complete without it, right? http://harmful.cat-v.org/cat-v/ http://harmful.cat-v.org/cat-v/
- billti 5y agoAs someone who has shipped some of the biggest products at one of the biggest companies, I don’t think software is “finished” in a manner we ascribe to most products. I do house projects and have built furniture, and when I “finish” those, there is nothing left to do. There is literally no additional work for those projects I can think of. I’ve never shipped software that didn’t have bugs we didn’t fix, some feedback that didn’t get addressed, technical debt (test etc.) we didn’t get to, or features we wished we added. Software is just a different beast to a lot of other things that you “finish”.