> Software that is better in principle comes with everything you need. Software that is inferior does not, and someone has to fill it in. They do it by building tools.
> Every third-party “tool” is actually a weakness: it’s doing something that either didn’t need to have been done at all, or could have been done better in the first place. However, it creates a community. There’s a way for people to contribute. It’s like a game that leaves little bonuses lying around for people to pocket. If even a novice can make a small contribution, so much better. They feel good about themselves, and now they’ve made a commitment to that ecosystem. The switching costs suddenly became significantly higher.
> In the realm I know best, programming languages, this is especially true. And in fact, to be “successful” in terms of size, perhaps every language should start out somewhat flawed: it should have bad scope rules, weird modules, funky overloading, floating points as the only numbers, and so on. To a rational observer, this might seem an awful idea. But programmers, as a species, have gotten acculturated to salt mines as a natural habitat. They will think nothing of it.
From this great rant