Live data from Hacker News

Visual programming means anyone can be a coder

newscientist.com

31–40 of 49 posts

Re: Visual programming means anyone can be a coder

#31
post #15

If you are a skeptic on this, I really urge you to listen to Bret Victor. I have generally been skeptical of these kinds of things in the past, but just in the last week Bret Victor's talk ( http://youtu.be/PUv66718DII ) combined with his excellent 2006 paper that digs into related concepts ( http://worrydream.com/MagicInk/ ) has made me re-think that position. One of the key points in his talk that made me think abo…

I'm skeptical because I remember the RAD tools of the early 00s that were going to let businessmen program. Oh, and who can forget the wonderful workflow systems that were all the rage soon after? There seemed to be a new one released every week. I invite you to go try MS's WWF, that's 'visual'. What a nightmare that is. They don't work. You need a programmer involved because edge cases rapidly become complicated and…

Unlike the "workflow systems" you mention, non-programmers make audio-visual art using Max/MSP/Jitter and kids make stuff using Scratch/BYOB. Both have been rather successful in engaging non-programmers of various age groups. So we do have evidence of "visual" interactive programming working well for some people.

Re: Visual programming means anyone can be a coder

#32
post #12
post #6

I don't think the audience for this exists. People with a mind capable of programming are also capable of learning syntax, especially since there are so many languages now with lightweight syntax. I fear these attempts shall remain confined to educational toys for kids, which are really cool, but I don't see them used widely in schools.

Isn't KISMET ( http://www.unrealengine.com/features/kismet/ ) an example that there is a real need for that? Game scripts are definitely non-trivial, but they are not that complex either. Also, in the case of KISMET, the programming involved is flow-oriented, where visual representations might definitely give you more clarity.

Except KISMET doesn't scale well. When I see the baroque contraptions game designers create it makes my blood boil at the inefficiency but that's the cost of a faster design->code turnaround. Runtime efficiency sacrificed for development time savings.

Re: Visual programming means anyone can be a coder

#33
post #15

If you are a skeptic on this, I really urge you to listen to Bret Victor. I have generally been skeptical of these kinds of things in the past, but just in the last week Bret Victor's talk ( http://youtu.be/PUv66718DII ) combined with his excellent 2006 paper that digs into related concepts ( http://worrydream.com/MagicInk/ ) has made me re-think that position. One of the key points in his talk that made me think abo…

I first got into programming using Hypercard on the machines at my middle school. I started out just visually building simple stacks that didn't really do much, until a teacher showed me some of the stuff older kids had built by manipulating the Hypertalk language underneath. It was like learning about the Matrix. I looked at what they did and copied it for my own stuff, eventually learning a significant portion of t…

I guess I tend to think about it like this: is the current state of the art for programming the best that we can ever do? If the answer is "no" (which it most certainly is), then what does the future look like? Great strides have been made in shortening the "edit, compile, run, test" feedback loop because it's recognized that this saps creativity and flow the longer the amount of time it is. The natural progression of that is instantaneous feedback (excitement about Christ Granger's Light Table shows this).

Once you have instantaneous feedback, the next logical step is some kind of direct manipulation. Visual programming (at least as currently imagined) may not be the right kind of direct manipulation, but there simply has to be a better way than typing text in one window and seeing the output in another.

I think lots of the comments here are thinking too much about visual programming metaphors that have been bolted onto existing programming paradigms. I suspect those are clunky because existing programming paradigms are clunky when represented visually. I'm not sure that means that in the universe of possible programming paradigms, there doesn't exist some form that is better when represented visually.

Re: Visual programming means anyone can be a coder

#34
Nothing against the artist or his project (which sounds kind of cool), but really, the title of the NS article is kind of ridiculous, now isn't it:

"Visual interfaces for writing musical notation means anyone can be a composer."

"Drag-and-drop interfaces for text composition means anyone can be a writer."

"Magnetic poetry kits on every kitchen refrigerator door mean..."

Re: Visual programming means anyone can be a coder

#35
post #32
post #12

Earlier quoted context omitted.

Isn't KISMET ( http://www.unrealengine.com/features/kismet/ ) an example that there is a real need for that? Game scripts are definitely non-trivial, but they are not that complex either. Also, in the case of KISMET, the programming involved is flow-oriented, where visual representations might definitely give you more clarity.

Except KISMET doesn't scale well. When I see the baroque contraptions game designers create it makes my blood boil at the inefficiency but that's the cost of a faster design->code turnaround. Runtime efficiency sacrificed for development time savings.

Part of that however is a symptom of Kismet's current implementation. I imagine an improved Kismet will greatly improve things.

Re: Visual programming means anyone can be a coder

#36

Earlier quoted context omitted.

I'm skeptical because I remember the RAD tools of the early 00s that were going to let businessmen program. Oh, and who can forget the wonderful workflow systems that were all the rage soon after? There seemed to be a new one released every week. I invite you to go try MS's WWF, that's 'visual'. What a nightmare that is. They don't work. You need a programmer involved because edge cases rapidly become complicated and…

