Remix.run Logo
K0balt 15 hours ago

I’ve been pleasantly surprised how useful it is for writing low level stuff like peripheral drivers on imbedded platforms. It’s actually-simple- stuff, but exactingly technical and detail oriented. It’s interesting that it can work so well, then go wildly off the rails and be impossible to wrestle back on unless you go way back in the context or even start a completely new context and feed in only what is currently relevant (this has become my main strategy)

Still, it’s amazingly good at wrestling the harmony of a bunch of technical details and applying them to a tried and true design paradigm to create an API for new devices or to handle tricky timing, things like that. Until it isn’t and you have to abort the session and build a new one because it has worked itself into some kind of context corner where it obsesses about something that is just wrong or irrelevant.

Still, it’s a solid 2x on production, and my code is arguably more maintainable because I don’t get tempted to be clever or skip clarifying patterns.

There is a level of wholistic complexity that kills it though. The trick is dividing the structure and tasks into self contained components that contain any relevant state within their confines to the maximum practical extent, even if there is a lot of interdependent state going on inside. It’s sort a mod a meta-functional paradigm working with inherently state-centric modules.