Modularity and Spontaneous Order

by on March 10, 2008 · 4 comments

Glen Whitman has a great post on the relationship between modularity and innovation. He’s exactly right that modularity (or what software types would call open standards) promotes progress by allowing people to build software from pre-existing components without worrying about exactly what’s inside any given component. One of the most important examples of modularity in the computer industry is the Internet’s end-to-end principle, which allows application developers to ignore the details of how to get packets from A to B, and instead focus on what to do with packets once they reach their destination.

  • http://bennett.com/blog Richard Bennett

    Don’t confuse modularity with open standards, they’re two very different things. Windows is modular, as are all large software systems, but it’s not open.

    And the example you cited, TCP, actually shows that “black box” modularity is a two-edged sword. Applications of a certain type can benefit from feedback about network state, and the black box architecture of TCP/IP hides this sort of adult information from the application. If the Internet really were and end-to-end architecture in practice, this wouldn’t be the case.

    Just because TCP runs on the user’s computer doesn’t make it any more amenable to end-user control than it would be if it ran in a boundary router; it’s still a network control function that provides limited real-time feedback to the application. It’s actually better to think of it as a core function that happens to steal CPU cycles and memory from the end-user.

  • http://bennett.com/blog Richard Bennett

    Don’t confuse modularity with open standards, they’re two very different things. Windows is modular, as are all large software systems, but it’s not open.

    And the example you cited, TCP, actually shows that “black box” modularity is a two-edged sword. Applications of a certain type can benefit from feedback about network state, and the black box architecture of TCP/IP hides this sort of adult information from the application. If the Internet really were and end-to-end architecture in practice, this wouldn’t be the case.

    Just because TCP runs on the user’s computer doesn’t make it any more amenable to end-user control than it would be if it ran in a boundary router; it’s still a network control function that provides limited real-time feedback to the application. It’s actually better to think of it as a core function that happens to steal CPU cycles and memory from the end-user.

  • http://linuxworld.com/community/ Don Marti

    But a pair of users who want to connect can switch and run something other than TCP on the host. If YouTube and example.com decide that they want to run SCTP over IP instead of TCP over IP, they don’t have to tell the ISPs in between.

  • http://linuxworld.com/community/ Don Marti

    But a pair of users who want to connect can switch and run something other than TCP on the host. If YouTube and example.com decide that they want to run SCTP over IP instead of TCP over IP, they don’t have to tell the ISPs in between.

Previous post:

Next post: