The rationale behind my OS

I have never felt like I have control of my own computer. The software is too complex and there is too much of it. Despite having so much functionality it's often unfit for what I'm trying to do. Workarounds are necessary all the time. Some of it can be configured but it's often a bad experience for multiple reasons - often having to learn new domain-specific language, options not doing what you think you do, weird interactions between multiple options and so on. Same with editing source code - it's tricky even when the source is available, it's one reason why open source is championed so much - for decompiled source code you have no hope, but often neither in the original source code. Things are barely interoperable and it's hard to make them so. There are so many layers on top of each other - so much duplicated functionality, but at the same time code reused when it shouldn't be leading to extremely complex generic libraries. Things are slow when they have no business to be. It's a frustrating experience overall.

I have noticed something - even when the individual tools are available, they are consolidated into IDEs (for coding tools) or software suites (in general). And it's so for a reason - it's incovenient to use them otherwise. However I think it should be the underlying operating system's job to make sure they are easily be able to be used together. Instead what we have is multitude of janky plugins, scripting langauges and so on. DLLs are painful to use too.

That's why I decided to make my own operating system with its own software ecosystem. It's going to be as simple as possible (though the complex hardware is a pain point) while still being powerful, if not more. The focus will be also on modularity, transparency, real control and being able to use everything with everything and to shape the software as you see fit.

One thing I'm going to do is to break all backwards compatibility. It's not going to be UNIX-like, there won't be libc. It's going to be a blank slate where I can experiment with new approaches. There already will be a custom text encoding incompatible with ASCI/UTF-8 and new file formats that will rethink how text is stored. Only the simplest software will be really portable, and only with heavy modifications that will make it fit the ecosystem. And I don't think that's a bad thing given the current state of software.