It seems like the concept of visual based programming (think visual basic, or drag/drop components that make code...) keeps on reappearing, do other hacker news visitors ever think it will truly succeed? It always seems to be limited imho, but the idea never seems to die, wondering what others think...
It already has succeeded in one very limited area: GUI component layout. People use XCode/Netbeans Matisse/DreamWeaver all the time to build their UIs.<p>It fails in other areas because code is remarkably info-dense, and if you split that out into individual components, it takes a huge amount of screen space and visual manipulation for even simple subroutines. I encourage you to take a simple function and draw out the parse tree for it. It's surprisingly large, with lots of different node types all strung together in unusual ways. Think about how much people complain about the parentheses in Lisp; now imagine that each set of parentheses is a box on screen.
We find visual based programming in the form of CAD used in construction, aviation, semiconductors, etc. They are big complex programs and, of course, expensive. If you can use visual tools to layout billions of transistors, then you could use it to write programs. But ... the techniques for moving between levels of abstraction in software haven't been understood yet. Systems like Scratch and Alice provide visual programming, but quickly become tedious for all but the simplest programs because they don't allow us to introduce multiple levels of abstraction. The CAD systems used for semiconductor design encompass hundreds of different views, each for addressing specific engineering issues.<p>There is quite a lot of research going on with visual programming, but the return on effort in most cases is most discouraging.
Because it is a crock of shite, that's why.
Ask anyone who ever used an actual (general-purpose) "visual programming system" for any (nontrivial) real life task. I have extensive experience in one, and a little in another, and both suck balls.
The problem is that, while the diagrams you are constructing might look fancy and intuitive to a layperson (i.e. your pointy haired boss), they do usually not help you to structure the complexity of the task at hand in any meaningful way. Usually, they make everything worse.
Having said that, there is a rather big exception: Domain specific visual programming systems, if they are well designed and the problem domain lends itself to it, can be quite useful.
Syntax is the easy part. The hard bit is abstraction, as proved by FizzBuzz[1]. The core syntax of a language like Ruby or Python can be learned in a couple of hours. Learning to write useful, maintainable software takes years.<p>How do you create an intuitive, visual representation of recursion? Iteration over an array? The task isn't creating a visual representation of current programming paradigms, it's creating a whole new conceptual approach. I'm not sure that such a thing is even possible.<p>[1] <a href="http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/" rel="nofollow">http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-dev...</a>
A visual language called G exists. It is forms the backbone of LabVIEW (a product of National Instruments [NI]). You could use it like any other programming language to solve problems. IMHO it is quite powerful. However, LabVIEW's real strength lies in providing an easy interface for data acquisition from cards, again by NI, specifically built for the purpose. LabVIEW is pretty much ubuquitous in university labs.<p>Edit: There is also Agilent VEE.
I like the idea of using a web-based interface for tasks that are normally done in framework code: Altering data structure/models, etc. Drupal already has this (CCK), but it's not exactly a lean/small framework, so it's not the ideal solution unless you actually need the CMS feature (the ability for non-techies to edit content on the website).<p>Anyway, I think a framework that includes a web-based data handling thing might be a success.
The same reason visual writing hasn't caught on. Our brains are wired for textual language. It's generally hard to express highly abstract ideas with just pictures.