Drag and drop visual programming. Its good for kids because it allows them to quickly create things that they're used to seeing/using (graphics, animations, sounds), but still uses real programming concepts.
At 5 you're going to have to sit with her and help guide her on concepts, but she'll pick it up quick.
My son loved Scratch. The other thing that is great about Scratch is the built-in mechanisms for sharing your creations with friends. Tapping in to that popularity contest mentality can either be a motivation or a distraction depending on the kid, but it's there as an option not a core part of the tool.
I first learned some programming being 8 year old and typing BASIC programs in an editor. Somewhat surprisingly, I think it was easier to get started then than it is now, BASIC was then included among the initial program set of the computer, complete with an IDE and if you ever got to that level it included graphics routines etc. and everything was described in a single book. I now have been seriously programming for more than 10 years, including 7 professionally, but whenever I want to do some fun graphics or sound stuff I still struggle a lot to pick libraries, install them, actually make them work etc.
You know, I've been having thoughts along this line for a while too. I actually miss the days of the 8088 in some ways. A lot of the excitement and discovery of computing seems be diluted by having so much stuff to work with. The job changes somehow from one of creating to one of assembling. Not sure exactly what the difference was, but somehow it seems like it's easier to get in touch with the essence of what makes code fun when it's just you and the machine. I was more excited by my simple text-only calculator programs back at the beginning than I am by my big complicated 3d graphics stuff today.
This is not a website, but my kids LOVED The Art of Computer Programming (1st edition, when they still had the Maurice Sendak illustrations). The pictures in the volume on Sorting and Searching, though, are not recommended for kids under the age of 9.
Thank you for mentioning light-bot! I am the creator of the game and know of many teachers who use it to introduce the concepts of basic functional programming, particularly calling procedures. There is a light-bot 2.0 as well (a little more complicated and includes recursion and a form of conditionals), and there is also a new light-bot in the works (see light-bot.com). Hope your daughter enjoys it!
I always use the first lightbot as an introduction to functions. The best part is when one student figures out the concept I encourage the class to 'cheat' from each other. I have them show each other the concept of functions. Its great fun to explain to the class that not only are they learning core computer science concepts but also that it is OK to build on others ideas and work together. Concepts that the schools to their best to knock out of our children for the sake of independent evaluation.
Interesting. I particularly like how it teaches decomposition. I don't know how understandable it would be to non-programmers, particularly children. They may need a parent or teacher on hand, at least at first.
There's also [Hackety-Hack](http://hackety.com/), which was made to help introduce kids to programming with ruby. It uses a DSL I believe. I'm sad to say though, it looks like it hasn't seen much activity recently (only 2 blog posts total and last commit was a year ago).
Great point. She is definitely more in the "spark interest" camp. Probably, naturally more suited to the design field, but I want her to be exposed to coding early so she can make an informed decision, instead of being intimidated by the prospect at a later stage (like her dad). Also, she's a great leader and I've got two more coming up behind her, so if she takes to it, I might have a hacker family on my hands :)
Khan Academy is great. I was teaching my cousin (12) when I was home for Christmas and even my niece (7) was learning writing her own snippets to draw smiley faces and such. Definitely is a good resource for teaching the basics of programing (variables, functions, syntax, etc).
StarLogo TNG is similar to Scratch, perhaps a little bit less intuitive, but it's 3-D and lets you do some pretty cool stuff. I'm a bit biased, because I worked on StarLogo TNG, but not biased enough that I won't admit that Khan Academy has by far the best programming tool for kids I've seen so far. I can't say enough good things about it.
I have been teaching 6th through 8th graders Processing (processing.org). They love the creative, visual aspect of it. It's essentially Java, with a layer of ease so you can very quickly get things done. The quick code-run-tweak cycles are an advantage (similar to Scratch in that respect). Because it's Java, all the programming fundamentals (functions, variables, loops, branching, objects) can be taught - but with the purpose of creating something interesting. There are a number of tutorials and books available for teaching (see www.learningprocessing.com), and you can code entirely online at sketchpad.cc.
We're actually working on an iPad app that lets people make games.
Our behaviour system is not exactly programming, but it does teach about logic and help understand the concepts of programming. We have variables, loops, ifs.. then make it fun allowing you to make a game.