I hate Integrated Development Environments

July 13, 2007 | General | By: Mark VandeWettering

Why do people think these things are a good idea? I don’t get it.

Yesterday, I received an Arduino microcontroller board in the mail. These things use the Atmel AVR microcontroller (specifically, an ATMEGA168) and include a nice little FTDI USB to serial chip and are pre-programmed with a boot loader for easy programming. Neat!

So, I set out to make a program which blinks the led. I had avr-gcc and avr-libc installed on my machine, so I figured it would be pretty easy. After all, it was when I was doing my previous programming of these things using my old development board.

So, I go to their tutorial page. They recommend that I install their java environment. Sigh.

That wouldn’t be that big of a deal but I’m running Ubuntu. Not only Ubuntu, but Ubuntu running on an AMD64. I end up surmising that I have to run the IA32 bit version (which I install), and then run their gadget which starts the environment.

It asks me where I want to put my files. I specify my home directory. Then…. nothing.

No errors. Java seems to be working hard, but to no visible sign of anything good being done.

So, I modify the startup script to “strace” the java process. It spends minutes stating directories that aren’t there. Minutes and minutes. Minutes and minutes. I have a home directory that is full of junk, so I’m not completely surprised, but I’m guessing it is in some loop caused perhaps by an errant symbolic link. I tell it to use an empty subdirectory of my home instead.

Bingo.

Elapsed time: about ninety minutes.

Now, I’ve got an environment. I’ve got the pleasure of using an editor that I don’t like. Of having a build process that is completely inscrutable. Hidden config files. If I simply want to download code into my chip, I dont know how. Bleh.

All that IDEs do is make it possible to sweep ugly things under the rug, rather than fix them. If you want to compile helloworld.c on a typical unix box, you just type “cc helloworld.c”. That’s it. The simplest case is simple.

I want makefiles. I want to edit with vi. That’s it. I can do the rest of it myself. Why do people think they need to setup the workflow for other people?

Thus concludes the rant for the day.

[tags]Arduino,Rant and Rave[/tags]