
Meta Programming System Language Oriented Programming environment - mmavnn
http://www.jetbrains.com/mps/
======
serichsen
I have the impression that this is mainly a point-and-click GUI for an
implementation of a quarter of Common Lisp.

To translate their calculator tutorial
(<http://www.jetbrains.com/mps/docs/tutorial.html>), in Common Lisp you would
write a little macro "define-calculator" that then lets you write something
like this:

    
    
        (define-calculator java-and-php-hours
          (input java-hours :label "Java hours")
          (input php-hours :label "PHP hours")
          (output (+ (* java-hours 10)
                     (* php-hours 5))
                  :label "Total"))
    

It would be based on some library (e.g. common-qt) that provides GUI
primitives.

------
agentultra
_This naturally leads to the idea of non-textual presentation of program code.
A major benefit of this approach is that it eliminates the need for code
parsing. Our solution is to have code always maintained in an Abstract Syntax
Tree (AST), which consists of nodes with properties, children and references,
and fully describes the program code._

So.. Common Lisp? I just read the article about the stupidity in file systems.
In it the author laments the old adage about history repeating itself. He
coins the anecdote, _there are no new engineering problems, just new engineers
solving old problems._

I can imagine this MPS product being incredibly useful... but we have had this
technology for nearly 40 years in some for another of Lisp. And most Lispers
would agree that extending the program language and semantics to the domain is
a very productive way of writing reliable and maintainable software.

I am curious though what makes MPS superior exactly? Seems more complicated
than Lisp, but I'm no MPS expert. Can anyone enlighten us?

~~~
cyrus_
In what way is Common Lisp using "non-textual presentation of program code"?
S-expressions are still textual. For example, you can't associate information
with S-expressions that is not visible on the screen. And you can use much
more natural syntax in MPS than in Lisp (not trying to start a tired old flame
war.)

~~~
agentultra
S-Expression are in many regards the AST of a Lisp program. Macros create the
high-level domain-specific semantics. If textual representation is important
as well, you can write reader-macros. Lisp is really good at this sort of
"meta-language programming."

It still seems to me that everyone, eventually, implements Lisp in one way or
another (or at least some small part of it).

 _edit: grammar corrections_

------
Egregore
In short it's an IDE to create new languages, and those languages will have
IDEs, cool stuff I would say.

I remember in 2006-2007 I've tried MPS, back then it looked too complicated, I
hope that now guys from JetBrains have improved the documentation.

------
jefffoster
There's also Intentional software (<http://intentionalsoftware.com/>) who
offer a similar product. It was hyped quite heavily a few years ago, but I've
not heard much about Intentional Software's product or MPS.

Is anyone seriously using a language workbench tool? If so, what are you
experiences with it?

------
m1nes
Just for the record, they already use it to build the Youtrack bugracker:

<http://www.jetbrains.com/youtrack/>

------
ngvrnd
Someone actually made this thing! It was probably a lot of effort, and there
it is! Why would anyone want to use it?

------
markokocic
Why would we need this? I don't get it. What's wrong with good old DSLs?

