Plenty of scientists, engineers, etc. use <a href="http://en.wikipedia.org/wiki/LabVIEW" rel="nofollow">http://en.wikipedia.org/wiki/LabVIEW</a> , and watching someone use it, you wouldn't believe how easily you can create say, a complex artificial neural network with awesome visualization.<p>So yes, being biased against a programming paradigm like visual/dataflow programming just because it's organized visually rather than textually is silly the reason disliking Lisp because of the parens is silly.
For an aside, I like the comment about the developer being unapologetic about using Delphi for development.<p>The unfortunate thing about the argument for what makes a programming language productive (dense language or the libraries available to it), is that the argument is strongly rooted in open source, IMO, where the tools continue to be mostly deficient in the productivity department compared to working in a language environment like Delphi, where millions and millions of lines have held up to commercial rigor.<p>Delphi is a counter example to show that no matter what advanced language features are available to the programmer in another language, lisp, haskell, clojure, whatever, these languages still can't compete under commercial conditions with Delphi in a native win32 desktop environment. Delphi is the hemi engine of the legacy world, and would be a great candidate for integrating some advanced features to make it a good tool for ramping into a more advanced functional mindset.<p>I've written my share of Delphi code, and I've been sick of declaring variables, sections, typing begin/end, and writing a host of other tiresome cruft for a long time. But for development speed it really is hard to beat. Programmers who have been successful in the windows world expect the total package - language, libraries, dev environment. Maybe none of the three are perfect, but together they still make the alternative of just language and libraries mostly unacceptable under commercial conditions.
Citeseer is down at the moment so I can't find the paper on the big hurdles any given visual programming language has to deal with.<p>I've used LabView a little, wrote the backend code for a startup that was trying to create an ambitious visual language and have a friend doing a Phd in the field (which is where I got the paper reference from).<p>The biggest problem I've found - and it's on the list of problems from the paper - is that there's a mental cost associated with the layout and wiring in 2D. It starts off as fairly negligible but eventually becomes a huge monkey on your back. An auto-layout feature can alleviate that, but then you've got to keep track of where everything is.<p>Some people seem to be immune to this, so I guess the proportion of people effected (along with the average size of a logical unit in the language - function, module, program, etc) might in turn effects the potential of a visual language to get mindshare.<p>Talking to a number of people who've used / written / studied them about this problem over a couple of beers the best solution we've come up with is to have a visual language for beginners and a textual dataflow language for the more advanced users, and the ability to convert between the two for the people making the transition.<p>Thoughts?
Honestly, with such a bird's-eye view of vvvv I'm not entirely convinced it's a revelation. It obviously is good for rendering pretty pictures, and the ease of concurrency is a big boon. I'm not convinced, however, that the language has the flexibility you'd find in a general-purpose language, but I'd like to be proven wrong. Has anyone written a webapp in it? A network multiplayer game? I don't mean to denigrate the value of domain-specific languages, but the code snippets only convince me that it's a cool tool for its intended applications.<p>Looking at some of the less-than-elegant "source code" examples on their site I see how there doesn't seem to be anything that magically restricts people from writing spaghetti (pun intended) code.
Check out my visual programming approach to teaching binary search tree algorithms:<p><a href="http://opsis.sourceforge.net/quals/project.pdf" rel="nofollow">http://opsis.sourceforge.net/quals/project.pdf</a>
I find this fascinating, I've always been a visual person and drawing my code on paper with connections and such has always helped. I will be looking into this.