Here’s an excellent post discussing the difficulties with current programming languages and approaches to teaching programming. It doesn’t teach what’s happening, nor do our common method names, and development environments aid learning.
It’s a very long post, but I think it’s quite eye-opening. It also shows how powerful a good DSL can be, and what’s wrong with current programming languages and techniques.
It’s made me really re-think how I go about teaching my children about programming, or anyone that isn’t already a programmer for that matter.
I’d love to see an IDE with the power he demonstrates. That would be an amazing first step, but it would require either a lot of ‘magic’ or a lot of specific documentation on the underlying code.
I think it’s likely easier to develop more meaningful DSL’s to aid with creation of programs, and also to aid in understanding for other developers (or the creator after 6 months of not working on a system).