Unlike the "workflow systems" you mention, non-programmers make audio-visual art using Max/MSP/Jitter and kids make stuff using Scratch/BYOB. Both have been rather successful in engaging non-programmers of various age groups. So we do have evidence of "visual" interactive programming working well for some people.

I don't deny it's a useful learning tool, my first exposure to programming was a Turtle robot you could program to draw stuff when I was 5 or 6!

It's just a very, very long distance yet from producing the kind of code that we all produce day-to-day now.

Re: Visual programming means anyone can be a coder

#37

Earlier quoted context omitted.

Intuitions and anecdotes are fine, but there is actual research on visual programming languages, as well as on computer science education. Visualizations, animations, and metaphors do help beginners learning programming and understand programming concepts. Scratch is currently probably the most well known tool for beginning students to use for programming (used with kindergartners all the way up to college freshmen).

Some people are helped by visual metaphors. Others learn by hearing; other by reading. And then there was that thread about some people never, ever 'getting it' and being as hopeless after a semester class as the first day. I've even met folks who, after years of computer classes, still hadn't figured out that code is executed in sequence.

Actually a lot of research over the past few decades has shown there is not really evidence for 'learning styles' - that one person might be a visual learner, and another an auditory learning, and so forth.

Learning isn't just about sensing (hearing, viewing), anyway, it is more about action. What are the students actually doing, and what can students do with a particular tool. Actually everything we perceive is tied to what we do (see: enactivism, embodied cognition, ecological psychology).

Many students aren't 'getting' programming in CS classes partly because it is not taught well (if instructors switched from lectures to active learning techniques, student retention and learning might double or triple, based on research in other domains), partly because the tools themselves are not designed especially well or are not designed with beginners in mind (including python and java), partly because it is often taught devoid of any context (see, situated learning and situated cognition), partly because of low student self-efficacy (what you mentioned - thinking they just can't learn this stuff), and tons of other reasons.

Re: Visual programming means anyone can be a coder

#38
post #33

Earlier quoted context omitted.

I first got into programming using Hypercard on the machines at my middle school. I started out just visually building simple stacks that didn't really do much, until a teacher showed me some of the stuff older kids had built by manipulating the Hypertalk language underneath. It was like learning about the Matrix. I looked at what they did and copied it for my own stuff, eventually learning a significant portion of t…

I guess I tend to think about it like this: is the current state of the art for programming the best that we can ever do? If the answer is "no" (which it most certainly is), then what does the future look like? Great strides have been made in shortening the "edit, compile, run, test" feedback loop because it's recognized that this saps creativity and flow the longer the amount of time it is. The natural progression o…

Any programming paradigm is going to at minimum have something like an if statement.

Say you wanted to do something when two items compare equal, in text you could write something like: if (a == b) { ... }

With a visual metaphor, you are going to have to have some way of setting up entities representing the 'if', and the '==' predicate, along with references to wherever 'a' and 'b' are defined, and a way of getting to the block of code that executes when the condition is true.

I find it hard to conceive that any kind of direct manipulation of code at this level is going to be better than text, whether you're trying to understand it or modify it.

I grant you visual tools for manipulating higher level stuff like data schema's, gui's, and so forth work well, but I'm guessing they'll always need text for the underlying logic.

Re: Visual programming means anyone can be a coder

#39

Earlier quoted context omitted.

Some people are helped by visual metaphors. Others learn by hearing; other by reading. And then there was that thread about some people never, ever 'getting it' and being as hopeless after a semester class as the first day. I've even met folks who, after years of computer classes, still hadn't figured out that code is executed in sequence.

Actually a lot of research over the past few decades has shown there is not really evidence for 'learning styles' - that one person might be a visual learner, and another an auditory learning, and so forth. Learning isn't just about sensing (hearing, viewing), anyway, it is more about action. What are the students actually doing, and what can students do with a particular tool. Actually everything we perceive is tied…

Oh come on - I personally know people who've hired readers in college because they absorb more efficiently through hearing it spoken aloud. Others despise pictures - they want written descriptions. Some the other way around.

Rationalize it any way you want - they learn faster and better one way than another, measurably.

And about bad teaching: the whole class gets it, but a few. The teacher is clearly not addressing their needs, but they are also clearly not doing it 'wrong' - many do understand just fine.

Re: Visual programming means anyone can be a coder

#40
post #14
post #7

I think that exploring alternative ways of creating programs is an excellent worthwhile activity. But while it might "open up" programming as discipline for _some_ people that would otherwise not do it, it doesn't follow that "everyone" will be able to program. LabVIEW is an example of a visual programming language that has been around for 20+ years. It is very popular in manufacturing test and laboratory application…

> However to do anything even remotely large or complex with it you're still stuck with the same old problems of software development that the general public sucks at. Except that bad LabView code takes spaghetti code to a whole new level: http://img.thedailywtf.com/images/201104/labview.jpg

Indeed! I've seen stuff much like that. Not pretty. A prefect example of why visual programming is no silver bullet.
Post reply on HN