This is an interesting set of thoughts, but I don’t know how useful it is.
User requirements can be very complex. Software that attempts to solve these tends to be complex as well. It also tends to be sufficiently useful that it can be monetized, which leads to commercial implementations where added complexity is generally a positive that results in more users having more of their needs met.
Not always of course, and yes software gets bloated and gross as well. But in general, the added complexity of software over the last two decades has resulted in software that is easier to use, more forgiving, and therefore more useful in terms of solving more problems for more people.
Simplicity is indeed a positive factor for an ecosystem, but not a requirement. Look at Salesforce.
As for FOSS specifically, simplicity is surely much more important, but that almost seems tautological. FOSS is typically written by people who do it for the joy of programming and to solve their own needs, which is wonderful, but not lucrative. This the chances of a FOSS project being successful are highly correlated with it being something (a) useful enough that many people want it but also (b) relatively simple enough that most engineers could roll their own if they wanted to - and thus they have the time and skills to maintain it for free.
Just because a user-friendly email client may take a lot of complex code to write doesn't mean the email protocol itself has to be complex! You can have full-featured, complex implementations like Gmail, more spartan implementations like mutt, and even hand-rolled email tools using things like Python's imaplib/smtplib.
If you look at a piece of software like Facebook, it used to be much simpler several years ago. Features like games, dating, marketplace and videos have been added, but I think that the large majority of users only cares about messaging, sharing content and events.
FB is adding features to try to keep users on the site, and as a competitive moat, but in the process, they are making the user interface increasingly hard to navigate... There's just so much going on. I know that multiple times, I was looking for the place on my profile, trying to find where I could see all the photos I'd uploaded, and not finding it.
I'm not sure FB videos is really good for users. YouTube offers a much better service, that's searchable from the outside. FB dating is currently terrible compared to OKCupid and even Tinder. It definitely looks like bloat.
That being said, I agree with you about OSS projects being simple by necessity. I've had to give up a successful OSS project I started because reviewing pull requests was becoming a second job on top of my full-time day job.
> Discontent with the slow progress of GCC development led to the EGCS fork. EGCS added many optimizations for contemporary processors, improved C++ support, added more frontends, and generally improved things. This fork proved so successful that the original GCC ceased development. EGCS got rebranded as GCC, and replaced the original.
At the time I arranged this fork (97) it required tremendous negotiation and delicacy as in those days a fork was considered tragic. Things had just gotten so clogged (for reasons I won't go into) that we had to do something. The EGCS project was also the first to have an independent steering committee -- setting up a familiar model many projects have today.
By the time X.org forked the road had been paved by a few others.
> Chrome, Firefox, and Safari. The first two are funded by Google ads.
Safari is funded by Google Ads exactly as much as Firefox is -- both collect enough money for the default search provider setting from Google to fund their development.
Uhh, with the small exception that Safari is a strategic product of the world's most valuable company, and they force it onto every single user of their primary operating system.
If Safari needs something, the powers at Apple don't need to wring their hands: "Gee, I wish we could get more money from Google somehow."
Software complexity is often an entropic outcome of bloated teams and improper layering, working in an environment without strong stewardship that's explicitly guiding the the effort with simplicity as a fundamental tenet. Adding funding, prioritising short term feature delivery and having misaligned incentives often create and catalyse bloated teams to drive complexity up.
User requirements can be very complex. Software that attempts to solve these tends to be complex as well. It also tends to be sufficiently useful that it can be monetized, which leads to commercial implementations where added complexity is generally a positive that results in more users having more of their needs met.
Not always of course, and yes software gets bloated and gross as well. But in general, the added complexity of software over the last two decades has resulted in software that is easier to use, more forgiving, and therefore more useful in terms of solving more problems for more people.
Simplicity is indeed a positive factor for an ecosystem, but not a requirement. Look at Salesforce.
As for FOSS specifically, simplicity is surely much more important, but that almost seems tautological. FOSS is typically written by people who do it for the joy of programming and to solve their own needs, which is wonderful, but not lucrative. This the chances of a FOSS project being successful are highly correlated with it being something (a) useful enough that many people want it but also (b) relatively simple enough that most engineers could roll their own if they wanted to - and thus they have the time and skills to maintain it for free.