> No, that was not what I was talking about. In this browser discussion, > I am not interested in ways to understand complexity as your proposed > solution. I think the fact that the browser needs to be this huge is a > signal that things are very, very wrong, and a new solution for > application distribution needs to come.
I'm still struggling to communicate this idea (everywhere, not just here). The browser is complex because it relies on eighteen layers of dependencies rather than just one. And the layers of dependencies are caused by wanting some fuzzy sense of backwards compatibility rather than digging into exactly what services one requires. That is my candidate answer to your question of what is "very, very wrong" and what the new solution to distribution needs to be. I hope that white-box tests will allow more fine-grained code sharing without worrying about compatibility. That will eliminate compounding drag across many layers of dependencies. This may be more radical than you expect. But the truth is often not reassuring. "A prematurely frozen library doesn't just force people to live with it. People react to it by wrapping it in a cleaner interface. But then they prematurely freeze the new interface, and it starts accumulating warts and bolt-on features just like the old one. Now you have two interfaces. Was forking the existing interface really so much worse an alternative? How much smaller might each codebase in the world be without all the combinatorial explosion of interfaces wrapping other interfaces" -- http://akkartik.name/post/libraries2