Programming on paper
I know that Edsger Dijkstra preferred to write his papers longhand:
http://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1300.PDF
I was wondering if it would be possible to write a complex programming project in longhand on paper until everyone in the group signs off that it is bug free? Has anyone ever tested this? I am just curious what would happen. Thank you.
Years ago, I worked at Starbucks and carried with me a notebook where I wrote fairly sophisticated programs including an Oberon implementation and a core image analyzer for CMUCL.
My hand-written code is in a human intermediate language that's more hand-waving than actual code. I write the difficult parts, but all boiler-plate, syntax and other stuff are not there. I prefer either drawing pads, or ruled notebooks with very thin and very light lines. Get a spiral notebook as well; typically I only write on right hand side pages, to allow me to tear a page if I want, and to put a diagram on the left side if I need to draw something, or I get in the flow and need to spit out a few chunks of code in a spastic moment.
For me the paper would have to be very stretchy, I tend to go back and insert stuff. But ... years ago I had the privilege of working with one of the most awesome designer/programmers I've ever met. We would argue and sketch away in a meeting room with huge whiteboards on three walls. When we were in agreement we would go off and code and document the stuff, wiping off the parts as we completed them. When the whiteboard was cleared, we were done with that module/class, whatever. Then we'd attack the next module. Wrote an all-of-business custom app (think ERP++) for our client in about three months. Don't think we could have done that with paper.
A TA in the one and only Comp Sci class I took at the U of Mn was pretty much a walking Scheme interpreter. So I imagine there are individuals who could write reasonably error-free code on paper before running it. I couldn't (quickly) find any references to people who have tried this on any larger scale, though.
Sounds awesome to me... I wonder what would we all IDE autocompletion slaves do. I actually had to once write an entire grails project in EditPlus. No auto completion or fancy refactoring of IntelliJ just because the company would not spend the money. Is Joel listening?
I tend to debug on paper fairly often. I print out a pile of code and go off to a quiet room and digging through it seems to make more sense to me sometimes than staring at the monitor does.