4 ms·
Tree Notation looks very interesting. It also looks like just another version of S-expressions (but with indentation instead of parens). That's not a bad thing,
by ar-nelson 6y ago
Tree Notation looks very interesting. It also looks like just another version of S-expressions (but with indentation instead of parens). That's not a bad thing, though! S-expressions aren't used nearly as much as they should be, and indentation syntax can be much clearer than parens.
What's most interesting is the language design DSL that makes it easy to put together a new tree language. I wonder if that can be implemented in Lisp, possibly with an indentation-sensitive syntax like Wisp[1] so that it retains most of Tree Notation's features.
[1]: https://srfi.schemers.org/srfi-119/srfi-119.html https://srfi.schemers.org/srfi-119/srfi-119.html
- breck 6y agoYes! It's mostly S-Expressions! However, the magic happens when you remove the parens and go to 2 and 3 dimensions. Think of Javascript, which has 20 million users, versus Excel, which has 2 billion^1. To paraphrase Twain, removing one thing can be the difference between a lightning bug and lightning. [1] Numbers are approximate.
- ar-nelson 6y agoCould you give an example (or a link) that demonstrates this higher-dimensional syntax? Are there things you can express with it that couldn't be expressed in S-expressions?
- breck 6y ago> Are there things you can express with it that couldn't be expressed in S-expressions? No. But that may be like asking "is there something I can do with the x86 that I couldn't do with any Turing Machine?" Pragmatically speaking when you factor in UX and time there are things that are dramatically faster with Tree Notation versus S-Expressions. For example, here's the editing experience for an upcoming DSL to enable non-programmer researchers to put together topical exploratory data analysis tools: https://github.com/treenotation/random-demos/blob/main/Screen%20Recording%202020-12-21%20at%206.51.02%20AM.mov https://github.com/treenotation/random-demos/blob/main/Scree... Lots of things that are muscle memory to Excel users (drag to fill, copy/paste blocks, move columns and rows, et cetera), would be very ugly/hard to do if we were using paren based S-Expression notation.