[Edu-sig] As We May Think: What will we automate?

Scott David Daniels Scott.Daniels at Acm.Org
Mon Mar 23 17:57:55 CET 2009

Bert Freudenberg wrote:
> On 23.03.2009, at 10:38, kirby urner wrote:
>> I think [...] that there's a backlash against lexical coding as that 
>> means
>> typing
> Not at all, in my opinion. It's not against having to type, it's about 
> covering distance one step at a time.
> I like to compare the issue to this: When kids first start to understand 
> and speak themselves, it would be quite detrimental if they were forced 
> to use correct grammar or even speak the punctuation out loud from the 
> beginning. They will have enough time to learn that later, after the 
> basics of language are internalized.
> When you introduce the concept of programming, learning the syntax is 
> only one of the challenges the student has to master. If you can focus 
> on statements, sequences, passing arguments etc first without having to 
> introduce syntax at the same time, you remove one big hurdle.

What worries me about this is that you seem to be traveling down the
"Cornell Program Synthesizer" path.  That was a fully visual language
that intended to change the way we all write programs.

One of my most frustrating graduate school experiences was in working
with LML (Lazy ML), which defined its structures in trees.  The problem
is that humans don't see trees (insert forest/trees joke), and so the
computerand I were communicating in text.  Unfortunately, I had stumbled
into creating a chunk of code that was represented in text the same way
that the correct program I was attempting to get in was represented in
text, but was a distinct program.  At that point I fell out of love with
"programs are data structures," and began to realize that programs are
ways that humans communicate with other humans and with computers.  We
should be the masters, and I should be able to go off into a field to
look over a knotty problem.

This issue is why I am so not in love with fancy aids in generating
code; I want to read what the original programmer wrote, not the pile
of garble that got blasted out when he pushed some buttons and dragged
some boxes.  I'll need to check his logic, determine where he went
wrong, or follow and extend it to enable unanticipated requirements.
Programs are (or should be) communications about the solution to
particular problems, not to the computer, but to future humans
reading the program.

--Scott David Daniels
Scott.Daniels at Acm.Org

More information about the Edu-sig mailing list