4 ms·
There is more to visual programming than simple wire diagrams and "code-blocks-as-visual-blocks": https://www.youtube.com/watch?v=6orsmFndx_o https://www.youtu
by gambler 8y ago
There is more to visual programming than simple wire diagrams and "code-blocks-as-visual-blocks":
https://www.youtube.com/watch?v=6orsmFndx_o https://www.youtube.com/watch?v=6orsmFndx_o
https://www.youtube.com/watch?v=I9LZ6TnSP40 https://www.youtube.com/watch?v=I9LZ6TnSP40
https://alumni.media.mit.edu/~mt/thesis/mt-thesis-Contents.html https://alumni.media.mit.edu/~mt/thesis/mt-thesis-Contents.h...
http://worrydream.com/ http://worrydream.com/
And yes, this:
http://www.fantasticcontraption.com/ http://www.fantasticcontraption.com/
This is not 100% real programming, because it does not include sensors, but you do create constructs that interact with the environment and accomplish goals. It's close enough to show what's possible with certain interfaces.
Long-term: https://dynamicland.org/ https://dynamicland.org/
There have been much fewer resources allocated to the development of these concepts. Mostly for historic reasons.
The sad reality is that both critics and proponents of visual programming are often uninformed about prior work, user studies and related research rooted in cognitive and developmental psychology.
- rwmj 8y agoI thought this presented an interesting visual programming concept: http://www.chorus-home.org/ http://www.chorus-home.org/ More in these videos: https://vimeo.com/179904952 https://vimeo.com/179904952 https://vimeo.com/274771188 https://vimeo.com/274771188
- DonHopkins 8y agoThere's so much interesting prior work! I really enjoyed this paper “A Taxonomy of Simulation Software: A work in progress” from Learning Technology Review by Kurt Schmucker at Apple. It covered many of my favorite systems. http://donhopkins.com/home/documents/taxonomy.pdf http://donhopkins.com/home/documents/taxonomy.pdf It reminds me of the much more modern an comprehensive "Gadget Background Survey" that Chaim Gingold did at HARC, which includes Alan Kay's favorites, Rockey’s Boots and Robot Odyssey, and Chaim's amazing SimCity Reverse Diagrams and lots of great stuff I’d never seen before: http://chaim.io/download/Gingold%20(2017)%20Gadget%20(1)%20Survey.pdf http://chaim.io/download/Gingold%20(2017)%20Gadget%20(1)%20S... I've also been greatly inspired by the systems described in the classic books “Visual Programming” by Nan C Shu, and “Watch What I Do: Programming by Demonstration” edited by Alan Cypher. https://archive.org/details/visualprogrammin00shu_2pf https://archive.org/details/visualprogrammin00shu_2pf https://archive.org/details/watchwhatido00alle https://archive.org/details/watchwhatido00alle Brad Myers wrote several articles in that book about his work on PERIDOT and GARNET, and he also developed C32: C32: CMU's Clever and Compelling Contribution to Computer Science in CommonLisp which is Customizable and Characterized by a Complete Coverage of Code and Contains a Cornucopia of Creative Constructs, because it Can Create Complex, Correct Constraints that are Constructed Clearly and Concretely, and Communicated using Columns of Cells, that are Constantly Calculated so they Change Continuously, and Cancel Confusion http://www.cs.cmu.edu/~bam/acronyms.html http://www.cs.cmu.edu/~bam/acronyms.html Also, here's an interesting paper about Fabrik: https://donhopkins.com/home/Fabrik%20PE%20paper.pdf https://donhopkins.com/home/Fabrik%20PE%20paper.pdf Danny Ingalls, one of the developers of Fabrik at Apple, explains: "Probably the biggest difference between Fabrik and other wiring languages was that it obeyed modular time. There were no loops, only blocks in which time was instant, although a block might ’tick’ many times in its enclosing context. This meant that it was real data flow and could be compiled to normal languages like Smalltalk (and Pascal for Apple at the time). Although it also behaved bidirectionally (e.g. temp converter), a bidirectional diagram was really only a shorthand for two diagrams with different sources (this extended to multidirectionality as well)"
- seanmcdirmid 8y agoWe could go back farther with Sutherland's SketchPad (early 60s) and Smith's Pygmalion (mid 70s). There are also a lot of disparate visual programming paradigms that are all classed under "visual", I guess in the same way that both Haskell and Java are "textual". It makes for a weird debate when one party in a conversation is thinking about patch/wire dataflow languages as the primary VPLs (e.g. QuartzComposer) and the other one is thinking about procedural block languages (e.g. Scratch) as the primary VPLs.
- DonHopkins 8y agoAbsolutely, their important work foreshadowed and inspired so much great stuff. Also Douglas Engelbart's NLS pioneered many of the ideas of visual programming. I think spreadsheets also qualify as visual programming languages, because they're two-dimensional and grid based in a way that one-dimensional textual programming languages aren't. The grid enables them to use relative and absolute 2D addressing, so you can copy and paste formulae between cells, so they're reusable and relocatable. And you can enter addresses and operands by pointing and clicking and dragging, instead of (or as well as) typing text. Some people mistakenly assume visual programming languages necessarily don't use text, or that they must use icons and wires, so they don't consider spreadsheets to be visual programming languages. Spreadsheets are a wildly successful (and extremely popular) example of a visual programming language that doesn't forsake all the advantages of text based languages, but builds on top of them instead. And their widespread use and success disproves the theory that visual programming languages are esoteric or obscure or not as powerful as text based languages. Other more esoteric, graphical, grid-based visual programming languages include cellular automata (which von Neumann explored), and more recently "robust first computing" architectures like the Moveable Feast Machine. https://en.wikipedia.org/wiki/Von_Neumann_cellular_automaton https://en.wikipedia.org/wiki/Von_Neumann_cellular_automaton https://en.wikipedia.org/wiki/Von_Neumann_universal_constructor https://en.wikipedia.org/wiki/Von_Neumann_universal_construc... Robust-first Computing: Distributed City Generation (Moveable Feast) https://www.youtube.com/watch?v=XkSXERxucPc https://www.youtube.com/watch?v=XkSXERxucPc >A rough video demo of Trent R. Small's procedural city generation dynamics in the Movable Feast Machine simulator. See http://nm8.us/q http://nm8.us/q for more information. Apologies for the poor audio! Programming the Movable Feast Machine with λ-Codons https://www.youtube.com/watch?v=DauJ51CTIq8 https://www.youtube.com/watch?v=DauJ51CTIq8 >λ-Codons provide a mechanism for describing arbitrary computations in the Movable Feast Machine (MFM). A collection of λ-Codon molecules describe the computation by a series of primitive functions. Evaluator particles carry along a stack of memory (which initially contains the input to the program) and visit the λ-Codons, which they interpret as functions and apply to their stacks. When the program completes, they transmute into output particles and carry the answer to the output terminals (left).