> If the thing you’re trying to build doesn’t fit with our framework, you probably have a design flaw!<p>Yes and no. Whenever we move to a higher level of abstraction, we (almost?) always lose control. Even in C, there are some behaviors that require coding in assembly to squeeze out every last bit of performance, or using `unsafe` in various languages to break out of a managed environment. In both of these cases, they are code smells. Is it possible you have a valid reason for writing assembly by hand? Absolutely. But you better have a good reason for doing so, because it sacrifices readability.<p>The same applies to these “drag-and-drop” feature builders. The key is adding in hooks to create custom behavior easily. For Deja Vu, this is by creating your own concepts.<p>I think the biggest issue here is the target audience. We haven’t found a large enough group of people that enjoys working at this level of abstraction to help grow the community. Anecdotally, developers I know tend stick to their level of abstraction. C devs hate JS and vice-versa, arguing over control vs simplicity.
Interesting. I see a lot of promising projects moving more and more in this direction, where the database and logical objects are closely coupled and the end goal is to allow Microservices (but <i>more granular</i> Microservices, like this article describes) to be tied together to form a whole.<p>Actually, I recently started my own project to do the same, but I didn’t get nearly as far as a few of the recent posts I’ve seen on HN / reddit. At this point I might just find a similar OSS that I can contribute to.<p>I like the trend.
I's say kubernetes and helm/terraform is pretty close to this declarative assembly being realised. You still need a ton of technical ability to do the assembly, so I conclude we don't yet have a way of getting rid of that.
This sounds a lot like what FP nerds would just call “defining an algebra.” It’s the same sort of thing that leads to regular expressions, TypeScript’s type system, BPF, and so on.