Tuesday, December 1, 2009

Why <X> is not the ultimate programming language (or: Why I hate <X>)

  • <X> forces me to duplicate code and effort
  • <X> doesn't run my program or my libraries
  • <X> ignores my efforts to communicate
  • <X> is slow and has no way to speed it up
  • <X> doesn't have an expressive enough type system
  • <X> refuses to accept that it is wrong
  • <X> cannot be changed
  • <X> prevents itself from being understood
  • <X> can't understand what I am doing
  • <X> will not tell me what it did or what it is doing
In case you haven't realized, this is a template; substitute a programming language for <X>. (e.g., C++, Haskell, Ruby, ...)
I hope the opposites of these are not mutually exclusive...
I suppose this can be generalized beyond programming languages to software in general.