Hacker News new | past | comments | ask | show | jobs | submit login

When I visited Dynamicland in January, I was building on a spreadsheet-like program next to my friend Omar who was building a map-based interface. Just by virtue of sitting next to each other, we were able to keep apprised of what the other was up to. At some point Omar needed a way to input a number to control the zoom of his map. My spreadsheet program had plenty of numbers, and ways to manipulate numbers, so we slid over one of my pieces of paper and it immediately worked to zoom into his maps. Omar decided that he’d prefer a slider-based number-input, and after it was built, he slid it over to my side of the table, and we used a multiplication operator I had built to expand the slider’s range. Again, it just worked. At Dynamicland you get composability and interoperability “for free.”

I jumped around a skimmed a bit, so maybe I missed it, but are they prrogramming for the room itself only, or in a framework/library that allows for this, or just in a similar language? Is it all just Javascript and a well defined hierarchy of objects that can be manipulated?

How do two people, working on two separate programs, share implemented functions "for free"? The sliding across the desk portion is irrelevant (well, it's cool, but for this specific question it's no different than sharing a gist link I think), what I'm wondering is the details.




Omar's article has all those details for you https://rsnous.com/posts/notes-from-dynamicland-geokit/


Ah, thanks. For those following along, the details (from what I've found so far) seem to indicate a language they've developed at Dynamiclab for this, Realtalk is used and embeds the idea of the whole platform (papers that can be both sources and targets of information/code) into itself, and how they interact with each other.

So, yes it's a shared language, and yes, it's a shared framework (the language embeds the framework concepts as first class entities in how it functions. That makes sense, and it also explains how some output display function (which would be fairly generic in this context) would be easily shareable, and by the nature of the platform, also immediately shareable if done in a certain way.

It is similar in concept to how Javascript ona webpage has access to the dom, and the bindings for the dom can be expected, so you can write something that transforms a <table> in some way, and expect it to function similarly is other tables are provided. But it might be even more accurate to say it's like CSS, where CSS and the DOM are so closely linked that (at least from the perspective of CSS, if not HTML elements in specific) there is no interop layer, CSS is meant to apply to an HTML document, so it's designed with that in mind and the interop layers are for the most part nonexistent.

So, in that respect Realtalk is sort of like CSS (with more programmability, I think) for this environment of sheets of paper that support input and output. Very cool.


At least when I visited (which was about 6 months ago I believe?), it was a fairly basic set of extensions on top of Lua. As in, they've added a couple keywords that I believe they just RegExp for (its pretty simple to confuse the language parser) - the language itself seems to not be the focus (yet?) of the project.

Again, I only used it once (and I made a DynamicLand compiler in DynamicLand! Video here: https://twitter.com/i/web/status/963497112284512256 ), but if I recall correctly, the main way to "share functions", was to actually just load someone's code and copy it. Partially because the language/editing seems very new still, and perhaps partially to encourage this sort of "real world sharing" vs. virtual sharing. I recall just "forking" files a lot and making new copies of things (kind of like "Old" folders I used to make before version control).




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: