drxyzzy-banner.jpg (2K)
event-driven programming

IT Annoyances

  • Threads. A multitasking kernel performs delicate tasks involving concurrency and contention. It takes years to get these things right. Threading exports such problems into user space where application programmers can spend months going after bugs arising from threading issues. The following link goes to one of my favorite presentations. At the time John Ousterhout presented it at Usenix, I was one of the questioners in the audience arguing against his ideas. Now, I think he was right:
    Why Threads Are A Bad Idea (for most purposes) (pdf)
  • NFS. NFS is an attempt to do something at the wrong layer. As a result, it turns small failures into large ones and introduces single points of failure into an otherwise reliable network. Here's a link that gives some specifics:
    Use of NFS Considered Harmful
  • mod_perl. The biggest risk is contamination of global state by unruly applications, especially when legacy perl cgi is placed wholesale under a shiny new mod_perl server. Also, Apache is getting quite bloated, and linking an entire Perl interpreter into it is asking for a multitude of reliability and security problems. Use only when it is really needed and when scripts will be audited for mod_perl safety. See for example this online excerpt from the O'Reilly mod_perl book:
    Coding with mod_perl in Mind
    Here's a report of a 2-month bug hunt (ultimately successful):
    mod_perl list: Document Contains no data
  • OOP. For much of what I do, object-oriented programming just gets in the way. When beginning analysis and design of a system, it is too soon to talk about instantiations, inheritance, virtual functions, and such. OO zealots I have worked with seem to bring in the OO-speak way too early, bypassing the step, after analysis, of choosing a procedural/object-oriented/functional approach to fit the problem. For Joe Armstrong's amusing diatribes, see
    Why OO Sucks
    and
    Eppur si sugat
  • XML. Philip Wadler's presentation (with cascading T-shirts) at the Erlang workshop in Pittsburgh
    The great type hope
    introduced to me the idea of XML as a poor reinvention of S-expressions. For more, pro and con, despite the title, see the Wiki at the Portland Pattern Repository for
    Xml Sucks