|
|
|
|
|
by cryptoxchange
780 days ago
|
|
It’s interesting how in a system where one team writes all the code, nuking your clients from orbit when they look at you funny can improve iteration speed. It’s funny to wake up and read this after falling asleep reading about algebraic effects. If you squint the right way, this is a kernel that lets a server perform an effect that the client cannot handle. I feel like this would make code reuse and composition much harder, but provides a much simpler execution model. Definitely the right trade off in a static embedded system. You can always just vendor and modify a task if you need to reuse it. |
|
As an example: trying to close() invalid FD is a a non-fatal error which is very often ignored. But it is actually super dangerous, especially in multi-threaded apps: closing wrong fd will harmlessly fail most of the time, but 1% of time you'll close a logging socket or a database lock file or some unrelated IPC connection.. That's how you get unreliable software everyone hates.