5 ms·
Projectional Editing (2008)
- trashburger 4y agoI think it would be interesting to have a system where all of these representations are collected in a single, unified projection of the object which allows you to see the object's contents, and the live object being edited would then be stored in a snapshot for the storage representation. The programming environment would then allow you to get the abstract representation by giving you the ability to traverse between the live objects, giving you the ability to navigate the entire system model end-to-end. Such a system probably requires not going through a compiler, though; it requires a Lisp/Smalltalk level of interactivity.
- mdaniel 4y agoThe article name-checks IJ, but they have a separate projectional language workbench: https://github.com/JetBrains/MPS#readme https://github.com/JetBrains/MPS#readme Allegedly early version of their issue tracker were written in it, so it's apparently been used in anger and TIL that GitHub even tracks "JetBrains MPS" as a recognized language: https://github.com/search?q=mps+language%3A%22JetBrains+MPS%22&type=Repositories&ref=advsearch&l=JetBrains+MPS&l= https://github.com/search?q=mps+language%3A%22JetBrains+MPS%...
- a1445c8b 4y agoThanks for sharing this! I’ve become reluctant to build standalone/external DSLs due to my past experience where I had to also be responsible for building the developer tooling around it such that it’s easier for others to adopt it. JetBrains MPS seems to be a good tool that solves my aforementioned “last mile” issues with external DSLs.
- mikewarot 4y agoI've done some limited experimentation with this[2], and it seems like a quite powerful technique for programming. I was inspired by this demo[1] of Dion from 2020. (The first video is amazing) [1] https://media.handmade-seattle.com/dion-systems/ https://media.handmade-seattle.com/dion-systems/ [2] https://github.com/mikewarot/TreeHouse https://github.com/mikewarot/TreeHouse