07/17/18
On July 6, 2018 I got an email from Dan Swirsky, a patent attorny and part-time programming language enthusiast, who is working on “ a new reactive language-type paradigm, an IDE design that uses a structure editor, and a language that is super simple and super readable.” I agreed to review his langauge and post the review on the site. You can learn more at https://hilltop-lang.org.
I’m particularly impressed with how complete this demo is, given a photoshop-based prototype. A common failing of PL creators, myself included, is implementing in code too soon. I wonder if it would be useful to create a more interactive demo through a prototyping tool, such as proto.io, which would allow the linking of these screenshots via click hotspots.
The language seems to be somewhere in the Smalltalk-family of languages. Some common attributes:
This type of environment reminds me of Bret Victor’s “Interactivity considered harmful”. There’s such little information on the screen at any given time.
I prefer showing more information on the screen, like the aprt.us editor does:
In Hilltop Lang, events are triggered by watchers, which watch for attribute value changes. I find that this mixes metaphors a bit, but is a reasonable design decision.
A project in a similar spirit, Interstate, has a very compelling user interface that makes use of regular events and state charts:
I found the code, such as in the ToDoMVC example, to read much like HTML with inline CSS and JS. I am a fan of an integrated langauge like this.
In the Programming with Hilltop video, he shows how to create piano through the creation of a rectPianoKey
template. I find myself not particularly excited about OOP-style inheritance in general, and perfer more explicit sharing of attributes in the form of passing aroung “attribute bags” (called various names, depending on the language, such as “dictionaries”, “hashmaps”, “objects”).
As far as structured editors go, I have yet to see one besides Scratch be particularly successful. This one reminds me of ElmJr. Along with the integrated nature of the UI language (all one language, not seperated into HTML, CSS, and JS), this leads me to think Hilltop would lend itself well to beginner programmers, as well as coding on touch devices, such as iPads.