JetBrains' MPS Projectional Editor [video](youtube.com)
youtube.com
JetBrains' MPS Projectional Editor [video]
https://www.youtube.com/watch?v=iN2PflvXUqQ
8 comments
If you enjoy these types of compiler videos then I would highly recommend the following rants against Scala by Paul Phillips (from TypeSafe and one of the core language contributors). He also talks about wanting to edit abstract syntax trees directly:
https://www.youtube.com/watch?v=TS1lpKBMkgg
https://www.youtube.com/watch?v=uiJycy6dFSQ
I think this could be the future. Some tools (like Emacs' Paredit) are trying to do things like this with text but I think projectional editing is a better solution.
The problem is that it will take some kind of miracle or great revolution for it to ever have a place in our workflows.
The problem is that it will take some kind of miracle or great revolution for it to ever have a place in our workflows.
One caveat with this projectional editor:
Not possible to copy and paste of code inside editor
Not possible to copy code snippets (for example from a website) and pasting into the editor.
Thats very weired to write the code - you can not write natural a text
(Tested with the workflow editor from youtrack - it was a bad experience)
Not possible to copy and paste of code inside editor
Not possible to copy code snippets (for example from a website) and pasting into the editor.
Thats very weired to write the code - you can not write natural a text
(Tested with the workflow editor from youtrack - it was a bad experience)
Really nice tooling. I like how the editor guides you 'fill in the next blank'.
Since you write the AST directly, this seems to be a lisp without parentheses.
Since you write the AST directly, this seems to be a lisp without parentheses.
From someone who compared MPS with Xtext :
"2 days of work in MPS were recreated in 30 min using XText"
http://arnon.me/wp-content/uploads/2015/06/DSL-summary.pdf
http://arnon.me/wp-content/uploads/2015/06/DSL-summary.pdf
If a JavaScript dev likes the idea of AST refactoring, I recommend a look into grasp[]. It's like grep but works with the AST representation of a file instead of the Text.
[] http://www.graspjs.com
[] http://www.graspjs.com
Somehow, I shudder when thinking about meta-programming and DSLs in Java.
The point of the idea is, if you combined meta-programming and DSLs with Java, you don't have Java anymore. MPS calls their Java dialect "baseLanguage" and it's actually Java + a lot of small DSLs with custom renderings and editors.
MPS is one of the most mind blowing developer projects I ever encountered. But I first played with it years ago and have tried most versions since, and unfortunately it never made it past the "cool, neat, but I don't have a use for it" stage. Somehow I always end up back with regular IntelliJ and Java or Kotlin.
One reason: MPS is one of those concepts that's just such a huge leap over what we do today, I worry about losing other possible contributors if I use it. Also, for example, the projects are stored as giant XML files on disk, so github diff viewers and other text based tools wouldn't work. Perhaps I should just take the leap for a small personal project.
MPS is one of the most mind blowing developer projects I ever encountered. But I first played with it years ago and have tried most versions since, and unfortunately it never made it past the "cool, neat, but I don't have a use for it" stage. Somehow I always end up back with regular IntelliJ and Java or Kotlin.
One reason: MPS is one of those concepts that's just such a huge leap over what we do today, I worry about losing other possible contributors if I use it. Also, for example, the projects are stored as giant XML files on disk, so github diff viewers and other text based tools wouldn't work. Perhaps I should just take the leap for a small personal project.
I know what you mean. Somewhere, out there, we'll find an MBA-type, trying to paste an Excel spreadsheet into one of those tabular data types, and a black hole will open up and swallow the Earth whole.
I'm mostly worried about copy-paste becoming troublesome, one of the biggest advantages of text editing is that it's so raw and if you know your tools you can transform a lot of it quickly instead of being constrained to repetetive clicking through clunky wizards and menus with your mouse.