I hate Integrated Development Environments
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.
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.