Phenomenal compendium, I love it. There always have been a lot of visual approaches to programming, but only a few had a relative success, and always restricted to a very limited domain. There is no competition to raw text editing when dealing with big, general problems and projects (yet). Why? Information density, convenience and fast editing may be the main factors, imho..
I think a more likely reason is keyboards. The main input device we use to interact with computers is a typewriter descendant, optimized for typing text. Mice are flexible but keyboards allow for more complex input. Touch devices (like touchscreens or touchpads) could have helped with more direct manipulation of visual elements but they are always used on very limited (in terms of functionality and form factor) syste…
Gallery of Programmer Interfaces
11–20 of 28 posts
Re: Gallery of Programmer Interfaces
#12Funny that some like Mathematica and LabVIEW have not changed much for more than 30 years. Those look mostly identical today.
Re: Gallery of Programmer Interfaces
#13It's understandable for teaching the concepts of syntax to people learning programming for the first time, but I don't think it tackles any of the essential complexity, or what makes programming hard.
It keeps getting reinvented in different guises, often with an air of democratizing coding, taking it out of the hands of the high priests (IT) and into the hands of the people. But what's hard about programming isn't if-statements, loops and assignments. It's incorrect assumptions and broken invariants, usually in runtime data, generated by code which is often distant.
Relatively few interfaces seem to deal with manipulating data rather than code. I think working with data is more likely to be useful and successful. Look at things like Visual Basic - a form designer is effectively manipulating a stored data structure which defines how a runtime data structure is going to get constructed.
Re: Gallery of Programmer Interfaces
#14It's interesting to see how many focus on the nested, recursive representations of expression and statement syntax. It's understandable for teaching the concepts of syntax to people learning programming for the first time, but I don't think it tackles any of the essential complexity, or what makes programming hard. It keeps getting reinvented in different guises, often with an air of democratizing coding, taking it o…
I think data manipulation interfaces are a good line of reasoning to investigate, but form designers aren't that, they're just for controlling visual placement of controls. The real MVP of dataflow manipulation programming for non-programmers is Excel.
Re: Gallery of Programmer Interfaces
#15Tinker 1981, showing a color Macintosh interface.
ProGraph 1983, also using an interface using colors.
Pecan 1984, the year the first Macintosh was released.
Re: Gallery of Programmer Interfaces
#16It's interesting to see how many focus on the nested, recursive representations of expression and statement syntax. It's understandable for teaching the concepts of syntax to people learning programming for the first time, but I don't think it tackles any of the essential complexity, or what makes programming hard. It keeps getting reinvented in different guises, often with an air of democratizing coding, taking it o…
> I think working with data is more likely to be useful and successful. Look at things like Visual Basic - a form designer is effectively manipulating a stored data structure which defines how a runtime data structure is going to get constructed. I think data manipulation interfaces are a good line of reasoning to investigate, but form designers aren't that, they're just for controlling visual placement of controls.…
VB and Delphi have components, non-visual controls that live on design surfaces, where their properties can be edited. Things like database connections and table connectors, which can further be linked up with data aware controls. Whole simple form-based CRUD applications can be built without any code at all, merely by wiring together components.
The wiring is data.
Re: Gallery of Programmer Interfaces
#17Is it only my bad memory or some of the dates are wrong: Tinker 1981, showing a color Macintosh interface. ProGraph 1983, also using an interface using colors. Pecan 1984, the year the first Macintosh was released.
Re: Gallery of Programmer Interfaces
#18It's interesting to see how many focus on the nested, recursive representations of expression and statement syntax. It's understandable for teaching the concepts of syntax to people learning programming for the first time, but I don't think it tackles any of the essential complexity, or what makes programming hard. It keeps getting reinvented in different guises, often with an air of democratizing coding, taking it o…
I wanted the basic elements of the interface to be at a higher level than individual characters. The nested squares style rendering is highlighting grammatical structures in the language—not to teach syntax, but just to indicate where an interactable UI element is, the same way you have rectangular bounds around a button etc.
My motivation for this was to make it easier to manipulate code with lower-precision input devices (e.g. the microsoft kinect / leap motion), but I think there is general interest because a lot of the people writing these editors start from the premise that interacting with the AST directly (as opposed to character sequence) opens up doors, and nested squares is just kinda the most natural/obvious way of rendering an AST. It's also a more natural pairing with the input style of many of these interfaces (e.g. Lamdu[2] or Fructure[3]) which also operate at a higher level than character sequences.
The alternate rendering in itself isn't world-changing, it's the underlying change to directly manipulating a model that then gets rendered (as opposed to parsing the interface—i.e. character sequences—in order to arrive at the model) that's important.
(And even it probably isn't the most important revision to programming tools in general—but that doesn't make it not worth working on if someone's interest is in that direction.)
Re: Gallery of Programmer Interfaces
#19Previous discussion: https://news.ycombinator.com/item?id=14290909 Copying erikj's comment from over there: ----------------- I think Symbolics' Dynamic Windows and CLIM could be added to this gallery as well, as early examples of presentation-based user interfaces: https://dspace.mit.edu/bitstream/handle/1721.1/41161/AI_WP_2... . ftp://publications.ai.mit.edu/ai-publications/2004/AIM-2004-005.pdf
Re: Gallery of Programmer Interfaces
#20Is it only my bad memory or some of the dates are wrong: Tinker 1981, showing a color Macintosh interface. ProGraph 1983, also using an interface using colors. Pecan 1984, the year the first Macintosh was released.