begin quoting Andrew Lentvorski as of Tue, Sep 30, 2008 at 01:48:53PM -0700: > Christopher Smith wrote: > >James G. Sack (jim) wrote: > >>"I probably didn't capture it well and Alan wasn't specific, but two > >>things I understood he thought ought to be taught first were parallelism > >>and loose coupling. He mentioned that the Internet is more about those > >>two things that it is about data structures and algorithms." > >> > >Interestingly, those were pretty much what first and second year > >computer science (admittedly with data structures and algorithms > >trickled in) programs at the schools I went to were about. > > You know, I love this. Everybody talks about the "loose coupling" of > the internet. > > It is--in places. > > Unfortunately, everybody forgets that TCP/IP is two state machines on > different computers that are in *absolute lockstep* with one another. > > Not exactly loose coupling ...
This just doesn't sit right with me, for some reason. Implementation difficulty or adherence to an interface isn't the primary measure of coupling -- rather, it's how easy (or hard) it is to rip out one implemenation and replace it with another. Plus, "the Internet" is kind of confusing in this context... if you pick your viewpoint right, you can always find a problem. The rule of thumb I use when thinking about coupling is "how much work will it be to change out the actual underlying implementation?". The easier it is to rip out one implementation and replace it with another the looser the coupling is. If the Internet isn't loosely coupled -- and don't get me wrong, I think this is an interesting viewpoint to consider, and I'd like to beat it to death -- then just what would you consider to be loosely coupled? -- Exposing module state to other modules is generally a poor idea. Stewart Stremler -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
