On Mon, Feb 08, 2021 at 10:32:03AM -0800, Justin Coffey wrote:
This describes pretty much every project I've
ever worked on. It starts
small, with a manageable feature set and a clean and performant codebase
and then succumbs to external pressure for features and slowly bloats. If
the features prove useful then the project will live on of course (and
those features may well be the reason the project lives on), but at some
point the bloat and techdebt become the dominant development story.
The problem is users all want a different set of features. One
person's "small and clean" is another person's "missing critical
feature".
This is one of the problems which the Linux enterprise distro's see.
Everyone wants everything to stay the same --- except for their own
pet feature. Or because they want their new hardware (say, NVMe,
which wasn't present in the version of the Linux kernel that was
frozen for the enterprise distro three years ago).
Ultimately, the reason why you can't have what you want boils down to
sheer economics. If you want to pay a small team to give you exactly
what you want, but nothing else, then sure, you can have what you
want. If you and two dozen want _exactly_ the same thing, then it
will be a lot cheaper. But if you want something which is free as in
beer, or even the cost of iOS, then it needs to have all of the
features and hardware support for a much larger set of customers.
It's interesting that some folks are complaining about "elistism"; but
they don't seem to recognize that asking for something super small and
clean, that is inherently elitist. I also suspect they don't
*actually* want something _that_ small, in terms of feature set. Do
they *really* want something which is just V7 Unix, with nothing else?
No TCP/IP, no hot-plug USB support? No web browsing?
If so, it shouldn't be that hard to squeeze a PDP-11 into a laptop
form factor, and they can just run V7 Unix. Easy-peasy!
Oh, you wanted more than that? Feature bloat! Feature bloat!
Feature bloat! Shame! Shame! Shame!
- Ted