with versioning and diffs: https://ftp.gnu.org/gnu/hello/
I'm guessing the WebASM Privacy browser equiv must be: Hello Brave GNU World
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...
But the one thing that ultimately adds a lot of unneeded complexity to basically every software project at my work are requirements. That kind of requirement that nobody thought of when the project kicked off. And this kind of requirement that a few months later everyone realizes nobody actually needed. And that you possibly remove after a while. But in the meantime this feature influenced your entire data model or worse.
This is the point where your previously fun work turns into a slog for the duration of said project. Well at least we can still have fun with our hobby projects!
As I understood how performance worked, what's maintainability and minimalism (as a general concept), the code I write became minimal and simpler.
Currently I'm working in a mode which can be called "overgrow and extend". I start with the most simplistic code which satisfies the design and my requirements, then refactor any part which cracks under the design to satisfy the requirements without being hacky. This philosophy works like a charm for me. Coupled with my "needless comments", getting back into context and extending/maintaining the code is easier than ever.
I even started to finish and deploy my personal projects. It's that effective for me.
Now I'm learning live documentation, which allows me to write the documentation of the things I'm working on simultaneously. When things finish I also have a workable documentation as a result.
Good on you for having success with your personal projects!
Those are noble goals; I think the problem arises when devs forget that "change the code" and "replace with something else" are perfectly valid options. Adding a plugin interface and override hooks, just in case they might be needed, for an internal library, then it's a classic case of YAGNI. When an implementation is so configurable that passing it a config is more effort than writing a bespoke implementation, then it may be an example of the "inner platform effect".
I wrote about this sort of thing on StackExchange a few years ago https://softwareengineering.stackexchange.com/a/382229/11211...
Sometime people really like to complicate instead of keeping things simple. Not just for show off but they genuinely believe something more complicated is better. Better such as it has better security, it has better extendability and is more generic. Even if those features were never in the actual business requirements.
I am amazed no one has written Hello World Microservice Edition. So you can have a fancy React UI, a Gateway, an User service, an Authorisation service, a Notification service, an Audit service, a Pricing service and a Printing service.