Rentzsch: Programmers Don't Like to Code

by Oliver Breidenbach

Very good read. Wolf is right to point out that programmers write code out of necessity and that rewriting helps them to understand how it works. But why are developers keen to type their code? Why have visual programming languages not found a greater following? Why are text editors currently the new hype among developers despite being totally unhelpful in "understanding" and "problem solving"?

I don't know if it is still valid, but when I was studying cognitive science, research showed that typing is slow but keeps the brain nicely occupied so that it thinks it is going fast. There is a greater sense of achievement as the brain gets tired from being used so much, even if for the wrong end of things.

So, while (re-)writing code helps programmers to a greater understanding, does actually typing it give them a better sense of achievement while they do it?

13 Comments

pauldwaite
2007-02-05 00:18:33
You appear to be linking to yourself as a "very good read" :)
Oliver Breidenbach
2007-02-05 00:21:20
Oops. Thanks. Fixed.
Jacob
2007-02-05 01:21:02
It might be the case that the act of writing causes a memory to be created for the individual in a way that visual methods do not. It is now well recognized that young children learn via different methods; some need tactile feed-back some visual, some sound, etc...

2007-02-05 01:30:51
i hate pointing and clicking more than i hate typing
Alex
2007-02-05 04:53:45
Short term-wise, yes typing seems to give a greater sense of reward. But to me, it's a only 'quick fix'. Crap solutions is crap solution no matter how good the code is. To me, problem solving is more satisfying than just writing code. The ultimate, of course, is solving a problem with elegant code!
CBrachyrhynchos
2007-02-05 06:25:10
This is an argument that I've gone several rounds with other people on.


Typing certainly is a PITA. But language has powers for the precise expression of abstraction that are difficult to emulate using a picture. And structured written language (including poetry, novels, screenplays and computer programs) is an even more powerful cognitive tool. Editors with their abilities to transform draft texts add another layer of cognitive utility for the writer. (Although sometimes as a writer, I long for the simplicity of the 3-draft process I used on a typewriter.)


Especially since most modern computers ultimately execute chains of operations, language seems to be one of the better ways to communicate instructions to a computer.


Typing certainly is a serious problem. But practical speech and handwriting recognition are still in their infancy.

Sven Semmler
2007-02-05 06:31:48
I think, the reason programmers like to spend so much time in their editor is: they are not very good at the rest of their job. They prefer trial & error.


The common sense is:


1. Gather requirements
2. Create scenarios
3. Research involved APIs, Toolkit's etc.
4. Design solution
5. Peer review design
6. Code
7. Verify code against design
8. Test program against requirements / scenarion
9. Hand-over to QA


Since many are not so good at 1-5 and some companies do not even have a QA that would require to see the scenarios ... jumping into the code and iterate is the easy way. Even though it often frustrates the customer, except he has asked to be involved (had no clue about his requirements).


Just my two cents.


/Sven


2007-02-05 07:49:20
Visual programming is about creating something based on the pictures someone else has given you. Typing code is about doing whatever you want, including creating anything you want. Text editors aren't the new hype. It's how people have been programming for decades.


Typing is not a limiting factor in coding though. I don't wish I could type faster because it's slowing me down. I type a little, think about what I've just done, type a little more. Most of my time is actually spent at a whiteboard drawing diagrams or pictures, or staring at the diagrams and pictures.

Reedo
2007-02-05 08:02:44
I know that in my own experience, and it seems to match some others', I tend to start out thinking visually about a complicated solution. At this stage I'm more likely to draw little diagrams, tables, or informal flowcharts than code. Or just sit in front of my computer tracing out my mental picture of an algorithm with an index finger, as coworkers laugh. I can blame some of my (initial) bugs on a failure to accurately translate my visualizations to real code.
FT'e
2007-02-05 16:05:46
Actually, I think typing gives me the time to think about what I'll type in a moment. For me, a good editor is an editor I can use without having to think about it. The more I have to switch from the keyboard to the mouse and from the mouse to the keyboard, the more I loose focus. The more I have to look at the cursor, the more I loose focus. Thus a good editor must be usable without a mouse. And at last, a good keyboard is a keyboard I don't need to look when typing: the simplest, without any so-called media keys, is definitely the best at least for me. I took typing lessons a few years ago and the quality of the code I write increased a lot...

2007-02-05 20:06:01
Typing allows for more expressiveness. You can compose any number of concepts by combining the symbols on the keyboard. You can also write code without looking at the screen by typing.


Coding is really just another form of literary composition. Any alphabetic language or writing system is far more expressive than any pictographic system.


I think also the amount of information that one can perceive in the composition is greater using a typewritten language rather pictographic. Take, for example, an installer script that is written in a text file (such as InnoSetup), versus one built using a "graphical" system such as VISE or Microsoft's MSI. I can see what is going on in a text file better than I can see what is happening by navigating through all the various dialog boxes.


chromatic
2007-02-09 23:24:29
@Sven, how many more decades does the strict linear approach through steps one through nine have to fail before it stops being common sense and people stop believing that they just have to do steps one through five better next time?
lmf
2007-02-10 13:36:08
Dude, I have wondered many times if I chose the wrong profession because I hate coding. I love to solve problems. I hate actually writing code. This post was so dead on, it's awesome to see others with the same "problem". I thought I had programmer's block because I hate to code, or something along those lines.


Awesome.