There seem to be a growing number of visual programming languages available these days. Kodu (below) is for creating games by younger people. It’s “When"/Do” model is simple and easy to learn. It’s a bit limited though. It is really a domain specific language for games.
Scratch is also a visual language that is widely being used to teaching young people, especially in middle school but as old as college. I love it and it has some wider applicability. And a richer language to some degree than Kodu.
Alice is the big elephant in the room in terms of visual programming languages for teaching. But it too feels limited to its domain and development environment. Great for teaching/learning but no one is going to program an accounts receivable package in it. BTW is it just me or does Scratch’s blogs look cooler and more fun than Alice’s blocks?
It's not for lack of trying. I mean, I've been in the programming industry since early 80's and there's a line of dead bodies of those who've been trying to produce a visual programming language. They've all run into the same wall, which is complexity. Visual processing is great for a lot of things. Presenting complex control systems isn't one of them.
Those look super lame! LOL
We are looking at scratch as a programming language for the 13-15 year olds, it is amazing what you can do with it. see code.google.com/.../scratch-unplugged which goes well with the what has been developed in new zealand and advertised on google http://csunplugged.org/ which introduced computer science to a younger audience. I for one plan on using this a lot.
You can also include CiMPLE - A VPL for robotics ...VPL are a layer of abstraction on top of programming languages. VPL as a DSL is very effective in addressing and cataloguing the usage senarios. For general purpose language pictorial representation wouldn't cut it for sere amount of use cases/senarios one will have to cover.
Search the academic literature for end-user programming, and you'll find a litany of endeavors, some very creative.
The spreadsheet is actually probably the most popular visual programming language. The reason you don't see more general purpose is because there's the extra abstraction causes more mental tax.
What about LabVIEW? It's used a lot in academics and research.
I am not sure a general VPL would be that desirable in the present programming hardware environment. The problem I have with all these languages (I have used Scratch and Alice with kids quite a bit) is simply monitor/screen size. It is difficult to see the flow of the program when all you can see is physically small pieces. Alice has so many sub windows that the work area is too small on a standard sized monitor. It really affects the kids because they have not learned to make a program into good sub-modules yet. Scratch has no method of making comments. I stress commenting a program and Scratch takes that right out of the game. A large program without comments can be a royal mess, especially when I have to figure out what a procedure is doing. It seems funny to have the size of the monitor be a factor when working with a language but when you consider that these are VISUAL programming languages it sort of makes sense. Small Basic is almost VPL like with the way its IntelliSense works. I think the VPLs are also much slower to program in. The programmer has to go find the code block needed as opposed to just typing. I think typing is faster than mousing. (Mousing? I need to get a copyright on that word.) I really like VPLs with kids; they are simple to manipulate, can do some cool stuff easily (games, drawing, animations), and they really tempt kids into programming. I can really see VPLs taking off when computers graduate from their present antique form of keyboard/mouse/monitor to a large screen built into the desktop and the mouse is either gone (touch screen) or a little device on the tip of each finger allowing multiple manipulations. Combine multi-finger mounted mice with a language like Microsoft VPL and programming would be like finger painting in the air. Now combine that with 3-D head tracking so program blocks could be constructed in a virtual 3-D environment and the programs could run in the same 3-D virtual world we would really be on a roll. I think I need less sugar with breakfast.
Scratch BYOB attempts to be a general-purpose version of Scratch (http://byob.berkeley.edu/) and the Squeak drag and drop interface and Etoys also enable a broad range of applications.
I think the sacrifice in usability and friendliness is too significant, though, and wouldn't use any of those to teach or for my own use. I feel like once students have mastered a certain level of complexity it makes more sense to move to typing things out.