If you don’t know assembly, then you don’t know how to program

Be it in comments, blog posts or general discussion, the Internet is awash with suggestions that one cannot be a good programmer without knowing assembly. Or C. Or C++. Or Perl. There seems to be an obsessive defensiveness amongst programmers about their particular area of specialisation that makes them feel the need to promote it as the alpha and omega of technical achievement. There is a corresponding defensiveness about high-level programming, leading to bizarre proclamations of low-level programming being irrelevant or simply leg-work.

The notion that any language, platform or development method attracts the best programmers is unscientific, childish and absurd. When it comes to sweeping statements, I think people should simply stick to studied fact that is backed up by statistics. Regardless, there seems to be an alarming number of programmers who simply think they’re better than other people because they work in a particular language. Having interacted with some of these people, it is clear that they are often not nearly as smart as they think they are.

I think it’s reasonable to assume that many such posters are simply trolls intending to spark of an argument, but others appear to be quite genuine. There was a recent thread on comp.lang.functiona; started by a notorious language basher, regarding some Haskell performance issues. Complaining that Haskell is not as fast as some other language, whatever the practical repercussions, is missing the point. Haskell is intended to present a restrictive and declarative environment in order to make some tasks easier. Naturally, it is harder to write code that the compiler can generate efficient code for.

Such discussions are utterly fruitless; if you do not have a specific suggestion that will bring a language implementation or design closer to its goals, you are not helping anybody. Nonetheless, these discussions will likely continue. Eric Raymond has undertaken to “harpoon the Great White Whale of modern programming languages”, which he believes is C++. Whatever criticisms emerge from this and future inflammatory postings, programmers will continue to utilise all manner of tools to produce interesting and/or well-constructed work. The only sensible course of action going forward seems to be to ignore the language trolls completely.

Advertisement

One Comment

  1. Posted April 26, 2009 at 6:08 am | Permalink

    And to write good assembly you need to understand the architecture of the hardware; and for that you need to understands gates; and transistors. It might be argued that quantum properties of electrons is not strictly required, but they do come in play if one tries to make their transistors small enough. The rabbit hole goes quite deep.

    It’s possible to write PHP (or Fortran, or whatever) in any language. And compiling a “Hello World” in C doesn’t make one a hacker.


Post a Comment

Required fields are marked *
*
*

Follow

Get every new post delivered to your Inbox.