Atul Varma of Mozilla Labs has a great post up, “Kids and the Open Web” where he advocates having the Mozilla Drumbeat initiative explicitly include some messaging around the value of an open web for children:
What if promotional materials for the Open Web focused on how it makes lives better for children who are budding hackers? Lots of adults aren’t tech savvy, but they know that their kids are, and if we can prove that the Open Web is better for their kids, and that they can make their kids’ lives better by choosing a standards-compliant browser, maybe they will.
I think having a Mozilla Drumbeat angle for kids is a great idea. I would add to this a comment and a question:
First, parents shouldn’t need to buy their kids a “learning system” or a “kid’s computer,” or an educational software package; everything the child needs should be easily accessible from their regular web browser.
Second, what is the open web equivalent of that Atari 400 with BASIC that served as a first introduction to programming for Atul and others? Whatever it is, it should be simple to learn and provide almost immediate gratification to the budding hacker, while still having sufficient power to command someone’s sustained attention. I have my personal opinions on this (which I don’t have time to go into right now), but am interested in others’ thoughts.
Topher - 2009-09-04 22:22
I was just thinking about this the other day. I have a 9 year old daughter who’s starting to get interested in making the computer “do things”. I’m a web developer, and I was thinking of getting her into Javascript. There’s excellent instant feedback, and it’s easy to make it do simple things and then grow from there. Ironically, I still don’t know it myself, I’m more of a backend guy. Maybe we could learn together.
lrbabe - 2009-09-05 20:05
“what is the open web equivalent of that Atari 400 with BASIC that served as a first introduction to programming for Atul and others?” That is a really interesting question. The problem is that the Open Web is composed of three different technologies that are highly interdependent. There are probably two different approach to make the Web hackable and enjoyable by non-programmers: - a high level approach which provides people with building blocks (widgets) to show what is possible to do ultimately with the Open Web, even though the control on those blocks and their interaction would be limited. - a low level approach where people are taught the basics of the three technologies HTML, CSS and JavaScript. One would probably introduce jQuery in complement of JavaScript for its “write less, do more” philosophy and the clarity of its API compared to the DOM. I’m really looking forward to see Mozilla taking initiatives on that matter. Louis-Rémi
Richard Milewski - 2009-09-21 18:52
I share Atul’s fond memories of those early machines. BASIC was the second language I learned (after Fortran 2 on an IBM 7090 that I was never actually allowed to touch). One of the keys to the success of machines like the Atari 400, the Commodore 64, and the AppleII was the approachability of the BASIC language for non programmers. While even medium sized programs written in BASIC suffer from severe maintainability issues, the language does provide a low-friction introduction to programming. I think it will take a focused effort to build a programming learning environment out of HTML, CSS, JavaScript and JQuery that is as approachable to newcomers as was BASIC. There are two big obsticles. First, JQuery depends upon the browser talking to a server, not just reading files from the file system of the local machine. Some sort of bundled local web server with a one-click install would help. But even then, getting from “Hello World” to a modest useful program in a client-server environment requires getting your head around scope and timing issues having to do with what’s happening on the server and what’s happening int he client side script. These are not easy concepts for absolute beginners still struggling with simple control structures. The JavaScript security model is the second part of the problem. Since it has no direct access to a file system on the local machine, it limits the range of tasks that can be undertaken without climbing up the client-server learning curve. (Could a local web server be built as a JetPack?). There are JavaScript implementations of languages such as TinyBASIC that might be part of the solution, but making the transition from a procedural BASIC approach to an object-oriented MVC paradigm isn’t obvious either, so perhaps starting that way just teaches bad habits that would need to be unlearned.