Camen Design Forum


(Leave this as-is, it’s a trap!)

To delete this thread, and all replies to it, you must be either the original author or a designated moderator.

Why isn't JavaScript like BASIC?


I wrote an article some time ago ( about BASIC programming and how computers now lacked any kind of 'direct interface' to creating.

I'm here to post these questions:

* What's your experience of BASIC, on what computers?
* What things prevent a child from making use of your current programming environment / languages you use?

I was thinking yesterday about how I would one day teach my son how to program in the absence of the programming environments that existed in my time.

I was poking around with a BBC Micro emulator and found that, compared to the very limited BASIC on the C64, the BBC could draw graphics and make sound with the simplest of ease. This was all good, but it lacks sprites and only has four or so very awful colours. There's no real happy medium between old micro computers because of the limits of the hardware; we don't have something that's as rich as the BBC basic, but with the graphic capabilities of the C64 -- and even then you have an insular, sandbox experience which lacks relevance in this day and age. The code you write is largely inaccessible outside of the emulator, and there's no simple way to import content from external sources.

So I had a quick Google to look for what sorts of modern BASICs exist. There's quite a few, actually, even a port of BBC BASIC native to Windows. The problems I find with these products is that they either are too trapped in recreating the past rather than living in the present, aren't focused on the will of children as users, or are too insular and sandboxed to provide an easy and natural progression from simple to complex reality (i.e once you're done with BASIC, you have to learn something new; and unlearn some old things!)

I have had the inspiration to propose something very particularly Camen Design in approach.

How about a JavaScript API that exposes the full functionality of the browser in a manner that is as simple and accessible as BASIC?

:: Present

JavaScript is the present. Despite my upbringing, it isn't my opinion that my child needs to learn BASIC from a thirty (forty by then) year old computer.

:: Practical, extensible, progressive

Learning to code JavaScript in a simplified environment is practical. One can very easily progress from the API into real JavaScript with no hard cut-off line. JavaScript is practical as the child can make real things that work on real websites that work on real devices available to everybody. Every child should feel the power that is publishing their work to the world, just as I felt with making my own website with Geocities (Tripod in my case).

Whilst anybody with a feel for the current trends of the web can easily imagine a full-on spanking website like Code Academy, jsBin with fully featured web-based text-editor and debugging suite, I am Kroc Camen and I do not do things that way. It is over engineering that hides true knowledge away from the user. So in true Camen Design fashion I am going to explain my idea using the three principles of Camen Design:

:: 3. Let everybody else do their job

This JavaScript BASIC would be only an API and not a development environment / webapp / debugger. The child can use a real text editor and a real debugger like Firebug so that they learn how to use real tools from the beginning, instead of learning in a sandbox that does not apply to the real world.

:: 2. Solve only my problem

I want to teach my child to code, that is all. I do not want to reinvent programming, I do not want to make the latest, hippest, HTML5 web app and go on to reinvent programming paradigms. I want to provide nothing more than a tiny bridge in functionality to make the journey easier.

:: 1. Code is Art

Making code into art is about allowing the developer to use the methods and tools they want to style their code in the way they want. Providing a blank canvas and not pre-populating it with mine or your ideas of how is best to start. As mentioned before any existing text editor, web browser and debugger can be used.



Your friendly neighbourhood moderators: Kroc, Impressed, Martijn