TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Taxonomies of Visual Programming (1990) [pdf]

107 pointsby mr_tyzicover 4 years ago

7 comments

BradAMyersover 4 years ago
Thanks for your interest in my old article! That version is a draft update of this article: Brad A. Myers. &quot;Visual Programming, Programming by Example, and Program Visualization; A Taxonomy,&quot; Proceedings SIGCHI &#x27;86: Human Factors in Computing Systems. Boston, MA. April 13-17, 1986. pp. 59-66. <a href="http:&#x2F;&#x2F;www.cs.cmu.edu&#x2F;~bam&#x2F;papers&#x2F;chi86vltax.pdf" rel="nofollow">http:&#x2F;&#x2F;www.cs.cmu.edu&#x2F;~bam&#x2F;papers&#x2F;chi86vltax.pdf</a>
评论 #26061279 未加载
评论 #26059228 未加载
评论 #26060809 未加载
评论 #26059481 未加载
haunterover 4 years ago
Does anyone feel we are still in the silent film era of computer programming? Will we ever advance from text editors into something else and leave Vim, Emacs etc. forever behind for good?
评论 #26059921 未加载
评论 #26062097 未加载
评论 #26060650 未加载
评论 #26061928 未加载
djedrover 4 years ago
Cool stuff. Wish I found this a few years ago when I dug into this topic for a thesis. Back then I analyzed this incredible resource (warning: clicking this link will load looots of images): <a href="http:&#x2F;&#x2F;blog.interfacevision.com&#x2F;design&#x2F;design-visual-progarmming-languages-snapshots&#x2F;" rel="nofollow">http:&#x2F;&#x2F;blog.interfacevision.com&#x2F;design&#x2F;design-visual-progarm...</a> and came up with my own provisional taxonomy where major categories were &quot;Line-connected block-based&quot;, &quot;Snap-together block-based&quot;, &quot;List-based&quot;, &quot;Enhanced text&quot;, and a few others.<p>Looking back I still think that the most promising direction when it comes to real-world applications of visual programming is the hybrid approach: make a language which has &quot;real-time&quot; interchangeable text and visual representations -- you get the best of both worlds this way (that was basically the topic of my thesis[1]).<p>I thought it was an original idea when I started out with my research, but sure enough there were attempts in the past. And towards the end (4+ years ago) I discovered a fresh one which seems to be still going strong, albeit rebranded: <a href="https:&#x2F;&#x2F;github.com&#x2F;enso-org" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;enso-org</a> Last time I checked they were making what I consider a bad design choice by leaving the structuring of the visual representation entirely up to the user, but maybe that&#x27;s fixed now.<p>Anyway I think it&#x27;s a cool topic and worth keeping an eye on.<p>[1] If anyone is interested it&#x27;s available here: <a href="https:&#x2F;&#x2F;djedr.github.io&#x2F;masters_thesis.pdf" rel="nofollow">https:&#x2F;&#x2F;djedr.github.io&#x2F;masters_thesis.pdf</a>
评论 #26064741 未加载
schpaencoderover 4 years ago
What happened to all the visual images in this PDF?
评论 #26058513 未加载
评论 #26058470 未加载
评论 #26058617 未加载
m463over 4 years ago
Makes me think of gnu radio or quartz composer<p>and more recently: <a href="https:&#x2F;&#x2F;youtu.be&#x2F;M7U8dgPo0Bw" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;M7U8dgPo0Bw</a><p><a href="https:&#x2F;&#x2F;mathinspector.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mathinspector.com&#x2F;</a>
DonHopkinsover 4 years ago
An important mnemonic technique that visual programming languages can exploit is called the &quot;Method of Loci&quot; or &quot;Memory Palace&quot;:<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Method_of_loci" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Method_of_loci</a><p>&gt;The method of loci (loci being Latin for &quot;places&quot;) is a strategy of memory enhancement which uses visualizations of familiar spatial environments in order to enhance the recall of information. The method of loci is also known as the memory journey, memory palace, or mind palace technique. This method is a mnemonic device adopted in ancient Roman and Greek rhetorical treatises (in the anonymous Rhetorica ad Herennium, Cicero&#x27;s De Oratore, and Quintilian&#x27;s Institutio Oratoria). Many memory contest champions report using this technique to recall faces, digits, and lists of words.<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22090159" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22090159</a><p>&gt;The Method of Loci is an ancient technique that used to be taught for thousands of years as a standard part of a classical eduction, way back when people needed to remember things before the invention of smartphones and printing presses. But in the middle ages it was banned for being immoral! Apparently, some bad apples were abusing the Method of Loci to remember &quot;immoral&quot; things they shouldn&#x27;t be thinking about, using &quot;fabulous&quot; images they shouldn&#x27;t be imagining.<p><a href="https:&#x2F;&#x2F;www.guildsomm.com&#x2F;4cb697f52c&#x2F;discussion_forums&#x2F;f&#x2F;general-discussion&#x2F;9171&#x2F;advanced-memory-techniques-and-how-to-apply-them" rel="nofollow">https:&#x2F;&#x2F;www.guildsomm.com&#x2F;4cb697f52c&#x2F;discussion_forums&#x2F;f&#x2F;gen...</a><p>&gt;&gt;Remember to use physical objects in these palaces since they have easily imaginable traits; when you are dealing with more abstract or untranslatable ideas it is best to convert them into objects based on the way the words sound, so Valmur becomes Val Kilmer, Les Preuses becomes purses, etc. Additionally, you don’t need to be concerned with reality when making these memory palaces. The more slapstick, unique and vivid they are, the easier they will stick. Raunchy imagery always works well, to the point where some religious orders in the middle ages banned the practice because it was deemed immoral.<p>&gt;Memory Palace techniques have been known as the Mind Palace, Method of Loci, and Memory Journey, Art of Memory, Ars Memorativa, Memorative Art, Mnemotechnics, Architectural Mnemonic, Graphical Mnemonic, and Textual Mnemonic.<p>Eric Krokos, Catherine Plaisant, and Amitabh Varshney published an interesting paper about memory palaces in virtual reality, called &quot;Virtual memory palaces: immersion aids recall&quot; in Virtual Reality volume 23, pages 1–15 (2019).<p><a href="https:&#x2F;&#x2F;obj.umiacs.umd.edu&#x2F;virtual_reality_study&#x2F;10.1007-s10055-018-0346-3.pdf" rel="nofollow">https:&#x2F;&#x2F;obj.umiacs.umd.edu&#x2F;virtual_reality_study&#x2F;10.1007-s10...</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22093072" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22093072</a><p>&gt;I visualize and remember code that way. For me, it&#x27;s hard to forget somewhere I&#x27;ve been, even if I only imagined being there.<p>&gt;Each function is a little building like an office or a shop, which has a sign out front telling what services or products it sells, and contains everything inside you need to solve some kind of problem or produce some kind of product or service (where equipment in the room is like references to other objects and functions and imported libraries).<p>&gt;You&#x27;re standing behind the front counter, just about to receive a customer though the front entrance door with the parameters you need for one particular instance of that problem.<p>&gt;You go into the back room, solve the problem, then deliver the results out the exit door at the back of the building (or through any of the other earlier emergency exits, if you had to exit prematurely or throw an error and run away).<p>&gt;The front&#x2F;back flow is a metaphor for the top&#x2F;bottom flow of control through a function.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Nassi%E2%80%93Shneiderman_diagram" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Nassi%E2%80%93Shneiderman_diag...</a><p>&gt;&gt;A Nassi–Shneiderman diagram (NSD) in computer programming is a graphical design representation for structured programming. This type of diagram was developed in 1972 by Isaac Nassi and Ben Shneiderman who were both graduate students at Stony Brook University. These diagrams are also called structograms, as they show a program&#x27;s structures.<p>&gt;If you squint you can see the example Nassi-Shneiderman diagram in that article as a map of a building, with its front at the top, and exit at the bottom.<p>&gt;You can have internal hallways and rooms for branches and loops, like a Nassi-Shneiderman diagram. The &quot;Sub to Determine Wiki-Article&quot; room is like the front entrance lobby of a theater where buy your ticket. The &quot;Select Favourite Genre&quot; room is like the stage of The Price is Right, and you get to pick what&#x27;s behind door #1 (History), #2 (Science), or # (Geography), or else choose Other. They each have one or two rooms behind them with your rewards, and then they all finally exit out to the same back stage loading dock, where you take your wonderful prize (or consolation donkey) home.<p>Ben explained that &quot;Nassi-Shneiderman Diagrams have peaked out a couple of decades ago, but there were a huge success story for a 15-minute invention, with hundreds of software tools, dozens of textbooks, and 1000+ papers based on them.&quot;<p>He has a funny story about the incredibly harsh rejection letter he received when he and Ike Nassi submitted their first paper about &quot;Nassi-Shneiderman Diagrams&quot; to Communications of the ACM in 1972, that should serve as an &quot;inspiration for anyone whose new ideas are rejected by some respected authorities&quot;.<p><a href="http:&#x2F;&#x2F;www.cs.umd.edu&#x2F;hcil&#x2F;members&#x2F;bshneiderman&#x2F;nsd&#x2F;rejection_letter.html" rel="nofollow">http:&#x2F;&#x2F;www.cs.umd.edu&#x2F;hcil&#x2F;members&#x2F;bshneiderman&#x2F;nsd&#x2F;rejectio...</a><p><a href="http:&#x2F;&#x2F;www.cs.umd.edu&#x2F;hcil&#x2F;members&#x2F;bshneiderman&#x2F;nsd&#x2F;rejection_letter.pdf" rel="nofollow">http:&#x2F;&#x2F;www.cs.umd.edu&#x2F;hcil&#x2F;members&#x2F;bshneiderman&#x2F;nsd&#x2F;rejectio...</a><p>&gt;Our submission of the structured flowcharts to the Communications of the ACM was quickly rejected, on October 4, 1972, by the Programming Languages Editor David Gries of Cornell University. He included a single anonymous reference letter which is on paper that has a Cornell University watermark. I assume Gries gave our paper to one of his colleagues (you can play the guessing game too), who wrote the most brutal rejection letter I have ever gotten.<p>&gt;The reviewer wrote: &quot;I feel that the best thing the authors could do is collect all copies of this technical report and burn them, before anybody reads them.&quot; As graduate students, this stinging rejection shocked us, but we kept getting enthusiastic responses from people around us. We sent the paper to the unrefereed ACM SIGPLAN Notices, where it was published in August 1973. It didn&#x27;t take long for others to produce extensions, software tools, and applications of structured flowcharts.<p>&gt;The next problem was theft of the idea. I had sent a draft to respected colleagues, and soon others published slight variations. One of these respected colleagues was Ned Chapin, who greatly troubled us by publishing what he called &#x27;Chapin Charts.&#x27; A friend of mine sent me his published paper with a note encouraging me to sue. For several years I feared that Chapin&#x27;s reputation and his frequent professional seminars would wind up leaving the idea tied to his name, but as the decades passed, the ending has proved to be a happy one. We called the idea &#x27;structured flowcharts, but they are widely known as Nassi-Shneiderman Diagrams.<p>&gt;Another problem was the appearances of patents for variations on our idea, but these have not limited the widespread recognition we have gotten over the years.<p>&gt;I wish every graduate student or young inventor would have the pleasure of seeing his&#x2F;her ideas spread so far and influence the work of so many people. I also hope that the story of the bold rejection of our novel idea and its eventual international success, is an inspiration for anyone whose new ideas are rejected by some respected authorities.<p>More about Nassi-Shneiderman Diagrams:<p><a href="http:&#x2F;&#x2F;www.cs.umd.edu&#x2F;hcil&#x2F;members&#x2F;bshneiderman&#x2F;nsd&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.cs.umd.edu&#x2F;hcil&#x2F;members&#x2F;bshneiderman&#x2F;nsd&#x2F;</a><p><a href="https:&#x2F;&#x2F;wiki.c2.com&#x2F;?NassiShneidermanDiagrams" rel="nofollow">https:&#x2F;&#x2F;wiki.c2.com&#x2F;?NassiShneidermanDiagrams</a><p>More about Ben Shneiderman:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11370099" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11370099</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22329274" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22329274</a><p><a href="https:&#x2F;&#x2F;eagereyes.org&#x2F;influences&#x2F;ben-shneiderman" rel="nofollow">https:&#x2F;&#x2F;eagereyes.org&#x2F;influences&#x2F;ben-shneiderman</a>
DonHopkinsover 4 years ago
Brad Myers&#x27; paper answers the age-old argument about whether or not spreadsheets are visual programming languages!<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20425821" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20425821</a><p>&gt;DonHopkins on July 13, 2019 | on: I was wrong about spreadsheets (2017)<p>&gt;Google sheets (and other google docs) can be programmed in &quot;serverless&quot; JavaScript that runs in the cloud somewhere. It&#x27;s hellishly slow making sheets API calls, though. Feels like some kind of remote procedure call. (Slower than driving Excel via OLE Automation even, and that&#x27;s saying something!) Then it times out on a wall clock (not cpu time) limit, and breaks if you take too long.<p>&gt;A CS grad student friend of mine was in a programming language class, and the instructor was lecturing about visual programming languages, and claimed that there weren&#x27;t any widely used visual programming languages. (This was in the late 80&#x27;s, but some people are still under the same impression.)<p>&gt;He raised his hand and pointed out that spreadsheets qualified as visual programming languages, and were pretty darn common.<p>&gt;They&#x27;re quite visual and popular because of their 2D spatial nature, relative and absolute 2D addressing modes, declarative functions and constraints, visual presentation of live directly manipulatable data, fonts, text attributes, background and foreground colors, lines, patterns, etc. Some even support procedural scripting languages whose statements are written in columns of cells.<p>&gt;Maybe &quot;real programmers&quot; would have accepted spreadsheets more readily had Lotus named their product &quot;Lotus 012&quot;? (But then normal people would have hated it!)<p>I Was Wrong About Spreadsheets And I&#x27;m Sorry:<p><a href="https:&#x2F;&#x2F;www.reifyworks.com&#x2F;writing&#x2F;2017-01-25-i-was-wrong-about-spreadsheets-and-im-sorry" rel="nofollow">https:&#x2F;&#x2F;www.reifyworks.com&#x2F;writing&#x2F;2017-01-25-i-was-wrong-ab...</a><p>HN Discussion:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20417967" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20417967</a><p>Excerpt from &quot;Taxonomies of Visual Programming and Program Visualization&quot;, by Brad A Myers, 1990&#x2F;3&#x2F;1, Journal of Visual Languages &amp; Computing, Volume 1, Issue 1, pages 97-123:<p>Spreadsheets, such as those in VisiCalc or Lotus 1-2-3, were designed to help nonprogrammers manage finances. Spreadsheets incorporate programming features and can be made to do general purpose calculations [71] and therefore qualify as a very-high level Visual Programming Language. Some of the reasons that spreadsheets are so popular are (from [43] and [1]):<p>1. the graphics on the screen use familiar, concrete, and visible representation which directly maps to the user&#x27;s natural model of the data,<p>2. they are nonmodal and interpretive and therefore provide immediate feedback,<p>3. they supply aggregate and high-level operations,<p>4. they avoid the notion of variables (all data is visible),<p>5. the inner world of computation is suppressed,<p>6. each cell typically has a single value throughout the computation,<p>7. they are nondeclarative and typeless,<p>8. consistency is automatically maintained, and<p>9. the order of evaluation (flow of control) is entirely derived from the declared cell dependencies.<p>The first point differentiates spreadsheets from many other Visual Programming Languages including flowcharts which are graphical representations derived from textual (linear) languages. With spreadsheets, the original representation in graphical and there is no natural textual language.<p>Action Graphics [41] uses ideas from spreadsheets to try to make it easier to program graphical animations. The &#x27;Forms&#x27; system [43] uses a more conventional spreadsheet format, but adds sub-sheets (to provide procedural abstraction) which can have an unbounded size (to handle arbitrary parameters).<p>A different style of system is SIL-ICON [49], which allows the user to construct &#x27;iconic sentences&#x27; consisting of graphics arranged in a meaningful two-dimensional fashion, as shown in Figure 5. The SIL-ICON interpreter then parses the picture to determine what it means. The interpreter itself is generated from a description of the legal pictures, in the same way that conventional compilers can be generated from BNF descriptions of the grammar.
评论 #26062401 未加载
评论 #26112751 未加载