There was a discussion panel session entitled So simple a child can program it, on a mobile phone at ACCU 2007. We had a similar side discussion at a meeting of the Oxtremists and there was an article at O’Reilly called Where’s the 8 bit revolution for my kids?
This is a few notes about what I remember from the ACCU session.
Unfortunately I didn’t make any notes, so my recollection may be wrong.
I think the panelists were (someone please correct me if my memory is wrong):
- David Wood from Symbian
- Russel Winder (advocator of dynamic programming languages such as groovy, python and ruby… who later in the conference gave a presentation entitled “C++ has no useful purpose”)
- John Pagonis (Symbian OS developer)
- Jo Stichbury (from Symbian and previously Nokia-NGage)
Mary Poppendieck (Lean Software author) was in the audience and contributed a lot.
Unfortunately I didn’t make notes… a few points I recall coming out of it are:
When we were young, computers were new and it was the in-thing to be using them, but now they are old-hat and young people are used to very media-rich instant gratification consumer electronic technology such as games consoles (Xbox, PlayStation, Wii), iPods, etc.
Even if they could program mobile phones, they may not want to unless there was a very easy way to get into it with instant results. They are not going to want to learn how to write all the scaffolding of most languages just to get a hello-world application to build compared to the simple
10 print “hello myname”
20 goto 10
that we all started with.
Most programming languages are too complicated to get started with. C++ and Java require a lot of scaffolding to get even the simplest bit of code to compile.
A lot of effort is required to obtain and install the development tools and environments, so you already have to be heavily motivated to even make a start.
Dynamic and interpreted languages such as Python, Ruby and Groovy may provide an easier entry to programming.
Products such as AMOS were popular in the 80’s and 90’s allowing people to write games for Amiga in an easy to learn basic-like scripting language. A couple of developers in the room said that this was how they got interested in software development.
Someone asked if it really mattered whether young people get interested in programming. I pointed out that there does appear to be a shortage of new programmers, particularly in the games development industry. Most programmers are from our generation.
Mary made the point that young people need a demonstration of why it is important to study things. For example if you want to write cool computer software in the future then you need to learn certain subjects in school. It is difficult for young people to be motivated to learn certain subjects like Mathematics, Physics, Computer Science, without being able to see a direct use for them. She provided an anecdote about how when she worked at 3M they would provide talks at local schools with visually exciting demonstrations (eg. liquid nitrogen) and then said that if you want to do this when you are older, then you’d better do well in your science subjects!
Russell pointed out that IT education in schools is appalling, teaching people how to use office tools rather than what computers can be used for.
Mary also pointed out that you shouldn’t underestimate a child’s ability and provided an anecdote about her own granddaughter’s achievements in discovering how to create a report about a scientific experiment, where she had managed to work out how to locate photographs and other resources and edit them into a document without ever having been shown how to do so.
There was some discussion about languages such as Logo.
The discussion went on to the idea that customization of your phone with simple tools could be the first step to getting someone interested in programming. This could be something similar to the MS-Vista gadgets to provide useful little utilities. These may have the cool factor of being able to show off to their friends.
When someone reaches the limit of a simple visual development environment they may be motivated to find out more and learn a proper programming language.
It was an interesting discussion, but no real conclusions were made.