|laziness, impatience, and hubris|
This meditation is rather off-topic. It is not related to perl at all. It is about looking for a right tool for a job, where job is very special and dear to me: how to introduce programming to my son, 10, not boringly, but funny and interesting way.
I was looking for different options for couple of weeks, and here is what I found:
First, IMO perl is not appropriate as first programming language for 10 year old. So even if I like perl for my job duties, it's out as teaching tool. Somebody mentioned he is teaching his young brother C, so brother will appreciate perl later. I am not so sure about that - brother might decide that programming is not for him and never "upgrade" to perl.
For a while I was looking to LOGO. Defining new procedures is easy and makes sense, it has excellent turtle graphics, so programming is telling turtle how to move (and make line while moving). You can immediatelly see graphic trace.
I was even looking into languages to write text adventure games, but they were too complex (to allow creating interesting games), and programming was rather boring: plain coding - just type text in editor, stare into screen, edit, compile, run, try to make sense of statements, exactly like I am doing in my job.. ;-) So again, I was hoping to find something more visual, and more fun to interact with.
Then - bingo! I found GameMaker. It has fully graphic environment for programming games. You can create objects (not OO objects - just pictures with behavior), add your own images (even moving) for objects, active objects can have different events. "To program" means drag-and-dropping statements "buttons" into event "areas", then setting properties for your statements vie right-click. Programming is event-based, and C-like language is available to implement any complex concepts. But you will be surprised how interesting and complex games can be done by using just basic statements!
So now my son spends his computer time not killing monsters in dungeons, but designing (and lot of testing = actual playing) his own games. He tried to create pacman-like game, and he went through full lifecycle of code development: research how implement which feature, seting priorities, coding, and then debugging code (and cancelling the project). We were able together to look into example games to find out how some tricks are implemented, researching, explaining, tweaking something to see how it works and how it may change the game.
We are really programming. Heck, I was so excited myself when I downloaded GameMaker, I spent 2 hours tweaking one simple example game and playing it, and I do not recall last time I had this kind of fun myself! Yes, perl is satysfing, but not this much fun.
GameMaker has also own designers community (although I had some problems to subscribe - but it kind of works now), I downloaded version 3 month ago, version 4 was just released - so it is alive and kicking.
So if you have somebody around who might be interested in learning how to program by programming his/her own games, and spare PC (GameMaker is Windows only), try GameMaker. You'll be glad you did.
Your reward: After couple hours of hiking, when your son is tired a lot, the only thing making him forget tirednes and walk some more is: You discuss how to implement some new game, and you can tell that he is designing it in his head, and his design makes sense.
I wanted to post this before weekend, so if you are interested, you can research it over the weekend. I do hope you will have at least as much fun as I had.
Update I forgot to mention that GameMaker is free!
I am leaving to vacation for a week, so I will not be able to answer your comments. Just have fun!
In reply to Learning how to program (for youngsters of any age) by pmas