My 10-year old has been on me to teach him how to program for a while. After an abortive attempt to start with logic and flowcharts, I've decided to use a language that provides instant feedback. I want to use Lisp. I may choose to use Ruby, but I'm pretty sure it will be Common Lisp. Reason? I want my son to think logically before procedurally or OO-lly. I want him to design bottom-up instead of top-down, which is what the procedural languages practically demand that the programmer do.
What I do know is that you have to spend time on the editor as well as the language. If the programmer has to fight the editor just to get hello_world.* to work, then the programmer will associate programming with frustration. That's bad.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?