| > Do you plan on using it for anything in particular? It's hard to believe, but I use that thing everyday, haha.
To me every problem is a nail solvable with my DSL hammer. > are you just creating it as a passion project. I want other people to use it, but it took a while for me to
be truly confident that it will work and the underlying math
is sound (that 2-d languages are better than 1-d langs). So
just in the past week formed a corporation
(https://publicdomaincompany.com/) and growing the team and
are actually going to try and make a good user experience
and help people use these technologies to solve their problems. > Would love to hear your opinion about this conjecture. I always think of code now in 2 and 3 dimensions. To me
after many years this is just second nature but it's not an
obvious thing and not sure I've ever met anyone else that
does this. I gave an early talk about it in 2017
(https://www.youtube.com/watch?v=ldVtDlbOUMA) at ForwardJS
(there should be an actual recording out there on the web
somewhere but I can't find it). Traditionally all programming languages are 1-D, read by a
single read head that moves linearly from start to finish
(with some backtracking, but always just along 1 axis in
order), building up an AST and then going from there.
There's no reason it has to be that way, it's just the way
things developed with our 1-D register machines. Human beings do not process language this way at all. Not
even close. If you have a physical newspaper by you,
pick it up and pay attention to the way your eyes parse
things. You'll likely notice a random access pattern, with
your eyes moving constantly across both the x and y axis,
and you parsing the semantics by things like position, font
size, layout, etc. To me it's so obvious that this is the
way computer languages should work. Their shouldn't be lots
of physical transformations of the code, using cryptic
syntax characters like ( and " and [ and { as hacks to
provide instructions to the parser. Code should be written
in accordance with a strict grammar, yes, but it should also
be written in way pleasing to the human eye and the way
human brains work. We should make human languages that machines can understand
instead of making machine languages that humans can
understand. Anyway, I'm rambling on and on, but this is the bigger idea
than simply the tree notation implementation, which is
really just a subset of a whole new world of possibilities
in 2d and 3d languages. (here's another recent one
showcasing the new possibilities: https://www.youtube.com/watch?t=145&v=vn2aJA5ANUc&feature=yo... — when I write Tree Code I see spreadsheets and vice versa) Also, when I play with legos now I see code, and when I write code I see legos. That's a hard thing to communicate and an early tool I wrote called Ohayo shows it off a bit, but need to write a single function that takes a tree program and spits out a lego vis (something like LDraw), and maybe that will help explain the idea https://github.com/treenotation/research/issues/33 |