Best web framework for non-programmer beginners (or kids)

1 points by tunesmith ↗ HN
Recently my girlfriend has started expressing an interest in programming. Just for some hobby projects, simple website ideas to collaborate on with me, etc.

As I'm a programmer, I'd like to gently introduce her to html, css/javascript, and some simple controller/model/db stuff, but as simply/gently as possible. It'd be a good excuse for me to learn something new, too - I don't think my day-to-day work in java spring would be appropriate - too huge. She started learning Ruby on codeacademy but I'm concerned that Rails might burn her out since I've heard the initial learning curve on that can be brutal.

What do you think is the best framework to pick if you're trying to introduce web programming to a non-programmer? We're biased towards a pro language that we can use on Macs, but otherwise agnostic. Also curious what you'd recommend for a kid's first framework since I have similar questions about my godkids and nieces (all in the 8-14 age range).

2 comments

[ 3.2 ms ] story [ 13.1 ms ] thread
For kids it has to be more "visual" appealing.. Check out Kudos for http://research.microsoft.com/en-us/projects/kodu/default.as... , but that is for programming.

For Web Development, i think you just need intrest and start from zero. I think your girlfriend is old enough to learn how to research things. Help her understand the documentation so she can do it on her own and get to you when she has real trouble. (eg. learn her to Google efficiently :P)

Why don't you create an controller which results things as json, give her a basic responsive template and let her develop something with jquery (eg. a todo list), that should give some basic understanding.

For your gf, I'd recommend Sinatra. Starting with HTTP basics is a pretty good idea and there's not a lot hiding that in there. You can put your whole app in a single file and expand on that later, add models etc. You might not even go there and switch to the JavaScript (CoffeeScript?) branch pretty soon, where Sinatra basically does do the REST backend.

For kids, it's a bit difficult, especially given the wide age bracket (14-year old basically can form their own startups…). I would recommend Python over Ruby there, though. No Starch Press has a good "Python for Kids" book (as far as I can tell), listed as 10+. That seems to do a few small GUIs (tkinter) and games first. Probably more interesting in the beginning.

For teaching web programming, I'd just make a simple super-framework, i.e. just a few pages on top of a "real" framework (flask?), that allows them to do the same stuff some of us did in BASIC way back when. So at first a simple PHP-like inline python (cf. eruby) template page where they can create output dynamically. Then maybe a ready-made form handler that forwards to a "result" page so that they can play with input handling.

One could theoretically do a lot of what the aforementioned book does from within a web page context, i.e. start with canvas-based games. That would really make CoffeeScript preferable, unless one were to look for an even simpler transpiled language.