More magnetic reviews here.
Programming doesn't happen by mistake, it take people. People that know it exists, people that know they can do it, ultimately people who have managed to catch the bug. In a world where computing is ever more commodified, I take great joy in introducing schools and young students to the simple accessible wonders of programming outside the box.
I was fortunate to grow up in the 1980's, it was literally a time of wonder for home computer enthusiasts and video gamers. I was fortunate enough to witness the great chip crash and I mean that with sincerity, it was a wonderful thing being able to buy games for USD 1.25, just very bad for the companies involved.
The 1980's were wonderful for a number of reasons, whilst growing up in America I was one of the first people I knew to get a Nintendo Entertainment System (NES). With its genre defining games that went on to form franchises still recognizable today, it captured my imagination. I am sure you have all come across the Mario Bros., Zelda and possibly even Metroid in one of it's many incarnations.
But why was this such a successful time for new and inventive ideas and really good games. It comes down to access. In the 1980's, earlier than when the NES hit the shores of America, there was a home computer boom that I experienced when I returned to England in the late 80's. All of my friends had hand-me-down video game machines from their older siblings with keyboards attached. They were amazing, more amazing than my NES and for one simple reason.
Commodore 64 Sinclair Spectrum 2a+ BBC Micro
What do these screens give you besides nostalgia? They give you one of the most important things, right there as soon as you switch them on. They give you a choice. A choice to either load up software made by someone else or to become a programmer yourself. A choice interestingly the original Japanese version of the Nintendo had, it came packaged with a keyboard and a BASIC cartridge, a choice that didn't survive the perilous journey to the Americas. A choice that over time and in the name of convenience has been systematically taken away from you.
To program one of these machines like the BBC Micro you simply turn it on and start typing.
To program one of these machines like the BBC Micro you simply turn it on and start typing. Try that with its modern counterpart the ubiquitous Windows PC, the difference is staggering. It takes around fourteen steps before you can type in code. And if your doing it for the first time it can take over several hours to download Visual Basic or other Microsoft environments, to configure and download all the patches to get it working. I use Visual Basic as an example as it would be considered a native programming environment when comparing it to BBC Basic.
And it wasn't just very geeky computer enthusiasts that were programming either, in the 80's there was a strong sense of "everyone could program" there were books for every type of programmer, Ladybird a manufacturer of children's books even made a book to teach very young children programming.
Look in a video game magazine of the time and it didn't just have wall to wall advertisements of games and software. Here and there were snippets of code to make a game that was similar to the games being talked about in the magazine, try finding that in a modern video game magazine. Today's equivalent, if it existed would be Objective C for kids, ABC# Sharp for kids and Flash For Fun. Probably not going to happen.
Slowly as the 80's drew to an end we moved into instant culture. Instant meals from out microwaves, instant pictures from our cameras, instant everything. Quality slowly decreased in importance, but no one noticed or cared as long is we got what we wanted fast.
For these would-be programmers the ones still had that urge to create, the new generation that were used to the homogeneous point and click operating systems, they created the game engine. Yes, they had existed in the 80's in the form of the Shoot-Em-Up-Construction-Kit (SEUCK) on the Commodore 64 but these new engines were more to do with neutralisation of ideas. Rather than witter away the hours coding you are added to an already existing commodified framework. Rather than develop your own ideas you add to someone elses. They even sold additional pre-loaded ideas in the name of creativity. Have a look at (Good 2009) people signing up to add levels to LittleBigPlanet. This creative water sees the industry literally controlling the flow of your ideas. It's the perfect system of neutralisation.
Although these victories are taking place, it is still extremely difficult if not impossible for a beginner programmer to get into programming on something like the DS without a lot of technical know-how.
All those kids, teenagers who want to create games suddenly could at a click of a button. Quake, Second Life and now LittleBigPlanet swallowed up all of those creative impulses instantly. The problem with these engines is unlike SEUCK on the Commodore 64 there is little or no alternative. Try programming from scratch on a PlayStation 3, or a PSP Go, or a Nintendo DS or a Wii. Tricky.
Companies spent thousands even millions in the name of "anti-piracy" and "quality" to lockout people from creating. Nintendo had a famous court battle with Tengen a subsidiary of Atari after they tried to circumvent Nintendo's 10 NES Lockout chip.
There have been a number of devices created which can be used for home-made 'home-brew' software, and it is an unfortunate situation that these devices are also widely used for piracy, but it's like anything in the world, it can be used for good or bad. No one stopped blank tapes in the 80's and they were used to copy games and music, no one stopped the sale of blank CD's and yet we can still buy them, and yet Japan has successfully outlawed these devices. Strange when you consider Nintendo's now CEO himself was a bedroom programmer who showed promise in his early game demo's he made at home.
"During his high school years, Iwata already produced electronic games at home as a hobby. He wrote several simple number games, which used an electronic calculator and then shared these creations with his schoolmates." (Wikipedia 2009) equates to hacking a device to make games.
Fortunately both Spain and France have ruled in favour of the home-brew community in terms of outlawing the cartridges for development.
"Moro ever, it could have bigger implications for developers and the like because Nintendo is deemed to be 'illegally' protecting their system by locking users out. Therefore, developers should not actually require separate development kits and should just be able to develop applications as they wish on retail versions of Nintendo's consoles. " (Malloc 2009)
"The judge further ruled that developers should be allowed to create applications for the platform at their own free will." (Ivan 2009) also see (Bufet Almedia 2009).
A lot of these would-be programmers I would argue simply don't know that 'they are allowed to' or 'can' program.
Although these victories are taking place, it is still extremely difficult if not impossible for a beginner programmer to get into programming on something like the DS without a lot of technical know-how. Amusingly Iwata himself is now feeling the pressure of competitors' "open to development" policies. He recently commented that "The features of the iPhone and the DSi may overlap. But if we look at our differences, the areas of overlap are small. If, in the future, this overlap becomes bigger to the extent we should call it direct competition, I have to be more careful. I can't bring out the iPhone during an interview anymore. Today, I don't worry about it." (Buchanan 2009).
While new successful start-up company Iron Will Studios producers of Outer Empires and Kingdom Game and have gone straight for the iPhone because it's accessibility, their is no doubt the competition between the two devices will grow. Paul Hutson, a former manager for British Telecom, describes how he got started. "I bought an iPhone about two years ago and decided the programming looked pretty easy for it so I set up a little game that I'd thought of" (Haugh 2009). Both Outer Empires and Kingdom Game are continuing to sell well, and this type of overnight success is only possible through an open development policy like Apples. Maybe Nintendo and other hardware companies have shot themselves in the foot by trying to be over protective.
Back to game engines, in a recent interview Media Molecules Paul Holden boasts an impressive 1.3 million levels have been created by users (Martin 2009). That's 1.3 million ideas, which now have the LittleBigPlanet branding. 1.3 million ideas that aren't really owned by their creators. 1.3 million ideas that the creators don't feel the need to re-create in their own game, because they have already done it. 1.3 million ideas that may not generate a single new game.
Those who persevere with the creation of software are often met with abstract programming environments like Visual Basic or C++, even more pointing and clicking. Pointing and clicking that is arguably at the expense of quality, originality and optimisation. Any one who has ever compared the code generated by Microsoft Front-page and making the same web site in notepad will know exactly what I mean. We are sacrificing speed for ease, anyone else alarmed by this short cut. Amusingly yes, the same people selling us the software.
As Don Box from Microsoft puts it "do people want to draw pictures [to program]? Sure, I guess. But if you grew up programming when I did, you did it in text. And I think we lose that at our peril." Herb Sutter was quoted to say "I think we have maybe five to 10 years left [with Moore's Law]Optimizations will get very, very sexy again, when people realize how we pay for abstractions." (Lai 2009)
Both quotes from reputable programmers, programmers who work for a company that are shipping out this abstract programming environment. I want what they use, and in the 1980's we had that, we could program on a BBC Micro in assembly language on the target system. The same tools that the top programmers were using to make those amazing games. All these elements, which arguably emanate in popular culture are now having an impact on education. It's a simple fact we are slowly losing programmers.
"Across the UK, the number of students taking an A-Level in computing fell from 5,068 last year to 4,710 this year, with just 0.6 per cent of students taking the course." (Kobie 2009) And according to a Microsoft report, the number of students taking computing courses at A-Level has fallen by 43 per cent between 2001 and 2006. One reason for the drop could be that students see IT subjects as 'boring'." (Kobie 2009)
This programming choice is bring given to young people in Asian countries in the form of a very retro computer.
A lot of these would-be programmers I would argue simply don't know that 'they are allowed to' or 'can' program. In the computer and video game workshops I run with children aged 8-13 when asked where do video games come from the most common answer is "Tesco's". Even the children with the most amazing imagination for creating games themselves cannot believe that their are people who make games. They leave the workshops with a entirely different perspective.
If they don't know they can program, or even that such a subject exists or what it's like, no wonder they are not going to choose it. If they have not had any experience with it or at least any positive experience with it, it's no something they will choose to return to. In most cases in the schools I have done projects with computer programming is not on the curriculum. It's something you magically learn over the summer before starting your computing A Level.
Schools largely teach what is termed ICT "Information Communication Technology", they teach you how to use Word Processors, Spreadsheets and Graphics packages. Some teach multimedia, web design and some but are very rarely teaching programming. Odd considering the size and the growth of the industry especially in the UK.
For English we are taught to read and write so that we might copy what we have read or create new things. For music we are taught to listen and play music so that we might copy what we have heard or create new things and for ICT it's largely to use computer to transpose existing skills. They teach you how to use software packages, they teach how to transpose and existing skills like writing, maths, music or art, when it could be used to create an entirely new skill.
I have been asked frequently when I believe children should learn to start programming. I say as soon as they can read, I usually get strange looks at this point. Consider this, they learn to walk and they will use it for the rest of their lives, they learn to read and they will use it for the rest of their lives, they learn maths and they will use it for the rest of their lives. They are already in a world full of computers, computers which will soon outnumber them, teach them how to compute and they will use it for the rest of their lives, even if they don't they will at least know they have a choice.
This programming choice is bring given to young people in Asian countries in the form of a very retro computer. Remember that Nintendo the Japanese version with the keyboard and BASIC cartridge that is now over 26 years old that never made it to America. A 6502 processor for you techies. That antique is now being cloned, a 26 year old computer is being cloned, an outdated 6502 machine is being cloned and I must add illegally, to teach BASIC. PLAYPOWER is a USD 10 NES clone with keyboard complete with a version Nintendo's Basic. Basic because it gives you a rudimentary understanding of computing. It lets you develop computational thinking and map problems on to a computational framework. They are so desperate to get ahead they are willing to break the law to do it and they are willing to learn on antiquated technology to do so.
The just need to know they have that choice to program, and what that choice really means.
It's not all doom and gloom, yes it's pretty bad, but we still have a choice. Their are amazing easy to install pieces of software that you can use like Scratch a visually orientated programming environment that allows you to output to a web page and edit other peoples programs. There is also Game Maker which although is a game engine can be tailored to make all kinds of games and can implement some basic code. Game Maker also differs in that it is suitable for children whereas for example Doom, Quake and Second Life are by and large more adult orientated or violence based. Then there is also Processing which can be run on most OS's MAC, Windows and Linux can build a standalone executable and run in a web-page. Processing has a very strong graphical style, can also be ported to Mobile Processing for mobile device development and Arduino to control motors, solenoids and robots! It's also all free.
Microsoft themselves have just released Small Basic 0.7 which comes in a easy to download 4.3MB easy to install package, albeit the output options are little limited, it's a start. So maybe things are changing. However please don't make the mistake, there won't be a magical piece of software that comes along and solves all these problems, innovation and creativity won't be in a drop down menu, new ideas won't come in the form of a plug-in. Programming is like an useful skill, it's a craft like plumbing or bricklaying anyone can have a go, but it does take time to master you can't simply point and click your way through it. The main problem I believe we have at the moment is access, not to computers they are everywhere, I have seen room upon room of computers with no one sitting at them, the problem lies in access to the world of programming.
I been have fortunate to see it time and time again, people learning they can program, most of them only need the basics to get started. The will then hunt out online tutorials, read through forums and learn for themselves once they get that bug. The just need to know they have that choice to program, and what that choice really means.
With so many different perspectives it can be hard to know where to start - a little like walking into a crowded pub. Sorry about that.
But so far we've not found a way to streamline our review output - there's basically too much of it. So, rather than dilute things for newcomers we have decided to live with the hubbub while helping new readers find the columnists they will enjoy.
Our columnists each focus on a particular perspective and fall into one of the following types of gamers: