Back when the internet first got popular, it consisted mostly of very simple websites. After all, it was just getting started, so there wasn’t nearly as many tools out there to create complex websites. The same was true for software. Every program was made to do one thing, and it did that one thing very well.

Unfortunately, as time progressed, apps and websites became a lot more complicated. Obviously this meant that apps and websites could do a lot more. But more is not always better. Instead, we now have apps that try to do everything, and that fail miserably so much of the time.

At the same, this also means that simple, open, standards have come under attack. Why would you want to have a universal formats for your content, when you could instead use proprietary ones that has some features the open ones don’t? It’s not like you have a choice anyway.

Now, of course there are apps that aim to fix this, with open formats. But these format will never be adopted by proprietary apps, or else they’d show them themselves to be as useless as they are. If you can’t attract customers, you might as well trap them.

And in some areas of software, almost everything has become complex. Say you want to save a little note, in the format of a plain text file for example. Well, good luck with that. Sure, it’s possible to do that on a computer, but it’s almost impossible on a phone. All notes apps, even open source ones like Standard Notes would prefer to offer you cloud syncing for your notes, rather than letting you open local files.

Personally, I use Android, GrapheneOS more specifically, for privacy and open source reasons. On Android, there’s essentially no open source app with a modern design that will open plain text local files. Why isn’t there one? Why have we all gotten used to unnecessary complexity?

On desktop, the emerging GNOME ecosystem seems to be doing a good job of tackling this. Anyone can make a simple app for GNOME using the libadwaita design language. So the result is that you have a uniform design language across all your desktop apps, and this design language is built for simplicity, not complexity.

A complex app is not always bad. A document editor, or a photo editor, or a video editor, etc. will always be complex. There’s simply so many things to do. But they shouldn’t all use their own proprietary formats that don’t work with everything else. And apps shouldn’t force you to use their cloud syncing, rather than being in control of your own data.

Overall, in open source circles, the situation is definitely improving, but as with my notes example, unnecessary complexity is clearly still commonplace, even for open source software. If you create software, you should strive to make it as simple as possible. Not because users can’t handle complex software, but because unnecessary complexity only makes your software harder to use, not better.