Saturday, September 02, 2006

Programming vs. Software Development

You know the annoying feeling when you want to find something on the net and you can't find the proper search keywords? It's like trying to find the Triple X movie rather than porn flicks. It happends a lot when you want to find something that you know is named in some way, but a new buzz word is emerging and you either don't find everything you need or you find a lot of unrelated stuff. Like trying to find people talking about computer programming, but you end up with all these TV programming sites. Now try to find how to turn your PC into a TV by programming :).

Anyway, searching on programming led me to wonder about the difference between programming and software development in describing my own job. As previously mentioned, there are other sorts of programming and development except computer ones and to top it all, people mean different things when using these concepts in the software context. Wikipedia, for example, takes "programming" and gives me the page for "computer programming". It then takes software development and takes me to software engineering (which in my mind are different things).

How does google see this? Let's search:
TermPage count
Software development175.000.000
Computer programming19.700.000
Software engineering80.700.000
Software developer27.400.000
Computer programmer4.270.000
Software engineer22.500.000

So it seems that there is a lot more programming and programmers than software development or software developers, but add "computer" in front and there is less. But that's because no one bothers to say "computer" in those cases.

And there is more. While software development/engineering start to go towards "designing programs", computer programming goes towards "typing code". I believe that is happening because in large software companies there are a lot of people writing code, but very few that actually have a say on how the program is to behave or what technology to use. I am watching Microsoft presentations and they are ridiculing the "old school" programmers that type their code while the new breed of software developers point, click, drag, drop and everything works in a few minutes. People that actually think through what algorithms to use and how it all works and optimize lines of code and try to think like a compiler from time to time are grunts to be enclosed in cubicles, while those who think how the general program should work, create UML diagrams of interacting business objects are the lords of their domain.
That makes no sense to me, especially since the drag and drop people use software delveloped by code typers. Or it does make sense in the way that software development has become a feudal industry, like most industries become shortly after they become mass consumed. They have an elite, a clique that behaves like aristocracy, while most members of that industry work their asses off in the employ of these people. This gives a whooole new meaning to the term software revolution :)

So what is this job that I am performing? Am I just a meta-computer? Something high level that understands what it must do and obeys blindly by using a computer? Why is it that I like to code? Is there a difference in my mind between software and a program, so that the term software developer scratches my ears while programmer boosts my ego? And why do most people feel the other way around?

These are questions that I will probably be asking for a long time. Meanwhile, take a look at this wikipedia page, which I found informative: Programming paradigm. Also, consider this little link: Javascript 3D where you can find the explanation on how to do a Wolfenstein like game in Javascript, with only 5 kilobytes of code. You might want to wait a bit until it loads completely or use Mozilla Firefox. I noticed it works faster. Can't believe it? Check it out! That's what programmers do!


Anonymous said...

Good Stuff buddy
I thought the information above has given me great topics to think about. Thank you!
Best wishes,
Sofstware Development

Alegandra said...

Thanks for the info. Nice kitty :)