Why does code rot? Wikipedia lists a bunch of reasons — some make sense to me, some leave me meh.
From the vantage point of my battered years of experience, I’ve come to classify code into three areas:
I’m happy with Java. There, I said it. I mean, I noodle around in Python, have done Rails, recently looked at Scala, but mostly there is little I can’t get done in Java. Mostly that is a side-effect of using Java for a long time; I went to a seminar at the University of Maryland sometime in 1996-97, with my copy of Java in a Nutshell clenched in my hand, and listened to a guy give a talk in Java. He said something along the lines of “Look, Java has some neat ideas, and we’re going to explore them today. But no one is going to write real applications in it.”
In my post on reading other people’s code, I mentioned my views on the pointlessness of comments in code. It seemed worthwhile to expand on this, since I got such a wide variety of responses.
And yes, in the main I am going to suggest you don’t bother commenting most of your code. Unfortunately for the lazy among us, there something else you should use to replace those comments … but we’ll get to that later.
If you are a professional software developer, or aspire to be one, you will need to know a lot of of things. Various maths, stats, languages, frameworks, methodologies, tools, etc. Fads and buzzwords will come and go, all during your career. You’ll master some, ignore some, laugh at some.
But aside from the desire and ability to work in abstracts for concrete results, there is one skill that is an absolute must-have.
Developers are fond of recounting their disastrous experiences branching and merging in Subversion and CVS.
Yet, thousands upon thousands of teams use SVN. Are they just not branching? What’s going on?
My last post stirred up a lot of interesting feedback; some folks thought calling yourself a Software Artisan was pretentious (which is true, used in general conversation), some people thought it was a reasonable term, and some thought of other even more pretentious terms (My favorite: Software Auteur. It would be an amusing world where you could break the ice telling someone you were a Software Auteur.)
And some folks denied that software is handmade at all.
What is your job description? What do call yourself, or tell people you do?
There’s nothing . . . absolutely nothing . . . half so much worth doing as simply messing around with computers.
My apologies to Kenneth Grahame.