Slashdot Mirror


The Law of Leaky Abstractions

Joel Spolsky has a nice essay on the leaky abstractions which underlie all high-level programming. Good reading, even for non-programmers.

3 of 437 comments (clear)

  1. WTF? by pete-classic · · Score: -1, Troll
    Is this story a troll?

    TCP is a way to transmit data that is reliable.

    [snip]

    By comparison, there is another method of transmitting data called IP which is unreliable.

    [snip]

    Here's the magic part: TCP is built on top of IP. In other words, TCP is obliged to somehow send data reliably using only an unreliable tool.


    Wah? Is this serious? Does he mean UDP?


    Imagine that we had a way of sending actors from Broadway to Hollywood that involved putting them in cars and driving them across the country. Some of these cars crashed, killing the poor actors.

    [snip]

    Now imagine a new service called Hollywood Express, which delivered actors to Hollywood, guaranteeing that they would (a) arrive (b) in order (c) in perfect condition. The magic part is that Hollywood Express doesn't have any method of delivering the actors, other than the unreliable method of putting them in cars and driving them across the country.


    Huh? You can't retransmit cabbages or actors or hard copies of badly researched essays . . . but you can retransmit freaking TCP packets!

    While his point may be valid (and I'm not conceding the point) the essay is crap.

    -Peter

  2. Abstraction is GOOD by melonman · · Score: 0, Troll

    So just to get this straight, next time I want to sort some data from a text file and output it, instead of using Perl, I should carve the algorithm into a block of silicon with a chisel instead? Good abstraction is good, because it lets people ship reliable products quickly. Bad abstraction is bad, but not as bad as bad C programming with pointers. And the 'knowing how it works' argument for low-level is generally spurious, because of emergent complexity: even if you know what every line of code in the Linux kernel does, predicting how a network of 100 LInux boxes will perform when running a particular mix of applications, for example, is impossible in practice.

    --
    Virtually serving coffee
  3. why by Anonymous Coward · · Score: -1, Troll

    does slashdot endorse and advertise papers by
    idiots?

    stupidity loves company, i guess

    sheesh