Any opinions/experience on the best language to introduce kids to programming with? My instinct says python simply because I personally found it the easiest to get to grips with, but I guess practically anything will do.
Lua. Relatively simple language, but super fast (lua jit rivals C). Dead simple C api, so you can hook up whatever library you want to, if you need it (say GTK or even openGl, though I assume that somebody has already done that).
Either that or some form of Scheme. Not that it is simple to most programmers but it has very few basic pieces of syntax learn and when you start programming all of it is foreign anyway.
For a fun and gratifying first programming experience consider the visual programming environment Scratch: http://scratch.mit.edu/
I haven't found a more vibrant and impressive code-sharing community and it's a simple install.
Python would be a great first language, possibly using pygame for some early game-making gratification.
Etoys is also an impressively flexible visual programming environment http://en.wikipedia.org/wiki/Etoys_(programming_language) but its visual interface has a much higher learning curve than Scratch. Kids can explore the examples and figure it out, though, and it seems to have a higher ceiling.
I'm sure lots will disagree with me, but I say Javascript.
They already have everything they need on their computer now, and can start right away at JSFiddle and with various online tutorials that run the code on their own machines.
They can do useful stuff right away and share it with people immediately. (for instance, make a little game or graphic gizmo and put it on a web site)
It not only runs on the browser, but runs on the server (node), and in various other environments (MongoDB, Windows 8, etc). So again, their skills can be put to use quickly, and will be useful going forward in the maximum number of places.
There are immense numbers of people out there using it, writing about it, offering help on sites like stackoverflow, and so on.
For kids with short attention spans, the simplicity of javascript is a big plus. Being able to create objects on the fly easily, and not really worry about types and object orientation and all that makes it a lot easier to get up to speed quickly. (yes, there is potential for them to learn bad habits, but I think a far bigger risk is that they get bored and give up)
I'm still convinced that Logo is very hard to beat for a truly first-ever language. Drawing is fun, and Logo is all about drawing. It develops basic logic in a progressive manner.