8 comments
Comment actions Permalink

Thanks, Rob, for this interesting perspective.

However, I must say I always take caution simplifying the world in ways
such as this or the promise of the OO (r)evolution.

We now know that OO programming is just another tool, and so is a lot of
other smaller and larger tools (Java, C++, servlet containers, Apache
Ant, etc.)

It is up to us as responsible developers and engineers (OK, so I'm a
wreckless mindless hack :) ) to choose our tools wisely for the
specific problem at hand.

From that point of view I am not sure that I would place JUnit on the
same level as Java. To alleviate the huge over-flexibility in the
software development world I want to layer technologies or place them in
'tool trees' rather than flatten the world of tools putting them all on
1 long table.

Regards,
Amnon I. Govrin



Rob Harwood (JetBrains) wrote:

Here's a post I made for anyone interested in Language Oriented
Programming. Basically, I propose the phrase 'Everything is a language',
and give some examples of where I see them:
http://javablogs.com/Jump.action?id=208070

0
Comment actions Permalink

Amnon I. Govrin wrote:

From that point of view I am not sure that I would place JUnit on the
same level as Java. To alleviate the huge over-flexibility in the
software development world I want to layer technologies or place them in
'tool trees' rather than flatten the world of tools putting them all on
1 long table.


I don't consider saying that JUnit is a language is the same thing as
putting JUnit on 'the same level' as Java. It does mean that we have to
rethink what 'language' means though. For instance, Java is a large,
flexible, general purpose language. JUnit is a small, focused,
domain-specific language. I see JUnit as somewhat of an adaptation of
Java, like English scientific lingo is an adaptation of normal English.
Still a 'language' in the sense that it could/should be manipulated in
the same ways as other languages.

E.g. Saying 'everything is an object' isn't saying that all objects are
'on the same level'.

--
Rob Harwood
Software Developer
JetBrains Inc.
http://www.jetbrains.com
"Develop with pleasure!"

0
Comment actions Permalink

Hi Rob,

For me, this refinement makes a lot of difference and puts the
"everything is a language" moto in much better perspective.

Regards,
Amnon



Rob Harwood (JetBrains) wrote:

Amnon I. Govrin wrote:

>> From that point of view I am not sure that I would place JUnit on the
>> same level as Java. To alleviate the huge over-flexibility in the
>> software development world I want to layer technologies or place them
>> in 'tool trees' rather than flatten the world of tools putting them
>> all on 1 long table.


I don't consider saying that JUnit is a language is the same thing as
putting JUnit on 'the same level' as Java. It does mean that we have to
rethink what 'language' means though. For instance, Java is a large,
flexible, general purpose language. JUnit is a small, focused,
domain-specific language. I see JUnit as somewhat of an adaptation of
Java, like English scientific lingo is an adaptation of normal English.
Still a 'language' in the sense that it could/should be manipulated in
the same ways as other languages.

E.g. Saying 'everything is an object' isn't saying that all objects are
'on the same level'.

0
Comment actions Permalink

Hey Rob,

I hope you are aware that after a bunch of posts about the first OnBoard-Edition, you are again making all our mouths water - which is pretty bad for the keyboards!
Any news on when a preview of MPS will be out?

Regards,
Jens

0
Comment actions Permalink

Jens Voss wrote:

I hope you are aware that after a bunch of posts about the first OnBoard-Edition, you are again making all our mouths water - which is pretty bad for the keyboards!
Any news on when a preview of MPS will be out?


Unfortunately, I don't know the details on that. But I heard from Sergey
Dmitriev that he's working on an article which hopefully will feature an
example of MPS in action and possibly a preview version. Again, I don't
have info on when. Sorry.

--
Rob Harwood
Software Developer
JetBrains Inc.
http://www.jetbrains.com
"Develop with pleasure!"

0
Comment actions Permalink

Rob, you are unfair. From time to time you through in an indirect word about
MPS and when asked about details, you don't know them. We are developers, no
marketing guys, we want something to work with - not just articles (who are
- judging from the previous one - are a joy to read). Give us a simple MPS
plug-in for IDEA with limited functionality and we are happy.

Tom

0
Comment actions Permalink

Thomas Singer (MoTJ) wrote:

Rob, you are unfair. From time to time you through in an indirect word
about MPS and when asked about details, you don't know them. We are
developers, no marketing guys, we want something to work with - not just
articles (who are - judging from the previous one - are a joy to read).
Give us a simple MPS plug-in for IDEA with limited functionality and we
are happy.


:) Sorry Tom. I just write about it because I see it as the future and
want others to be aware of it (instead of getting boondoggled by MDA and
Software Factories). I actually don't work on the project. I was
involved briefly when Sergey was in Prague, but now he's in Boston and
the project followed him. I only hear snippets now and then, so I can't
keep you properly informed. :(

Apparently, Xactium already has something you can try. Their philosophy
is closer to LOP, although they use a lot of MDA terminology. I think
over time, they will move closer to LOP.

Here's their recent whitepaper (remind you of anything? ;-):
http://albini.xactium.com/content/index.php?option=com_remository&Itemid=28&func=selectcat&cat=4

You can find info about their trial product on their main website:
http://albini.xactium.com/content/

Since it's an emerging field, I don't mind mentioning a 'competitor'. It
looks like Xactium could be going on the right path as well. Let's hope
so. (NB: I haven't tried the product.)

--
Rob Harwood
Software Developer
JetBrains Inc.
http://www.jetbrains.com
"Develop with pleasure!"

0
Comment actions Permalink

Hi Rob,

Just responding to your link to the work we're doing at Xactium.

I agree with what people are saying here, pretty much.
Everything is a language - indeed there's been plenty of work that has led to the same conclusion in academic circles.

What I would add are that is something else you need in addition to language and that is mapping.

Mappings are critical perspective because they define so many key relationships between languages, including design to code mappings, design integration and reverse engineering mappings. The same applies to models of tools. If you have a graphical view and a browser view on a program, you are defining two languages: a graphical language and a browser language, yet it is key that you capture the mapping that relates the two views.

Of course, you can have mapping languages, but I think it is such an important abstraction that it needs distinguishing from 'language'. Maybe "everything is a language or a mapping" would be better.

In XMF-Mosaic, our commercial product, you get access to a fully reflective meta-programming language, which is dynamaically extendable. Upon that we have built languages for rapidly building tools and for automating everyday software development tasks. For instance, a GUI modelling language that connects to the open source Eclipse IDE, languages for performing transformations, languages for checking constraints and for doing pattern matching, and so on. The tool is being used on commercial projects, so hopefully it is strong evidence that this approach works.

You also mention MDA: we've tried to keep to the spirit of this because we think standards are important. So when you create models in the tool they conform as far as possible to standards like UML. If people want to try it out, then
let me know!

And Sergey referenced our book Language-Driven Development in his first LOP article.

Best Wishes,

Andy

MD Xactium

0

Please sign in to leave a comment.