Live data from Hacker News

Visual Programming – Why It’s a Bad Idea

mikehadlow.blogspot.com

91–100 of 122 posts

Re: Visual Programming – Why It’s a Bad Idea

#91
post #61

seems from the bottom of the post, since he posted a picture of scratch (which is a fantastic tool!) that the author really just has an opinion about this and actually hasn't done really solid research and measured anything by actual outcomes. The block based visual programming embraced by scratch and things like the BBS micro:bit are really good, my 7 year old son can do really cool things with these systems (also c…

One of the coolest ways to learn programming I've ever seen is the Snap! visual programming language, which is written in JavaScript and runs in the browser.

Snap! is a visual "blocks" programming language like Scratch, but with the full power of Scheme: First class functions.

It's the culmination of years of work by Brian Harvey and Jens Mönig and other Smalltalk and education experts. It benefits from their experience and expert understanding about constructionist education, Smalltalk, Scratch, E-Toys, Lisp, Logo, Star Logo, and many other excellent systems.

Snap! takes the best ideas, then freshly and coherently synthesizes them into a visual programming language that kids can use, but is also satisfying to professional programmers, with all the power of Scheme (lexical closures, special forms, macros, continuations, user defined functions and control structures), but deeply integrating and leveraging the web browser and the internet (JavaScript primitives, everything is a first class object, dynamically loaded extensions, etc).

Visual lexical closures.

User defined blocks including control structures.

Macros and special forms.

Call with current continuation!

Written in JavaScript and easy to integrate with JavaScript libraries.

https://snap.berkeley.edu

Adding Machine Learning Blocks to Snap!

https://s4scoding.com/adding-machine-learning-blocks-to-snap...

https://project.ecraft2learn.eu/

https://github.com/ecraft2learn/ai

https://ecraft2learn.github.io/ai/

ProgKids is a Russian site that integrates Snap! (and Python) with Minecraft, so kids can visually program 3d turtles that move around in the world and build things!

https://progkids.ru

ProgKids. Строим дом, а потом ещё пару (Building a house, then another couple)

https://www.youtube.com/watch?v=muNpsk4UH7c

ProgKids. Куда же без зверей? (Why do you not have animals?)

https://www.youtube.com/watch?v=1iBFwaUSDYI

ProgKids. Как работает Snap? (How does Snap work?)

https://www.youtube.com/watch?v=lh0mrqxFImQ

More links and stuff I've written about it on HN:

https://news.ycombinator.com/item?id=17594403

Re: Visual Programming – Why It’s a Bad Idea

#92
post #4

Pros The author well formulates the limitations of VPLs (Visual programming languages). Cons The rant seems to jumble in VPLs for general purpose programming with VPLs for domain-specific usecases. So although VPLs may be "a bad idea" for general purpose computing and does a good job of explaining its downsides, it is a little reckless in saying VPLs are a bad idea overall. The author also offers two straw man argume…

Alan Kay wrote some interesting stuff about some of the inspirations for "Tile-" and "Block-Based Programming", like "Thinkin' Things", in a discussion about the Snap! visual programming language!

https://snap.berkeley.edu

From: Alan Kay Date: Thu, 3 May 2018 07:49:16 +0000 (UTC) Subject: Re: Blocky + Micropolis = Blockropolis! ;)

Yes, all of these "blocks" editors sprouted from the original one I designed for Etoys* more than 20 years ago now -- most of the followup was by way of Jens Moenig -- who did SNAP. You can see Etoys demoed on the OLPC in my 2007 TED talk.

I'd advise coming up with a special kid's oriented language for your SimCity/Metropolis system and then render it in "blocks".

Cheers

Alan

------------- * Two precursors for DnD programming were in my grad student's -- Mike Travers -- MIT thesis (not quite the same idea), and in the "Thinking Things" parade programming system (again, just individual symbol blocks rather than expressions).

----

From: Don Hopkins Date: Fri, 4 May 2018 00:43:56 +0200 Subject: Re: Blocky + Micropolis = Blockropolis! ;)

I love fondly remember and love Thinkin’ Things 1, but I never saw the subsequent versions!

But there’s a great demo on youtube! https://youtu.be/gCFNUc10Vu8?t=24m58s

That would be a great way to program SimCity builder “agents” like the bulldozer and road layer, as well as agents like PacMan who know how to follow roads and eat traffic!

I am trying to get my head around Snap by playing around with it and watching Jens’s youtube videos, and it’s dawning on me that that it’s full blown undiluted Scheme with continuations and visual macros plus the best ideas of Squeak! The concept of putting a “ring” around blocks to make them a first class function, and being able to define your own custom blocks that take bodies of block code as parameters like real Lisp macros is brilliant! That is what I’ve been dreaming about and wondering how to do for so long! Looks like he nailed it! ;)

Here’s something I found that you wrote about tile programming six years ago.

-Don

Squeak-dev:

http://squeak-dev.squeakfoundation.narkive.com/7ZN0H3vt/etoy....

Etoys, Alice and tile programming ajbn at cin.ufpe.br () 6 years ago

Folks,

I have been trying the new version of Alice . It also uses tile programming like Etoys.Just for curiosity, does anyone know the history of Tile Programming? TIA,

Antonio Barros PhD Student Informatics Center Federal University of Pernambuco Brazil

Alan Kay 6 years ago

This particular strand starting with one of the projects I saw in the CDROM "Thinking Things" (I think it was the 3rd in the set). This project was basically about being able to march around a football field and the multiple marchers were controlled by a very simple tile based programming system. Also, a grad student from a number of years ago, Mike Travers, did a really excellent thesis at MIT about enduser programming of autonomous agents -- the system was called AGAR -- and many of these ideas were used in the Vivarium project at Apple 15 years ago. The thesis version of AGAR used DnD tiles to make programs in Mike's very powerful system.

