4 ms·
Have you heard of dion? https://media.handmade-seattle.com/dion-systems/ https://media.handmade-seattle.com/dion-systems/ It's still in the category of "inser
by PainfullyNormal 4y ago
Have you heard of dion?
https://media.handmade-seattle.com/dion-systems/ https://media.handmade-seattle.com/dion-systems/
It's still in the category of "inserting text with the keyboard", but the underlying representation of the "program" isn't raw text. The text is just a user interface for a more complicated representation.
- mikewarot 4y agoI've had an idea like this forever.... they brilliantly handled the UI in a way that I never could resolve successfully. WOW Watching more, and reading more, to find out they abandoned the idea..... makes me think of Charles Babbage moving on to the Analytical Engine before getting the Difference Engine completed. 8(
- axblount 4y agoTheir website is `dion.systems`.
- kragen 4y agohttps://github.com/dion-systems/metadesk https://github.com/dion-systems/metadesk seems to be the repo for their prototype. It seems like it's vaguely similar to SGML but with small but significant differences: instead of <a>blah blah</a> you say a: "blah blah", the node labels can be user data instead of just structure, attribute values are full subtrees instead of just strings, and attributes syntactically precede the node, so you say @foo(bar) baz instead of <baz foo="bar"/>.
- unsafecast 4y agoThat's not Dion. It's a plain text language for DSLs. This is Dion: https://dion.systems/gallery.html https://dion.systems/gallery.html (Those are videos)
- kragen 4y agoI see, thanks. Is there any information about Dion that isn't a video?
- cloudmike 4y agoThe makers of Dion now work at Epic. My guess is they're contributing to Verse [0], a new programming language (environment?) being worked on at Epic, which could be of interest to people in this thread. Verse is believed to include ideas from SkookumScript, which Epic acquired [1], and Simon Peyton Jones, a main contributor to Haskell [2]. [0] https://twitter.com/saji8k/status/1339709691564179464?s=20 https://twitter.com/saji8k/status/1339709691564179464?s=20 [1] https://skookumscript.com/blog/2019/01-23-epic-aquires-agog/ https://skookumscript.com/blog/2019/01-23-epic-aquires-agog/ [2] https://discourse.haskell.org/t/an-epic-future-for-spj/3573 https://discourse.haskell.org/t/an-epic-future-for-spj/3573
- rvdginste 4y agoI've been thinking about this before that you can do more when you work with the abstract syntax tree instead of the plain text and I was wondering whether someone actually did something with this. It's really cool to see their work. I don't know whether they went that far, because I didn't watch the video on the site completely yet, but when you work with the abstract syntax tree, every change becomes a manipulation on that syntax tree. When you think about source control, you can use that concept in there too and store the changes on the syntax tree instead of individual edits. And when you do that, you would get a lot smarter merging, rebasing and conflict resolving. For example, suppose you have a variable and branch 1 renames that variable and branch 2 introduces a new use of the variable. If you merge branch 1 and 2, or you rebase branch 1 on top of branch 2, you will not get a conflict, but the code will be broken. If you work based on the abstract syntax tree, the merge would automatically do the correct thing. Another example would be that branch 1 renames the variable to x and branch 2 renames it to y. In that case, you would get a conflict upon merge, but not upon rebase. (for rebase: last committer wins) In the case of the merge, the system would know that the conflict is the rename of a variable to 2 different names, and the user would be able to decide on which name must be used. I think it's really an idea worth exploring further and could have a big impact on the quality of code and on the efficiency when working in teams.
- tadkar 4y agoI think JetBrains have something where you can do something like what you’re looking for. https://www.jetbrains.com/mps/ https://www.jetbrains.com/mps/
- panstromek 4y agoThat's the idea, but I'm not sure about the AST - that is usually too low level for this kind of reasoning. What you really want for this is similar to reflection types in Java.