Designing SolidJS: Dualities
A while back I attempted to write a series to describe what went into designing Solid, a high performing JavaScript UI library. It was too general, with each article trying to tackle too much. With Solid recently reaching 1000 stars on Github, I’ve decided to give it another go. This article marks the start of a new series that will be more focused on specific topics. It will require a basic understanding of the Virtual DOM and Fine Grained Reactive Programming(references below). It might be a bit too deep for those just wishing to use Solid, but I believe it could be useful for others facing similar challenges. A lot of smaller considerations go into designing a consistent system.
Exploring Dualities
If there is one common thread I’ve seen when reflecting on topics around design is that things are never just black or white. Before talking about any specific technical choices I think it’s important to appreciate not only the scale from left to right but understand that often by slightly reframing the question to things that are seemingly opposite of each other can align next to each other. That stepping out or going far in one direction can wrap around to the other; Communism becomes Fascism, Infinity becomes zero, everything becomes nothing at all.
In programming and API design we also have dualities like this and I’ve found they…