The etoys originated as a design I did to make a nice constructive environment for the internet -- the Disney Family.com site -- in which small projects could make by parents and kids working together. SqC made the etoys ideas work, and Kim Rose and teacher BJ Conn decided to see how they would work in a classroom. I thought the etoys lacked too many features to be really good in a classroom, but I was wrong. The small number of features and the ease of use turned out to be real virtues.

We've been friends with Randy Pausch for a long time and have had a number of outstanding interns from his group at CMU over the years. For example, Jeff Pierce (now a prof at GaTech) did SqueakAlice working with Andreas Raab to tie it to Andreas' Balloon3D. Randy's group got interested in the etoys tile scripting and did a very nice variant (it's rather different from etoys, and maybe better).

Cheers,

Alan

Re: Visual Programming – Why It’s a Bad Idea

#93
To this day, I'm amazed at the things that were done with Access, and horrified by the things I've seen in Lotus Notes.

It really just depends. What visual systems provide is accessibility for novices to create value. That sometimes means planning to replace them, or enhance them with skilled developers. In my mind, it creates jobs. Not always great jobs, but at least security in that Software Development will always be a viable career, with lots of opportunities.

Re: Visual Programming – Why It’s a Bad Idea

#95
post #72

Last I heard text is visual... so then what is text but a form of visual programming? In essence text is visual programming limited to set of symbols and tokens parsed in left to right order. Who said that this arbitrary set of rules is the best way to represent programming logic? The number of concepts for abstraction encompass many things in the visual realm. Graphs, procedures, arrows and even 3D space can be used…

> Last I heard text is visual... so then what is text but a form of visual programming? But the author of TFA defines what he means: "A visual programming language is one that allows the programmer to create programs by manipulating graphical elements rather than typing textual commands."

Aren't you "manipulating graphical elements" when you type in textual commands?

Re: Visual Programming – Why It’s a Bad Idea

#96
post #72

Earlier quoted context omitted.

> Last I heard text is visual... so then what is text but a form of visual programming? But the author of TFA defines what he means: "A visual programming language is one that allows the programmer to create programs by manipulating graphical elements rather than typing textual commands."

The mistake in that definition is saying "rather than" rather than "as well as".

I think that's splitting hairs.

We all understand the difference between "texual" and "manipulating colored boxes, drawing arrows and generally using a non-textual interface". I'd rather we addressed this rather than the accuracy of the author's wording...

I partially agree with the author in that programming is inherently complex, and that "visual" UIs are inadequate once the program reaches a sufficient complexity level. Also, textual manipulation tools tend to be ubiquitous and more importantly, non-propietary; I'm naturally wary of other tools.

I disagree with the author in that I think there's still room for exploring graphical UIs.

Re: Visual Programming – Why It’s a Bad Idea

#97
post #72

Earlier quoted context omitted.

> Last I heard text is visual... so then what is text but a form of visual programming? But the author of TFA defines what he means: "A visual programming language is one that allows the programmer to create programs by manipulating graphical elements rather than typing textual commands."

Aren't you "manipulating graphical elements" when you type in textual commands?

No, not in the sense the author is talking about. See my response to the sibling comment.

Re: Visual Programming – Why It’s a Bad Idea

#98
post #24

I personally think node based programming is suitable for DSL, high level plumbing, data visualization (imagine Jupyter cells but having branches). The best visual programming language is UE4 Blueprint: prototype quickly, great debugging experience (great tooling in general), communicate with C++ easily, intellisense... It's really productive to glue stuff together but not that helpful for "drawing" all the core logi…

Exactly this. The best example here is NodeRed, Javascript underneath and a dataflow UI on top.

You can get connectors for pretty much anything eg. Raspberry pi robot/ home automation, twitter, http, email, mqtt, SQL, openCV, parallel processing.

The dashboard allows you to create UIs visually, and I've ported it to run on Android + IOS:

https://github.com/alexisread/noreml

Re: Visual Programming – Why It’s a Bad Idea

#99
post #61

seems from the bottom of the post, since he posted a picture of scratch (which is a fantastic tool!) that the author really just has an opinion about this and actually hasn't done really solid research and measured anything by actual outcomes. The block based visual programming embraced by scratch and things like the BBS micro:bit are really good, my 7 year old son can do really cool things with these systems (also c…

One of the coolest ways to learn programming I've ever seen is the Snap! visual programming language, which is written in JavaScript and runs in the browser. Snap! is a visual "blocks" programming language like Scratch, but with the full power of Scheme: First class functions. It's the culmination of years of work by Brian Harvey and Jens Mönig and other Smalltalk and education experts. It benefits from their experie…

cool... what strikes me about a number of these block based programming tools is they are quite approachable and complex functionality is not that hard to look at and know what's going on

Re: Visual Programming – Why It’s a Bad Idea

#100
post #78
post #38

Earlier quoted context omitted.

I've been in those environments. I've had to try to repair horrific "code" written in it. I've participated in "code reviews" where the straightness of the lines was carefully assessed in the massive mess of spaghetti code they had created and thought was good code. LabVIEW is a toy for EEs to write prototypes in. That would have been okay if it had stayed there -- but the problem is that people are actually distribu…

I still don't get why you call it a toy, or just for prototypes. Maybe think somewhat broader and not just about the bad experience(s) you had with it. For the things it's good at, it just works and it's pretty hard to find alternatives (well, Measurement Studio is ok, but for simple things it's usually still a bit more work than Labview). The hard part is figuring out what Labview is good at and not make the mistake…

I call it a toy because that's what it is. It's used almost exclusively to bypass doing things the right way. As you highlight quite well with your example.
Post reply on HN