

Programming on paper - zeynel1

I know that Edsger Dijkstra preferred to write his papers longhand:<p>http://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1300.PDF<p>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.
======
mahmud
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.

------
CyberFonic
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.

------
philcrissman
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.

------
andhapp
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?

~~~
mahmud
wrt to IDE auto-completion: when you write by hand you don't actually write
correct programs. You make assumptions about what level of detail you want:
the mundane and boiler-plate parts can be ignored, or reduced to a descriptive
function name (e.g. GET-INPUT) then the interesting parts can be fleshed out
to any sufficient detail. Usually as I progress through a project, my later
"models" of it are smaller, as I have understood all the components piecemeal.
I tend to draw a few squares when I fully understand a problem, otherwise it's
a long rambling into emacs' org-mode.

------
jwynia
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.

