The essential difficulty in programming is not to do with syntax. That's just the first thing an "outsider" sees that makes it seem unapproachable. The programming-for-the-rest-of-us thing has been tried more than a few times. Outside of specialized domains, I don't think it has ever gone anywhere.
Visual programming means anyone can be a coder
11–20 of 49 posts
Re: Visual programming means anyone can be a coder
#12I 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.
Re: Visual programming means anyone can be a coder
#13http://recursivedrawing.com/draw.html
Not so sure that it will really "democratize programming"
Re: Visual programming means anyone can be a coder
#14I 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…
Except that bad LabView code takes spaghetti code to a whole new level: http://img.thedailywtf.com/images/201104/labview.jpg
Re: Visual programming means anyone can be a coder
#15One of the key points in his talk that made me think about this more is that there are whole avenues of exploration that are completely inaccessible when the feedback loop is as long as it is with current programming techniques.
I think it depends highly on the kind of programming you do. The more closely related your programming is to math (e.g. engineering simulations or stats), the less likely you are to see an issue because you're directly manipulating the "stuff" you're working on. But if you write software that operates more in the human space (e.g. something like an email client), then you're acutely aware of how far removed the code is from the user and what the program does. You basically have to keep a giant mental model in your head as you code. That is a huge cognitive load that all of us take for granted as part of "programming" but why must this be so?
Re: Visual programming means anyone can be a coder
#16If 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…
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 that's the hard bit, not visualizing a workflow. And these tools deprive you the programmer of the fine grained control you sorely need or worse generate code that's so hard to read and work with that it's faster coding from scratch even for amateurs.
I love Bret Victor's vision, but because of what it means for programmers, not the fuzzy 'creatives' in the article. I know some animation guys and yes, you can visually automate things like animation now, but logic flow? No.
Though I think we should keep trying.
Re: Visual programming means anyone can be a coder
#17May be a bit off topic. But I do notice that those people who are not tech-savvy or totally computer illiterate tend to use the term 'coder' a lot to refer to us who can program. Is there a subtle difference in meaning between a 'coder' and a 'programmer'? Or is just myself being a bit over-sensitive?
Perhaps people see "coder" as a larger term encompassing programmers (where "program" would be an application), scripters (things like javascript, php, python) and maybe hackers? I'm not sure.
Re: Visual programming means anyone can be a coder
#18I've used a variety of "visual" tools for designing everything from ETL tools to synthesizers. They are great for POC designs, but I generally find them difficult to use for the complex stuff. Configuration and properties and logic are much more suited to code in my very biased opinion. :)
Re: Visual programming means anyone can be a coder
#19May be a bit off topic. But I do notice that those people who are not tech-savvy or totally computer illiterate tend to use the term 'coder' a lot to refer to us who can program. Is there a subtle difference in meaning between a 'coder' and a 'programmer'? Or is just myself being a bit over-sensitive?
I write code at work. But it's one-off or personal use programs, mainly scripts to automate some repetitive or mathematical task I don't want to do by hand constantly. Contrast this with our development staff, who write code used by their customers (internally and externally), follow a program design model, conduct meetings to discuss the program, do code review, and attend application development council meetings to make sure all the disparate programmers at the company follow the same design/development principles. They program for a living, and it's serious business. My code merely makes my job easier, but I could work without it.
I can bang out five lines or five hundred lines in any language I want, any design I want, any amount of bugs I am willing to accept, and without approval or review by anyone. I think it's important to differentiate between those who actually program and those who merely write code.
Re: Visual programming means anyone can be a coder
#20If 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…
I'm personally loving what Kahn academy is doing that John Resig credits Bret Victor's talk on Inventing on Principle (http://vimeo.com/36579366) as a major inspiration. See article where he announces and explains their in browser interaction learning of CS course material: http://ejohn.org/blog/introducing-khan-cs/
In closing to name a view limitations of most visual programming languages: the naming problem (Most parts of your system need to be named in order to be able to talk about them), text based is stronger at this. Instantiation of reuseable code is pretty abstract to do visually. Eventually all programming gets complicated enough that text based approach really is easier to work with. Not to mention all the tools you can't leverage comparitvely to text based such as version control, REPLs, etc. I guess I think visual programming is idealized and people are spending all this time learning something that isn't as useful to know in the long term compared to traditional programming because all the important platforms have much richer support for text based programming (iOS, linux, C/C++ for games). But combining visualization of code execution is the perfect balance and would lead to basically replacing much commenting with an actual intuitive visualization of runtime complex structures/state. And definitely real time feedback of tuning /visual parameters is great. In the game industry all of this is very standard and I do feel there is a little more awe for his work than would be given by your typical graphics, art tool, or demo scene programming devs. Most game development toosl for say level editing and animation are all highly visual and real time interactive. Same goes for any serious AI dev they have debugging tools for visualizing all planning for entities communication, path planning, animation states, and more.
Anyway, just my thoughts. Still think Bret Victor is one of the most compelling thinkers in this space.