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

> visual / declarative programming ... has the appeal of being very easy to get started

Does it, really? I spent the last 2 years building systems that ran off of workflows (as in flowcharts), and I think now that they don't make the big hurdle (capability for abstract reasoning) any easier at all.

They are fine to document and communicate things, but as input they are just flawed (except for some very very specific niches).



> building systems that ran off of workflows (as in flowcharts) > but as input they are just flawed

The flaw is to assume there is only one mental model that Visual Programming Languages should operate under: say only workflows for example (a mistake all VPLs I've seen have done). This is like assuming that there should only be object-oriented programming when there are other methodologies we use as programmers to form mental models such as declarative programming, functional programming, structured programming, etc.

It doesn't make much sense to code out mathematical equations using flow charts.

A VPL which supports multiple mental models is able to best represent behavior based on specific business domains. The right tool for the right job.


Functional VPLs have the same abstraction/scaling up problems as OO VPLs. The problem is that we (as human beings) don't know how to communicate very efficiently without our words, and visual embellishment is not directly useful.


> The problem is that we (as human beings) don't know how to communicate very efficiently without our words, and visual embellishment is not directly useful.

To me, this sounds like someone in the literary field of the arts telling an artist or musician that those fields of the arts are not directly useful.

Music and art? Those visual (and aural) embellishments are not directly useful.

There was a great HN post (https://news.ycombinator.com/item?id=7543691) on visually stunning math concepts. What you are implying is that coding out a mathematical equation as opposed to representing it using actual equations (http://i.livescience.com/images/i/000/036/119/original/minim...) is a visual embellishment that is not directly useful?

> Functional VPLs have the same abstraction/scaling up problems as OO VPLs.

This could be a problem with VPLs or it could be a sign of some root cause problem(s) with how we code today. Perhaps, there are better programming abstractions/methodologies that work equally well as words (source code) and as VPLs.


I'm all for art and music, but can you converse with it? They obviously communicate something that is quite different than "buy eggs on your way home from work." Could you communicate this to your SO without using words, using a picture or music? There is a good reason why pictionary is a challenging game. And just as well, artists and musicians are probably not very interested in communicating such utilitarian trivialities through the artifacts they create. Art is not meant to be efficiently communicative, but to influence us in other, perhaps deeper, ways.

> This could be a problem with VPLs or it could be a sign of some root cause problem(s) with how we code today. Perhaps, there are better programming abstractions/methodologies that work equally well as words (source code) and as VPLs.

The language center of our brains evolved 50-100 thousands of years ago, which eventually led us to technology and civilization (things really pick up after we discovered writing at about 10kya). The reason we use words for programming is that we are biologically evolved for that. Are you seriously suggesting that there might be a better way for us to communicate and express ourselves concisely?



I see plenty of words there. Visual notation is great for conveying spatial relationships, no doubt about that, and spatial layouts can work well as secondary notational aspects, there is nothing to argue about there. But would you want to read war and peace in dataflow diagram format?


I'd read a story written as a dataflow diagram if it made good use of the format.

War and Peace has been made into a movie at least half a dozen times.


How about War and Peace performed by mimes?


> Are you seriously suggesting that there might be a better way for us to communicate and express ourselves concisely?

I've never suggested any such thing. In fact, I hinted at just the opposite when I wrote

"The flaw is to assume there is only one mental model that Visual Programming Languages should operate under: say only workflows for example (a mistake all VPLs I've seen have done)."

I wrote a blog post on VPL - Snapshots (https://news.ycombinator.com/item?id=7274674). The pattern I noticed on these VPLs (of which there are close to a hundred in that list now) is that they all attempted to use a single mental model (some are flow, some are spatial, some mathematical, etc.). None of them support different mental models (say flow based when defining business process and mathematical when defining equations).

The flaw is assuming a single mental model can be used to most efficiently describe all real world systems. Given a real world system, there may be one or more approaches used to efficiently describe that real world system in a computing device. That mental model could be textual, it could be visual or it could be both.

Taking the position that no VPL(s) exist that could better describe a particular real world system better than a textual language is standing on loose ground. Perhaps a general purpose domain agnostic VPL doesn't exist (yet), but VPLs shine for some domain specific solutions (gaming engines for example).

> Are you seriously suggesting that there might be a better way for us to communicate and express ourselves concisely?

I'm suggesting that to assume otherwise is limiting our chances of growing Information Technology as a community. I'm suggesting that if we "get it right" then our programming abstractions would be equally useful and descriptive in both a textual and visual language formats.


> I wrote a blog post on VPL - Snapshots

I remember this post and participated :) I've also designed and built my share of visual languages and have been studying this field for about a decade now.

> The flaw is assuming a single mental model can be used to most efficiently describe all real world systems.

There are two things going on here: the paradigm of the language that guides but restricts its users, and the notational syntax of that language that limits its expressiveness and abstractive power. You seem to be conflating them together, but paradigm is separable from notation (textual flow-based languages are common), while notation is solely related to the textual vs. visual debate.

> That mental model could be textual, it could be visual or it could be both.

When you think about something, do you not talk to yourself? I have only my own experience to go by, but it takes some effort to call forth images and it definitely interrupts my ability to think through something.

> I'm suggesting that to assume otherwise is limiting our chances of growing Information Technology as a community.

I am suggesting that our love of words and text is biological. We also have capabilities for sensing space, color, and so on, but these are adapted more to experiencing and reacting rather than communicating. If it is indeed a biological limitation of human beings, then it would be impossible to get it right enough (though I could be wrong, and please try if you think otherwise).


> I have only my own experience to go by, but it takes some effort to call forth images and it definitely interrupts my ability to think through something.

"It (Visual Thinking) is common in approximately 60%–65% of the general population." - http://en.wikipedia.org/wiki/Visual_thinking

http://en.wikipedia.org/wiki/Autism_spectrum

An amazing lady: Temple Grandin. (https://www.youtube.com/watch?v=fn_9f5x0f1Q) (http://www.grandin.com/inc/visual.thinking.html)

I happen to lean towards visual thinking. I can see and run systems in my head. When I see a mathematical equation I understand, such as f=ma, I feel momentum and see acceleration of shapes in my head. If I can't form that mental picture, I can't do the math. It sucks because even though I can do all of that in my head, I can't remember your name. This is just me. People don't think the same way.

Now, let's considering the situation where source code is the only way to program a computer. This leads to a self-fulfilling prophecy where a majority of the programmers are a certain types of thinker. Sure, people can think using different approaches (as you pointed out: "but it takes some effort to call forth images and it definitely interrupts my ability to think through something"), but it isn't easy for them. It takes extra effort.

> paradigm is separable from notation

I guess I may be conflating them because I see paradigm as driving notation and/or notation can drive paradigms. But perhaps this is a result of how I understand things.


I'm definitely left handed, but I don't think visually very well. I do prefer brainstorming with diagrams, but I need to draw it out.

The brain is a fascinating piece of hardware, especially how it supports language. For example, I would guess OOP is more suited to human thinking because language (and hence metaphor) is supported directly in the brain while mathematics is a more recent invention that we have to "learn."

I guess there is a reason research in visual programming started the whole field of HCI. Good luck with your work!


The widespread use of syntax highlighting in code editors is some evidence that visual embellishment is at least somehow directly useful - it does aid communicating the code to the reader.


Yeah, I probably used the wrong terms there. I was referring not to flowcharts, but the way Excel is used as a "see-it-as-you-go" functional language.


I think excel is interesting because of it's limitations, and it's short feedback loops. all it's data is ultimately tabular, and it changes visually as you work with it.

That last property is one of the reasons I think that flowcharts can work in some niches (like video and audio processing).




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

Search: