one of my challenges in my projects, as I set out to define the constraints to which I want to define my goal for a new personal computer for me by me, is that I have a lot of experience with a lot of different tech - different languages, different operating systems, different application stacks, what have you - so when I’m asking myself what I need to do what I want it’s easy to bring concepts and capabilities over together rather than just specifying the capability and letting the concepts be reconsidered during implementation, yeah?
like, as an example, I am going to want programs to be able to store data in databases. I know a lot about a lot of different databases! it would seem to make sense for me to just bring one or two of the databases that I already have experience with over to my new operating system, but that’s a misstep in my opinion, for a couple reasons.
first, modulo some very specific database engines, most database systems in the modern age do not live in a vacuum, so you are implicitly signing up to support their entire dependency stack into your new thing. so, postgresql is great, but probably not what I need on my personal computer.
libsqlite might be a better fit, smaller, simpler model, yet sufficiently databasey, right?
yeah, what if that’s still more database than my personal computer needs right off the bat?
we can go smaller.