The next Accidental Difficulty in software

First, go read this article by Joel: Book Review: Beyond Java.  He mentions this list, of great advances that have address some accidental difficulties in software:

  1. Assemblers
  2. Algebraic languages (including Fortran)
  3. Structured languages (Algol-60 and C)
  4. Declarative languages (including SQL)
  5. Memory-managed languages (including Lisp, VB, and Java)

First, I'm disappointed he didn't list C# next to Java in #5.  By no means did Java (or VB) invent automatic memory management (garbage collection).  Perhaps you would give those languages credit for bringing managed memory to the masses, but in that case, C# belongs on the list. 

I remember a very interesting discussion here a couple years back, about this very topic.  Cyrus was saying that at some point we'll expand the domain of the Garbage Collector to non-memory entities, like files, database connections, etc.  Sure, figuring out of it's time to dispose of those things is hard, but computers are getting more powerful, and we'll eventually build that in to our programming systems.

So, think of all the times you have written 'using' statments in your code, and consider the possibility of a language that made them unnecessary.

Comments

  • Anonymous
    October 13, 2006
    The comment has been removed

  • Anonymous
    October 13, 2006
    I would say that he offers three languages branches ( esoteric, mainstream server, mainstream client ) and doesnt see the need to be exhaustive. It simply demonstrates that memory management is wide spread, and not some research project. Secondly, I would say that he selected VB over C# because VB was released first, it covers the 'windows' angle, and it is ( was? ) the most popular language in the world.

  • Anonymous
    October 15, 2006
    The comment has been removed