Skip to content

Latest commit

 

History

History
147 lines (85 loc) · 10.1 KB

reflections.md

File metadata and controls

147 lines (85 loc) · 10.1 KB





  • Talk: Inventing on Principle
    • The talk that launched a thousand research careers.
  • Talk: Drawing Dynamic Visualizations
    • Shares an idea for a direct-manipulation programming environment.
    • Additional notes
  • Talk: Stop Drawing Dead Fish
    • A talk in which he demonstrates a prototype iPad app for interactively building animations, with an experience more akin to puppet theatre than traditional keyframe-and-curves computer animation.
    • The app allows building algebraic relationships using geometric equivalents, a la Tristan Needham's book Visual Complex Analysis or the GeoGebra project. This is at odds with most computer animation tools, where dynamic relationships between visual elements are expressed using algebraic equations of the elements' numeric attributes.
  • Article: Learnable Programming
    • Not only is this a fantastic critique of augmented text-based programming tools, it's also sneaks in some fantastic critiques of visual programming languages too.
    • Traditional visual environments visualize the code. They visualize static structure. But that's not what we need to understand. We need to understand what the code is doing. Visualize data, not code. Dynamic behavior, not static structure.

I could continue linking to dozens of things on Bret's site. The next time I read through them, I might link to some more and add my reflections. In the mean time, it should suffice to say that pretty much everything on his website is revelatory, inspirational, worthy of mass movements being forming around, and essential. His work largely defined the current cultural moment in programming tools, HCI, visual languages, and other computing frontiers of interest to readers of this codex.





Caitlin Kelleher and Randy Pausch









Fred Lakin

Fred's websites seem to have perished at the end of 2019, but Archive.org is a good friend:





  • Illiterate Programming
    • A blog post about literate programming that turns into a demo of the Ampleforth live-coding environment for Newspeak. Hint: the browser back button can be used to navigate "back" when interacting with the embedded Ampleforth editors.
    • "The ability to change the code of the system you are using while using it is a key property that is lacking in most systems."
    • Not directly about VPLs, but relevant due to the importance of live coding to most VPLs, and the mutual influence of Smalltalk.
    • "It's a self-eating-dog-eat-self-eating dog world"
    • Don't confuse the HopscotchIDE used by Ampleforth with the Scratch-like VPL named Hopscotch.













  • Talk: Evolving the Visual Programming Environment with React
    • Features an (unreleased) browser-based nodes-and-lines VPL prototype named Collide. At 15:03, there's a nice UI feature where static typing is used to annotate node inputs/outputs, and they're numbered based on distance, so you can type the number and make a fast connection. Later there's some nice discussion of how the VPL is implemented in terms of pure functions, how side effects are handled, specs for nodes, and other thoughtful inner workings.









Paul Fishwick Blog Twitter

  • Paper: Aesthetic Programming
    • A fantastic paper about the synthesis of artistic aesthetics, modelling, and systems.
    • "By marrying traditional methods for computer programming with an artistic temperament, we give birth to a new phenomenon: the aesthetic program. Our work builds on visual approaches in programming as well as modeling for software, where I envision a gradual evolution from program to model. The need for the aesthetic model is strengthened with the importance of personalized, individually-tailored, models. I, and my students, have formulated the rube Project methodology around the use of 3D web-based virtual world construction of models. Initial results suggest that these models are artistic, while containing sufficient symbolism and concise metaphoric mapping as to be executable on a computer."









Stéphane Conversy









Created the Cornell Program Synthesizer in 1978, an IDE-like system that showed the power of editing tools deeply knowledgable about the structure and semantics of a language. This project was captured in the paper A Syntax-directed Programming Environment, co-authored with Thomas Reps.

Programs are not text; they are hierarchical compositions of computational structures and should be edited, executed, and debugged in an environment that consistently acknowledges and reinforces this viewpoint. The Cornell Program Synthesizer demands a structural perspective at all stages of program development. Its separate features are unified by a common foundation: a grammar for the programming language. Its full-screen derivation-tree editor and syntax-directed diagnostic interpreter combine to make the Synthesizer a powerful and responsive interactive programming tool.