Stop Coding in the Middle Ages
Aren’t you sick of wasting your time, your team’s time and precious build cycles for finding the stupidest mistakes ever? I know I’m far more interested in solving the real problems at hand than chasing stupid syntax errors. And even if you don’t mind, you really shouldn’t let your teammates substitute for a decent tool.
Up until 15 years ago, I think it was very common for people to hack away at code for a good length of time, and once they got enough done, they’d try and compile the damn thing and start correcting the syntax errors, import things they forgot to, etc. This probably was because 15 years ago is the middle ages in computer-land, and compiling constantly was something people couldn’t even dream about on the little PCs we used to code on.
Nowadays, you can’t find more than a handful of static-language coders that won’t use a full featured IDE. C, Java, C# – other than a few freaky kernel hackers, I doubt anyone does real development outside an IDE in those languages. Today’s IDEs will tell you that you made a mistake about 2 seconds before you did. I never stop being amazed at how smart Eclipse is – and the first time I had to whip up some Java code in Vim, I felt handicapped.
What I find puzzling, is that people that are using the best available languages today, have suddenly decided that using the proper tool isn’t that important. Dynamic languages like Python and Ruby are not as easy to write awesome IDEs for, and therefore there aren’t many around that are mature enough, which is why it’s very common to see people use Emacs/Vim for coding them. Now don’t get me wrong, I’ve tried a few Python IDEs, but I’m still sticking with my Emacs. But when you use dynamic languages, you have to keep in mind you are even more prone of errors that will slip by. Even if you TDD, and your test coverage is extremely high, a typo might still get past your tests. Do you really want a production failure because you forgot to import an exception? (And do you really want to upset Agnes?)
About 2 weeks into my decision to stick with Emacs I started searching for simple tools that will protect me from my stupidity. It takes 10 minutes to find and install flymake with pyflakes (Python tool) support. Presto! No more typos in variable names, no more useless imports lying around. What surprised me is that a lot of my teammates, which I have respect for and are good programmers, did not use any of these. Time and time again our continuous integration system will report an error on a file and once I opened the file Emacs would show me the bad line marked with red, with no way of not noticing it.
I don’t like wasting my time, and I’m sure you don’t either. Stop being lazy (in the bad way). Stop making me angry. Get out of the middle ages. Yesterday we got everyone on my team to add pyflakes to their vim. Took 3 minutes to install. The problem is that it took more time to get them to install. “Nah, Vim already highlights syntax, there’s no need for more”. Oh really? After 10 minutes of searching I found a file that pyflakes showed a real problem in, and another, and another. “Hmmm, where do I download that plugin?” Win!
Do yourself, your team and your build slaves a favor, and start using some modern tools. I promise it will be worth it, money-back-guarantee. And remember, if your team is still churning butter, sometimes all it takes is a little push (and sometimes you can plant bugs in their files).
You should follow me on twitter.
Tags: Programming, tips

It’s clear that you haven’t learned to use vim or emacs pretty well. Yes, those editors have a learning curve, but once it’s dominated they are way too much powerful than any other editors/ides (like Eclipse).
I know, it’s hard, I know it’s slow at first, but check books like Coders at work and see what other, more experienced, programmers are using.
Seriusly, you don’t have idea.
You are so awesome.
I’m thinking about creating an admiring group for you in facebook.
That Agnes cracked me!! I’m going to use this Agnes alot
and finally, I believe that this is in place – the words of the awed Sergei –
למה לא אפיינת?!
Angel – I don’t claim to be a master Emacs user, but I do believe Emacs can beat just about anything with enough configuration
Problem is, I’ve yet to see someone write a refactoring tool for Java that’s as competent as Eclipse’s/IDEA’s
I wholly agree! Stop coding in the middle ages!
The shop where I’m currently at uses VS2005, and I’m their web-guy.
I proudly unit test my Javascript code, to make sure it works on all browsers, using js-test-driver.
Before I started working here they didn’t even use version control! And they scoffed at the idea of using vcs, because I was so much younger than them. (stone ages…*humph*)
Now that they’re using version control, (and I gotta hand it too them, they picked a good one, using hg), I’m trying to convince them that it doesn’t matter what tool a language is written in as long as it gets the job done and works well.
They’re planning on switching to VS2010 eventually, and presently I’m using Eclipse to do my development on the front-end, but I get yelled at for this. What I’d like to convince them is that the tools that I’m using in Eclipse are transferable to vs2010.
And they are as they are all external tools to the IDE:
- js-test-driver
- ant (used to deploy webapps)
The reason I use the tools above is that they’re currently not using any modern tools other than hg for development.
Besides it’s not like we are using a .NET or Java-based framework anyway, it’s something they developed in-house.
leeand00 – You’re awesome for testing your code! You’re even more awesome for making your teammates use proper tools. Well done!
I know it can be hard at times, but it’s well worth it.
Good luck