Future of Coding Weekly 2020/08 Week 5
For some reason tinyletter decided to not publish the newsletter in the archive so I'm posting it here.
If you want to subscribe to the newsletter, it's here: https://tinyletter.com/marianoguerra/
Subtext 1 Demo, Layered Text, VR Visual Scripting, Automated Game Design, Dynamic Sketching in AR, Tiny Structure Editors for Low, Low Prices & more
Two Minute Week
π₯ This Week in Instadeq: Event Triggers via Mariano Guerra
This week I added support for Event Triggers, a way to react to changes and do things on other entities
Share Our Work
π¬ Chris Rabl
I've been doing more and more writing lately, and have been wishing for a tool that allows me to write my outlines, drafts, and final compositions in the same editor window with the ability to toggle any of those "layers" on and off at will, merge them, copy selections to new layers, etc. It would work sort of like Photoshop but for writing... I have a feeling these principles could also work as an IDE extension (imagine being able to hide the "code" layer and show only the "comments" layer, or the "documentation" layer). Curious to hear your thoughts, or whether anyone else is working on something similar?
π₯ layered text
π Using Gizmos via Scott Anderson
A year ago I was working on VR Visual Scripting in Facebook Horizon. They've recently started to share some more information leading up to Facebook Connect. I figured the scripting system would either be largely the same, or entirely rewritten since I left. It seems like it's mostly in tact based on documentation shared
π₯ Create and Share Interactive Visualizations from SpaceX's JSON API and π₯ Create and Share Visualizations of Premier League Matches from a CSV via Mariano Guerra
π root via Dennis Heihoff
What started with me reverse engineering notion became a data-first recursive UI resolver I called root.
Here's how it differs from most common technologies today:
- Approaches to UI development like react.js + graphQL require UI components to request data in a shape that satisfies the UI tree. This means the shape of the data is determined by the UI tree. Root takes an inverse approach where the UI tree is determined by the shape of the data.
- A major benefit of this approach is that the UI layout is thus entirely determined by data, data that can be traversed, transformed and stored in arbitrary ways and by arbitrary means.
- This is powerful for unstructured, user-determined, block-based UI's like rich documents (think Roam Research, Notion etc.) enabling queries and functions that, based on users' demands, derive the optimal presentation of a document.
It packs a few more punches. The best example is probably this (in about 200 LoC).
Thinking Together
π model of computation via Nick Smith
Why isn't any kind of logic programming considered a model of computation? Why do we talk about Turing Machines and recursive functions as fundamental, but not inference? I can't find any resources discussing this disparity. It's like there are two classes of academics that don't talk to each other. Am I missing something?
π Motoko, a programming language for building directly on the internet - Stack Overflow Blog via Mike Cann
𧡠conversation also discussed here 𧡠conversation
Anyone played with Motoko yet? looks really interesting, kind of reminds me of Unison in some ways
π https://twitter.com/cmastication/status/1299366037402587137?s=21 via Cameron Yick
Pondering: how important is it for a making environment to be made from the same medium youβre making with if your main goal isnβt making interfaces? The Jupyter ecosystem has come quite far despite relatively few people using it to write JS: https://twitter.com/cmastication/status/1299366037402587137?s=21
π¦ JD Long: Observation from Jupyter Land: The Jupyter ecosystem has a big headwind because the initial target audience for the tool (Julia, Python, R) has a small overlap with the tool/skills needed to expand the ecosystem, namely Javascript.
That's not a criticism, just an observation.
π¬ Hamish Todd
In the thing I am making, you can't have a variable without choosing a specific example value for that variable. This is surely something that's been discussed here before since Bret does it in Inventing On Principle. What do folks think of it?
Content
π Tiny Structure Editors for Low, Low Prices! via Jack Rusher
Fun paper from 2020 IEEE Symposium on Visual Languages and Human-Centric Computing
π₯ Subtext 1 demo (from 2005) via Shalabh Chaturvedi
Jonathan Edwards recently uploaded the Subtext 1 demo (from 2005).
It has a lot of interesting takes - and most (all?) that I agree with. E.g. edit time name resolution, debugging by inspection, a concrete model of time, inline expansion of function calls, and more.
π It's the programming environment, not the programming language via Ope
βBut while programming languages are academically interesting, I think we more desperately need innovation in programming environments.
The programming environment isnβt a single component of our workflow, but the total sum enabled by the tools working together harmoniously. The environment contains the programming language, but also includes the debugging experience, dependency management, how we communicate with other developers (both within source code and without), how we trace and observe code in production, and everything else in the process of designing APIs to recovering from failure.
The story of programming language evolution is also a story of rising ideas in what capabilities good programming environments should grant developers. Many languages came to popularity not necessarily based on their merits as great languages, but because they were paired with some new and powerful capability to understand software and write better implementations of it.β
π₯ Getting Started in Automated Game Design via Scott Anderson
Mike Cook has done a lot of research into automated game generation. He recently released this video which is both a tutorial and an overview of the field.
π Gatemaker: Christopher Alexander's dialogue with the computer industry via Stefan Lesser
Donβt read this for the application βGatemakerβ. Read this for a fascinating outsiderβs view on the software industry, systems design, and end-user programming.
π₯ RealitySketch: Embedding Responsive Graphics and Visualizations in AR through Dynamic Sketching via Jack Rusher
I really like this new AR work from Ryo Suzuki, et al.