Am I a programmer?

February 9th, 2005 by Patrick Boucher - Viewed 6821 times -

One of my friends has fun telling me that I”m not really a programmer because my code isn”t compiled. I mostly use scripting languages so I can”t be a programmer, can I?

To which I reply: are you really a programmer if your ubber-complex program fits in twenty lines and the heavy lifting is done by a library / framework? This friend of mine is a very qualified and efficient .Net programmer.

— — — — —

I was having a drink with a couple of buddies last night and told this story. One of the guys spontaneously provided a heartfelt answer to the debate. He had obviously thought about this before…

The purpose of a programmer is to have the buisness logic of a client be executed by a computer. By client this can be a paying client of a software company or it can be the guy next to you in a department who needs a tool. In this context, no one cares – especially not the client, how this execution is acheived. As long as the buisness logic is executed by a computer within the prescribed development timeframe and the alloted budget the client should be satisfied. The debate on which tools to use, because this is essentially what this boils down to, is purely academic and is in the greater scheme of things worthless — nobody cares, as long as the buisness logic is taken out of their hands.

Hmmm… Score: 5, Insightful.

3 Responses to “Am I a programmer?”

  1. Carsten says:

    Well, the advantage of having Python in XSI is, that you can develop your plugins using less time as you dont have to implement all the underlying nessesary code for having it run on the win32 platform and maybe some interaction with this and that library and such.
    If the script integration is stable and fast (which is the case with Python in XSI) I would always choose that instead of a C++ implementation because the second atempt is most of the times more time consuming, complex and error prone.

    Concering the framework that is behind .NET you have to admit that there is the same construction behind Python. They implemented a lot of functionalty to make it easier for you to develop content instead of working on the low level code. :)

    I would like to add some fact to your friends answer: You actually think about, which tool to use as you want to develop using least time and effort and you want reusability of your code. You choose the tool, that can give you all these qualities. The discussion might be academic, the decicion not.

  2. - “The discussion might be academic, the decicion not.”

    You bring up good points Carsten and I really like this previous line!

    I don”t really know C++ but I would think that some programs that are very computationally intensive would benefit from the added execution speed, which is probably not the case with 90% of XSI automation scripts.

    So, bottom line is, we all are prgrammers, whatever tool we choose in the end, for having a computer do the work.

  3. Marcus Stade says:

    You know, technically your friend isn”t a programmer by his own reasoning either. Any .Net language is infact not compiled to machine code, it”s compiled to another language called MSIL which could be described as a sort of assembly language if you will (at least the syntax resembles assembly). However, it is not at all like assembly in a way that it”s low level. The actual compilation (and more importantly execution) of machine code comes upon executing your .Net application. This is what is called JIT compiling. Code is compiled to machine code when it”s needed, and not before that. Python works in a similar way. So the reasoning your friend works by is fundamentally flawed.

    The definition of a programmer is probably a very subjective one. I think the real question behind one such as: “Are you a programmer?” is infact: “Can you program in x?” where x is any language one might think of. Most people who know anything about programming probably wonders: “Can you program in C/C++?”. I used to do that till I figured that C/C++ was in many ways and in many cases painful to use. Now I usually ask: “Do you know how to use a programming language?”.

    My own definition of a programmer (other than being employed as such) is a person who can produce code (in whatever form) which makes a computer (in whatever form) perform wanted instructions.