READY.

That is the prompt the Commodore 64 gives once it has been turned on, immediately it is there to be programmed. Almost always, the simple instruction to LOAD something was typed, bypassing this environment to play games or load other software, yet there was that moment of exposure, triggering that moment of curiosity that myself and many others found drew us into programming. We could tell the computer to do stuff.

Computing environments are very different now, and if we were to look at it from a usability perspective this could be considered a good thing. No longer does anyone need to type in the seemingly archaic instruction to load a program or file off a disk, it’s all delivered through intuitive mouse pointer and windows. This has been further abstracted with iPhone, iPad and other touch screen mobile computers, no longer do we need to be aware of the technical underpinnings of how our computers are working when we’re using them. Touch the icon and the app we want launches with the data (that is, photos, status updates, movies) we want to work with.

But I wonder if something has been lost, that initial magical exposure to its underpinnings. Computers no longer boot up into a programming language, coding tools aren't typically installed. David Brin talks about the simple ‘type it in’ programs in maths books (and magazines as I remember) that can’t be typed in anymore, a frustration in teaching his son the fundamentals of programming languages.[1] While Apple has taken care to curate a developer eco system, this is unexposed to non-developers. (while you can get the SDK, you can’t develop on your own iOS device without payment to Apple or Jailbreaking). Even Android is not immune to this lock down. The largest mobile computing (device based) platform will be made largely of free software, but we won’t be able to modify it due to locked down hardware.[2] How do we expose the possibility that their app can be there too?

The web has always had a much stronger emphasis on freedom than on device platforms. The barrier to entry is low, providing you're willing to learn the knowledge, crack open a text editor, write your content and upload to a web server, from where it's available on a multitude of devices. There definitely seem to be stronger online communities around web programming technologies. Mash ups and other services still expose some of the underpinnings letting you add custom code or showing you how it works, even text forms on the web will often allow and expose underlying html, Facebook has a custom code application, Twitter accepts colour codes for custom profiles. These little elements chip away at the looking glass one little bit at a time.

So how will the next generation learn about programming in the future? How sad will it be when learning to code is something that is only started in a college lab to learn a career, and not born out of the artistic nature of hacking. I think the web provides part of the answer, as a free (as in freedom) runtime environment and distribution space, but what about development? David Brin gave his son a Commodore 64, and I think that there is room in the market for a simple development computer. This would be a sort of my first hacking toolkit, that could boot up into a programming language such as Python and alongside this could be simple web development and deployment tools to share any developed programs with the world.

Exposing the ability to apply code, and bringing about this inquisitiveness is key. It is essential that these underpinnings are still available and accessible, and that we have the means to expose them ourselves. This means fighting to keep developer tools free and more importantly accessible. It means making sure ‘view source’ still exists on a web browser, and simple code hacks can be published to show how to make a computer do something, and that anyone has the means to apply it. This is to ensure that the magical spirit of enquiry, that the computer can be made to do something, will continue to provide a creative spark to the next generation of programmers.

Addendum.

Since writing this in 2010, two very interesting developments have occurred. First is the soon to be launched Raspberry PI computer, a cheap ($25) computer that runs Linux and boots into a programming environment, aimed at the education market. The second is the campaign in the UK to teach programming in schools. Both these projects are deserving of support. I do worry though about the possibility of them being co-opted, I often hear that the reason to teach programming is to serve the needs of business. I wonder if the ethical side of coding will be taught, will it touch on the Free Software movement for example? Its important not to forget that an important reason for coding is to understand how these machines of ours work, and so that we can change them to work the way we want them to.

Discussion[View | Edit]

Hi Andy, I like the piece. I have a similar concern - for me, the most symbolic thing has become that a modern Windows OS discourages you to look at any of the things on your hard drive, because you might find something important there. I'm really interested in how this all relates to the way computers are taught in schools. I don't think there was probably ever a golden age when kids were getting taught proper computer skills - I remember futile exercises in databasing, and exams done on paper with surreal exercises like "write a letter that you might use a Word Processor to write" (if the school could afford enough PCs for you to be using one for this test).

But you've hit something crucial - computer systems where you can't program, mess with settings and so on because you might break something are computer systems where kids won't learn how to really take advantage of technology - all the GUI's in the world haven't changed the fact that sometimes you just need a nice little script! Maybe the question becomes how do we find a balance between powerful primary devices that people, in fairness, don't want to be able to break through a missing semi-colon, and actually letting people learn. I suspect that the answer is encouraging schools/parents to give any kid with an aptitude a cheap linux box to fuck about with, and a reinstallation CD!

Anyway, I guess I'd like the piece even more if it went that little bit further in pointing to your favoured solutions. Currently, you seem to identify a problem and then back up and say 'maybe it isn't actually so bad after all'!


Thanks for the feedback. It's a bit difficult as the Future we deserve pieces need to be quite short. I could go on quite a lot, so it's something I'm revising. What I'm trying to say is that essentially it is about providing an exposure point, in a world where the 'computing' device abstracts everything may be better from a usability point of view, where is the part that the spark of creativity can come from that shows people that actually they can command the computer to do something, just like I could with the commodore 64.

I like the idea of purchasing a Linux box, and it would be great if (uk) IT classes brought in more programing skills rather than concerntraing on learning MS office. Even when I was at school, GCSE IT (96/97) we where learning how to write some code (Pascal I think it was, though we where still learning COBOL). But this was in the transition phase as the next lot behind me where led onto a more 'learn the software route.' I like David Brin idea of buying his kid an old 80's computer to go through the excercises in Basic. Learning first principles of coding.

What i'm trying to get accross is what is that, given that device centric platforms are increasingly being locked down, where expousre points now, that will show people that it is possible to tell the computer to do something and spark the creativity that they too can do so. I think that online, this bastion of freedom is more pronounced, and that even now web code is still exposed. Is promting these exposure points as routes in to inspire the next generation to look for the tools. And once they can manipulate the web, they can work out how to manipulate their own computer?

Or maybe what I need to propose is a more general, give us our dev tools back. Or ways of exposing the underpinnings. It reminds me of the early days when I was first getting to know the Commodore 64 and realising that I could change the text in several programs by editing the print statements. It is those little things that sparked a form a curiosity to learn what else it could do.

It's something I have to have more of a thing about to put into words, with only a day or so left.... Andybroomfield 02:01, 14 September 2010 (UTC) andyB

edit[edit source]

minor editing of typos & phrasing by catlupton 16.8.11

Cookies help us deliver our services. By using our services, you agree to our use of cookies.