points us to an interesting discussion of complexity of computer systems today
, written by Jean-Baptiste Queru. The key point is that, at the user level, the various technologies we use today seem incredibly simple, but the amount of things happening under the hood is awe-inspiring. He starts out by digging into what actually
happens when you visit Google's home page:
You just went to the Google home page.
Simple, isn't it?
What just actually happened?
Well, when you know a bit of about how browsers work, it's not quite that simple. You've just put into play HTTP, HTML, CSS, ECMAscript, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.
You just connected your computer to www.google.com.
Simple, isn't it?
What just actually happened?
Well, when you know a bit about how networks work, it's not quite that simple. You've just put into play DNS, TCP, UDP, IP, Wifi, Ethernet, DOCSIS, OC, SONET, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.
And, of course, that's not everything. From there, he describes what's happening in the operating system and the hardware as well, to demonstrate the complexity involved in the different levels of the technology stack. The key point is that there's an amazing number of things happening behind the scenes, just to do something simple like visit Google's website. And that's pretty awesome:
Once you start to understand how our modern devices work and how they're created, it's impossible to not be dizzy about the depth of everything that's involved, and to not be in awe about the fact that they work at all, when Murphy's law says that they simply shouldn't possibly work.
But, of course, most people only see the UI at the top of the stack. And that, Queru notes, is why Steve Jobs' untimely death got so much more attention that Dennis Ritchie's death the following week:
That is why the mainstream press and the general population has talked so much about Steve Jobs' death and comparatively so little about Dennis Ritchie's: Steve's influence was at a layer that most people could see, while Dennis' was much deeper. On the one hand, I can imagine where the computing world would be without the work that Jobs did and the people he inspired: probably a bit less shiny, a bit more beige, a bit more square. Deep inside, though, our devices would still work the same way and do the same things. On the other hand, I literally can't imagine where the computing world would be without the work that Ritchie did and the people he inspired. By the mid 80s, Ritchie's influence had taken over, and even back then very little remained of the pre-Ritchie world.
The fact is, both are important, but in different ways. We would live in an extremely different world without either of them. And, I actually have to disagree slightly about the idea that "deep inside" the devices would work the same way (if there were no Jobs). Perhaps at a superficial level, but I think it's worth noting that what Jobs made standard at the UI level certainly had some trickle-down effects in terms of what was happening underneath and what sort of technology developments were prioritized.
At the end of his post, Queru then points out how this multilevel complexity shows part of the problem of the patent system:
Finally, last but not least, that is why our patent system is broken: technology has done such an amazing job at hiding its complexity that the people regulating and running the patent system are barely even aware of the complexity of what they're regulating and running. That's the ultimate bikeshedding: just like the proverbial discussions in the town hall about a nuclear power plant end up being about the paint color for the plant's bike shed, the patent discussions about modern computing systems end up being about screen sizes and icon ordering, because in both cases those are the only aspect that the people involved in the discussion are capable of discussing, even though they are irrelevant to the actual function of the overall system being discussed.
I'm going to guess -- having had a few of these discussions -- that the patent system supporters in our comments (including patent lawyers and USPTO employees) are going to deny this. I think this is just a part of it. The patent system is definitely designed to look only at the twigs (not even branches or trees) instead of the forest. And that's why it almost always misses what's "obvious" to those skilled in the art, allowing the granting of patents on basic things that hinder innovation.
But the real issue is related, but deeper. When you look at the technology stack and the inherent complexity, the reason why
it works is because you have all these different complex pieces working together
with different experts focused on specialized pieces
within the stack. That's what allows for massive complexity to occur. But the patent system isn't designed to handle such a system. It's designed to handle integrated systems where top-to-bottom is patented by a single party (or maybe a few parties). The idea that a huge number of players might come together and work together to, in a somewhat ad hoc fashion, build a much, much more complex system, and not seek to profit directly from the overall system but from the pieces and expertise, is antithetical to the entire structure and premise of the patent system.