Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

  "Visual Programming" helps with learning, thus comprehension.
how do you know?


I know because I've done some work in Max/MSP (specifically, in Max4live). Visual programming makes it easy to experiment and try new things. On top of that, the visual programming systems I've used (mostly Max and Synthmaker, but I've tinkered with one or two others too) have had far superior interactive environments than most textual programming languages. Personally, I find the Max environment much better than both the Python and Clojure REPLs (these are currently my two most used textual languages that support some form of interactive programming). Max also has a really convenient debugger which visually shows you how data flows through your program.

My ideal programming system would let you program in both textual and visual code interchangeably (and ideally let you convert one to the other at will).

As an aside, one observation I made when interactively programing in Max is that one of the things that I find most useful for experimentally developing is the ability not to name things. I find textual languages are pretty bad at this: you have to name functions, you have to name variables, you have to name structs/classes - in a visual language, you can usually leave things unnamed. While this would be bad practice in a finished program, it is incredibly convenient while you are trying out ideas before you've committed to a solution and the fact that you can visually see where the data flows, I find its nowhere near as confusing as, eg, anonymous functions or badly named variables in textual languages.

Having said all that, visual languages are far from perfect and are unlikely to ever replace textual languages, but I do believe that a visual language could be created that solves most of the problems with existing visual languages that would, for a large class of programs, be better suited than textual languages alone (certainly if, as I said above, you could mix and match visual and textual at will).


For one, a text-based programming language must be learned using separate documentation or instruction, as the possible commands are not obvious. In a visual programming environment, the available commands are discoverable within the development environment.


A visual environment for a text-based language can get you a long way. Intellisense makes learning a lot of things about a new language without any external documentation very practical.


  the available commands are discoverable within the development environment
only by greatly limiting the available commands. a turing machine would be easy to implement visually, wouldn't it.


I suppose I should qualify that:

Visual Programming gets you to a point where you can "use" the language faster. I appreciate this isn't the same as pure comprehension.

My original sentence is a little off.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: