Are we talking about the same "Excel"? I mean Microsoft Excel, in case there's something else called Excel that I haven't heard of.

Microsoft Excel spreadsheets certainly do contain instructions and behavior. That's the whole point of spreadsheets, that distinguish them from plain CSV files! They continuously run every time you make any change to them. And Excel is several orders of magnitude more popular and successful than Ruby: there is no comparison.

Excel even supports "Programming by Demonstration" through its macro recorder. Programming by Demonstration happens to be one of Brad Myer's favorite areas of research!

Brad wrote the 1989 paper about visual programming that we're discussing, and Visual Programming, Programming by Demonstration, and Programming by Example are closely interrelated topics that he has done a lot of work with and written a lot about.

I think it's important to consider some of his and other people's more recent work, before extrapolating on the technological limitations that he wrote about in 1989, without taking into account 31 years of progress, research, and development.

https://en.wikipedia.org/wiki/Brad_A._Myers

"Myers is a leading researcher in the field of programming by demonstration and created the Garnet and Amulet toolkits."

https://en.wikipedia.org/wiki/Programming_by_demonstration

"In computer science, programming by demonstration (PbD) is an end-user development technique for teaching a computer or a robot new behaviors by demonstrating the task to transfer directly instead of programming it through machine commands."

Watch What I Do: Programming by Demonstration. Edited by Allen Cypher, Daniel Conrad Halbert, David Kurlander, Henry Lieberman, David Maulsby, Brad A. Myers, and Alan Turransky.

https://archive.org/details/watchwhatido00alle

http://acypher.com/wwid

Watch What I Do: Foreword by Alan Kay

http://acypher.com/wwid/FrontMatter/

>I don't know who first made the parallel between programming a computer and using a tool, but it was certainly implicit in Jack Licklider's thoughts about "man-machine symbiosis" as he set up the ARPA IPTO research projects in the early sixties. In 1962, Ivan Sutherland's Sketchpad became the exemplar to this day for what interactive computing should be like--including having the end-user be able to reshape the tool. [...]

Microsoft Excel Macro Programming History

https://en.wikipedia.org/wiki/Microsoft_Excel#Macro_programm...

"History: From its first version Excel supported end-user programming of macros (automation of repetitive tasks) and user-defined functions (extension of Excel's built-in function library). In early versions of Excel, these programs were written in a macro language whose statements had formula syntax and resided in the cells of special-purpose macro sheets (stored with file extension .XLM in Windows.) XLM was the default macro language for Excel through Excel 4.0. Beginning with version 5.0 Excel recorded macros in VBA by default but with version 5.0 XLM recording was still allowed as an option. After version 5.0 that option was discontinued. All versions of Excel, including Excel 2010 are capable of running an XLM macro, though Microsoft discourages their use."

>I'd say a visual programming language is a programming language for which the primary way of making changes to the program is visual.

Your arbitrarily gerrymandered definition turns C++ into a visual programming language, which it clearly is not.

So how is making changes to a C++ program in VI or Emacs not visual, then? People use visual editors to make changes to textual C++ programs all the time.

The "V" in "VI" STANDS FOR "Visual", because it is the "visual mode" of the line editor called ex.

But the actual structure and syntax of a C++ program that you edit in VI is simply a one-dimensional stream of characters, not a two-dimensional grid of interconnected objects, values, graphical attributes, and formulas, with relative and absolute two-dimensional references, like a spreadsheet.

https://en.wikipedia.org/wiki/Vi

>The original code for vi was written by Bill Joy in 1976, as the visual mode for a line editor called ex that Joy had written with Chuck Haley.[3] Bill Joy's ex 1.1 was released as part of the first Berkeley Software Distribution (BSD) Unix release in March 1978. It was not until version 2.0 of ex, released as part of Second BSD in May 1979 that the editor was installed under the name "vi" (which took users straight into ex's visual mode),[4] and the name by which it is known today. Some current implementations of vi can trace their source code ancestry to Bill Joy; others are completely new, largely compatible reimplementations.

>The name "vi" is derived from the shortest unambiguous abbreviation for the ex command visual, which switches the ex line editor to visual mode. The name is pronounced /ˈviːˈaɪ/ (the English letters v and i).[5][6]