logoalt Hacker News

brabeltoday at 8:00 AM0 repliesview on HN

There has to be a central component that allows everything else to be glued together, discoverable parts and configurable bits. It’s really hard to do that generically enough that it works for everything. I think the closest I’ve seen was OSGi. You had ways to do anything based on modules that were completely decoupled, or you could introduce coupling in a very principled manner as needed. This worked for backend and front end components and the Eclipse IDE was built that way.

Java beans, from the same era, were envisioned to allow the creation of LEGO blocks with which you could build an application. They expected there would be market places where you could buy and sell Beans that did all sorts of things, from pure data representation to Swing UI components like charts and dashboards. I think OSGi built on that idea.

The problem was people thought OSGi was too complex, hard to learn, hard to debug and so on. I believe that was a problem with the execution, not the idea.

Now that I consider it, perhaps emacs is another example of this concept. You have access to use and modify nearly everything with small code snippets. It even has a UI system though that’s a bit outdated and really just text based ! People are trying to create similar systems using more modern technology but it’s very hard to do it well.

Perhaps yet another example is Smalltalk. Have a look at the Glamorous Toolkit (GTK) and its support for UIs that live inside the programming environment itself.