The Internet has a bunch of cooperating pieces that stack together. Because of the separation between pieces (packet routing, packet loss management, etc.), we can specialize and write web apps that use the stack without having to be cognizant of the underlying layers (well, until we get big and start to care about optimizing delivery).

The downside to specialization without understanding the lower stack elements hits in two ways: 1) if anything goes wrong, we don't have a working mental model which would allow us to pull the problem apart (verify each layer), and 2) it makes normally intelligent people sound incredibly daft.

For example, check out the news.yc post about When I read that post, pretty much every comment comes across like:


I guess all this just means that either news.yc has gone to carp, or exposing easy-to-use network debugging tools would help a bunch of people....

Heh, I didn't really read the comments, but that site is pretty cool. I use IRC for the same thing... - Nathan