Since the arduino IDE simply invokes external tools, it should be fairly simple to create a Makefile that does the same for us, and then use the good old command line for development.
I dumped all the options that the arduino IDE invokes the compiler and other tools with, and put them in a Gnu makefile: the rules are in Makefile.arduino and an example use of this file is in Makefile. In the second file, the TARGET name is the sketch name (e.g., "Lab1" means there is a "Lab1.pde" file in the current directory, along with any other files. Other source files need to be listed (by their object file name) in the OTHER_OBJS variable.
The Makefile will support assembly source files, too.
Running "make" should build the executable and all the files needed for upload.
Running "make upload" should properly upload your program to your arduino board.
I don't yet know how to use a command-line tool to do serial comm with the program. Email me if you know how.