You make a good point. I haven&#x27;t used autocad before but after trying other cad programs and being frustrated with the lack of cli control it makes sense. What you explain sounds awesome!<p>Unfortunately, the current paradigm of tools for gui&#x27;s (and even cli&#x27;s) remain incredibly static and inflexible in their approach and design. It&#x27;s not a problem that we don&#x27;t know how to do it, as the autoccad example shows, but rather developers and companies lack the gumption to figure out how to make portable libraries and platforms based on it.<p>By this I mean, that the autocad program would have to have some kind of dynamic data and code system with rules and an internal grammar for composing them. It reminds me of the old joke &quot;every program evolves until it reimplement common lisp -- poorly&quot;. This can be done in C++ and java, etc, but you end up basically building your own dynamic lisp like system. This often gets encapsulated in design patterns built into complex class hierarchies.<p>Basically, my take is that while it&#x27;s possible to build on autodesk&#x27;s and others examples, most efforts are either too academic and esoteric or just poorly executed. I think the culture in development is getting to a point this approach could be widely adopted.