Abstraction in Action

by on May 9, 2007 · 8 comments

Via PJ, here’s a great joke about programmers by Nathaniel Borenstein:

It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.

While this is a whimsical example, I think it actually explains why geeks have such strong views on certain issues. For example, on software patents: one of the most common tricks in a programmer’s toolkit is to solve a specific problem by finding a way to solve a more general problem and then treat the particular problem as a special case. For example, VoIP just applies the general data-transmission capabilities of the Internet to one type of data, namely sound. It therefore strikes many programmers as perverse to grant a patent to the first person who happens to file for a patent on applying a widely-understood technology (such as TCP/IP) to a particular application (like voice).

Similarly, geeks tend to be strong support of network neutrality (the concept, if not the regulatory policy) because fundamentally, network neutrality is the principle of abstraction applied to network architecture.

  • http://enigmafoundry.wordpress.com/ enigma_foundry

    It therefore strikes many programmers as perverse to grant a patent to the first person who happens to file for a patent on applying a widely-understood technology (such as TCP/IP) to a particular application (like voice).

    This observation has been made be genomic researchers, as well.

    See the podcast by Drew Endy at the following link:

    http://www.itconversations.com/shows/detail663.html

    Also, apparently TLF no longer allows clickable links??

  • http://www.techliberation.com/ Tim Lee

    EF, what kind of problems are you having?

  • http://enigmafoundry.wordpress.com eee_eff

    It therefore strikes many programmers as perverse to grant a patent to the first person who happens to file for a patent on applying a widely-understood technology (such as TCP/IP) to a particular application (like voice).

    This observation has been made be genomic researchers, as well.


    See the podcast by Drew Endy at the following link:

    http://www.itconversations.com/shows/detail663….

    Also, apparently TLF no longer allows clickable links??

  • http://www.techliberation.com/ Tim Lee

    EF, what kind of problems are you having?

  • http://tieguy.org/blog/ Luis Villa

    It is worth noting, for the non-programmers out there, that programmers don’t seek abstraction primarily out of some sort of perverse puzzle-solving, or to create more work for ourselves (though it does tend to do both those things). We’ve learned that the process of abstraction makes those generic solutions more robust, and it makes them more ‘future-proof’- allowing for innovative uses the original author didn’t intend for. Because hey, you might someday need DestroyCity(Tehran), or more positively, that network you wrote to pass around very simple chunks of data amongst 2 computers might some day get used to pass around a substantial portion of the world’s economy. If you design abstractly, that kind of thing can happen without having to ask Washington, or Ma Bell, for their permission.

  • http://tieguy.org/blog/ Luis Villa

    It is worth noting, for the non-programmers out there, that programmers don’t seek abstraction primarily out of some sort of perverse puzzle-solving, or to create more work for ourselves (though it does tend to do both those things). We’ve learned that the process of abstraction makes those generic solutions more robust, and it makes them more ‘future-proof’- allowing for innovative uses the original author didn’t intend for. Because hey, you might someday need DestroyCity(Tehran), or more positively, that network you wrote to pass around very simple chunks of data amongst 2 computers might some day get used to pass around a substantial portion of the world’s economy. If you design abstractly, that kind of thing can happen without having to ask Washington, or Ma Bell, for their permission.

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

    There’s a simpler reason for programmers’ general dislike of patents from basic economics.

    If your employer gets a patent on what you’re working on, and another company hires you to work on the same thing, your new employer also needs to license the patent.

    In the job market, you and the patents needed to enable your work are complementary goods. Higher price for the patents means lower price for the programmer.

    Would the Cato Institute have been able to hire Tim Lee if they had also had to license the patents on his prose analogies and lines of argument?

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

    There’s a simpler reason for programmers’ general dislike of patents from basic economics.

    If your employer gets a patent on what you’re working on, and another company hires you to work on the same thing, your new employer also needs to license the patent.

    In the job market, you and the patents needed to enable your work are complementary goods. Higher price for the patents means lower price for the programmer.

    Would the Cato Institute have been able to hire Tim Lee if they had also had to license the patents on his prose analogies and lines of argument?

Previous post:

Next post: