When I discovered MPS by accident the other day, I was quite excited
to have a play with it, but after working through the tutorial I've lost
much of my previous enthusiasm.
I think the reason is that MPS (at least the tool, perhaps the language) is suffering from some of the same problems that EJBs and in particular
Sun's reference implementation of an application server suffered from:
It's just too fiddely to work with, it requires too many steps to do
anything and when things go wrong, there is no good debug output.
I know Lisp is a big no-no to alot of people, but Common Lisp's macro
system is powerful, but quite simple and intuitive to use at the same time.
Consider developing a Lisp macro to create your own 'timestwo' operator. Normally to multiply a number 'n' with two you do:
(* x 2)
Now, to extend Lisp's syntax (hmm) you simply do:
(defmacro timestwo (n)
'(* ,n 2))
Done. That's it. You now have an operator, called timestwo, which takes a number and multiplies it with two. Like so:
As far as I understand MPS, doing something similar involves at least two tools, and creating generators, mappers and whatnot in various point and click submenus. I mean - perhaps MPS is more powerful than Lisp macros, or intended to do something different, but there's just too much crap to do. I shouldn't have to do all this, I shouldn't have to care, it should be autogenerated behind the covers for me!
Maybe what I want is the Java Syntactic Extender: http://people.csail.mit.edu/jrb/jse/index.htm
Or am I missing something? Is there something intrinsic about LOP that means the tool to use it must be so utterly - well unusable? (Even
when developed by the people behind the most usable Java IDE?)