4 ms·
Apple's OpenDoc [1] was another attempt to break out of the silos of monolithic apps each completely responsible for their own document formats. It died. I do
by munificent 3y ago
Apple's OpenDoc [1] was another attempt to break out of the silos of monolithic apps each completely responsible for their own document formats.
It died.
I don't think there are any real technical of programming language challenges to making this work. It's a problem of economics and sociology.
Economics:
If your doc/app/thing is composed of a multitude of widgets developed by different developers, who pays for those widgets to be developed? If you have to buy them, does that mean you get a doc that you can't send to anyone else unless they have they've paid for the same widgets?
(This problems exists today in the world of music production where there is a thriving plug-in model of third-party VSTs which are wonderful for extensibility but do make it quite hard to share projects with people.)
If that's not the business model... what is? I don't think anyone ever figured out a good way to make money making software like this outside of limited domains.
Sociology:
Conway's law [2] isn't a joke. It's a real observation that for different software components to interoperate, the teams making them need to communicate at least enough to create protocols.
Defining software protocols that are expressive enough to be useful but simple and stable enough to be widely used by completely independent competing organizations is really hard.
Imagine you had to design an API for composable UI widgets. How would you handle text rendering? RTL? Theming? Colors? Layout? It's not intractable, but it's not far from it.
Both:
Then you have to consider that if you have competing organizations trying to make money selling widgets, they don't want their competitors widgets to be successful. They are incentivized to undermine compositionality whenever they can (Microsoft's old "Embrace, extend, and extinguish" [3]).
Also, a fundamental tenet of usability is that the interface as a whole should be consistent and hang together. Users don't want apps that are a patchwork of jarring widgets each with its own style and convention. If you could get a platform like this off the ground, users would still like converge onto a small number of companies that made large sets of widget suites that are designed to compose together harmoniously. The usability benefits of doing so would work like network effects to lead towards platform consolidation.
Software people just dramatically underestimate how hard composability actually is in practice. It doesn't matter if you can shuffle bits between two pieces of code. That's the easy part. The hard parts are all in protocol design, usability, competition, etc.
[1]: https://en.wikipedia.org/wiki/OpenDoc https://en.wikipedia.org/wiki/OpenDoc
[2]: https://en.wikipedia.org/wiki/Conway%27s_law https://en.wikipedia.org/wiki/Conway%27s_law
[3]: https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguis...
- discreteevent 3y agoVisual Basic succeeded at this somewhat. There was a market for widgets. You paid for the widgets and your users paid you for the composed application (the users were not free to recompose it however). But that was in the days when people paid for software Nowadays people don't pay but it doesn't mean you can't compose things from open source stuff like material UI. I think that Bracha's point is that it's always been hard for a user to compose apps and make them consistent etc(although VB was much easier than web stuff). But now the AI will compose them so the promise of VB etc could be fully realised. Power to the people.
- AlanYx 3y agoIt really was amazing how large the market was for paid Visual Basic VBX/OCX custom controls (widgets) in the late 90s. This article estimates there were more than 100 companies selling them by 1997: https://www.devx.com/tip-bank/23792/ https://www.devx.com/tip-bank/23792/
- zubairq 3y agoI was looking for information on the VBX/OCX component market just as I was reading your comment! Thanks!
- discreteevent 3y agoI do think that the problem with Bracha saying the AI will compose things is that as Big Dave Thomas once said: "It's important to be able to debug at the level of the abstraction". I'm not sure that even with automatically tested code and even some proof we will ever get away from the need to debug. Dave Thomas was talking about model generated code and models were a much more precise starting point than the prose we input to an AI.
- wisemang 3y agoWow thank you for taking me back.. reminded me of CyberDog [1] which I haven’t thought about in quite some time… [1] https://en.m.wikipedia.org/wiki/Cyberdog https://en.m.wikipedia.org/wiki/Cyberdog