Tutorial done, that next?

Hello,

I perform tutorial and get the picture as:

1. MPS is generation engine

2. MPS is language definition engine

3. MPS can perform HelloWorld example...

Then i open Fibonachy project and ... that is that? That this project is

show? It just program...

I can do it without MPS more-more quickly and effective.

So, can someone explaned that purposes of this researching? That is MPS can

solve in near future?

After tutorial, i try to make my ouwn language.. but i can't... Many-many

magic objects, linked/unlinked together.

Sometimes it switch to IDEA and show me code... Tooo complicated for first

:-))

Thanks!

--

Alexey Efimov, Java Developer

Tops BI

0
22 comments

Alexey

Look at the thread: "Refactoring to mps: how to?"

I share your pain.

Alain

0

I believe, there should be different, belonging tutorials for the

different parts of MPS. For example, one tutorial should show with an

easy task how to write a program in an existing, well-known DSL (e.g. a

crippled Java-like one). Another following-up tutorial should

demonstrate how to generate the output. Another one should show how to

modify the DSL to better match the tasks domain.

Generally, I believe, you most likely will only very seldom create a

language from the ground-up. But more often you will start with a more

general "DSL" (like Java) and turn it into a "domain specific Java".

Tom

0

Hello Tom,

I believe, there should be different, belongingtutorials for the  

different parts of MPS.

+1

Generally, I believe, you most likely will only very seldom create a  

language from the ground-up. But more often you will start with a more  

general "DSL" (like Java) and turn it into a "domain specific Java".

I try to implement SQL select syntax but it to complicated for me :-)

Thanks!

0

Alexey Efimov wrote:

After tutorial, i try to make my ouwn language.. but i can't...

Many-many magic objects, linked/unlinked together.

Sometimes it switch to IDEA and show me code... Tooo complicated for

first :-))

At this point, what is most needed is feedback from people like

yourself. Give examples of usability problems, places where you are

stuck. Explain what you want to do and why MPS is getting in your way.

MPS is currently a tool only for the MPS developers. They know it

intimately and can use it (for example, to program MPS itself). However,

we need to make it a tool that other programmers can use too. That's

what the EAP is for. Give us some specific examples of what you need to

use it more effectively.

--

Rob Harwood

Software Developer

JetBrains Inc.

http://www.jetbrains.com

"Develop with pleasure!"

0

Rob

...Give us some specific examples of what you need to use it more

effectively.

>

From another thread:

>  A sample  java project to start with would be ideal (? an ATM

program ?).

>  Questions (illustrated in the project) :

>   - what kind of smells are we looking for, when refactoring to MPS?

>   - what are the MPS (manual) refactorings?

>   - how do you move your code to MPS, in baby steps?

Alain

0

So, can someone explaned that purposes of this researching? That is MPS

can solve in near future?

There is plenty being written about the purpose of DSLs, language

oriented programming and language workbenches and what the purpose of

this is. Read Dmitriev's and Fowler's articles about it for example.

-Karl

0

Karl

>

There is plenty being written about the purpose of DSLs, language

oriented programming and language workbenches and what the purpose of

this is. Read Dmitriev's and Fowler's articles about it for example.

>

That's not a good answer. Read the threads, and try again.

Alain

0

Alain Ravet wrote:

>  A sample  java project to start with would be ideal (? an ATM

program ?).

>  Questions (illustrated in the project) :

>   - what kind of smells are we looking for, when refactoring to MPS?

>   - what are the MPS (manual) refactorings?

>   - how do you move your code to MPS, in baby steps?

Yes, I agree that will be an important demo/tutorial. However, in the

next few days, I think just finding all the stability problems and bugs

will be most important. I noticed a few while trying the tutorial, such

as some error I got which I couldn't solve because the error didn't give

useful information. That kind of thing.

--

Rob Harwood

Software Developer

JetBrains Inc.

http://www.jetbrains.com

"Develop with pleasure!"

0

Fibonacci project included to give you a taste of non-text-base editor.

It is written in bare baseLanguage which resembles java so you wont have problem with semantic.

Try to change name of "myFirst" field in class LongPair - the re-name refactoring is not needed any more!

We understand that at the moment our editor can't compete with good text-based editor. And we need feedback and ideas on the matter.

0

The answer wasn't that bad :-)

You can notice that good half of demo-projects are illustrative material to Martin Fowler's article (agreement and fixedLengthReader).

When Fowler first seen mps he immediately imagined application for it.

Just be creative:)

0

Hello alshan,

a> When Fowler first seen mps he immediately imagined application for

a> it.

;-) tell us true! :-)

--

Alexey Efimov, Java Developer

Tops BI

0

may be not instantly but he did :-)

0

alshan wrote:

>The answer wasn't that bad :-)

>

"We've just made a new kitchen appliance, that lets you cook food with

microwaves.

For instructions, check any good Physics note book."

Alain

0

alshan wrote:

>The answer wasn't that bad :-)

>

It sounded like "Do you homework. RTFM", and I resented it.

Of course, I did my DD before asking any question. We all did, with so

few learning resources: one article, and one tutorial .

Maybe my reply was a little harsh. Sorry Karl.

Alain

0

:-) i meant that to do next step you should have you own idea about some little language which would reduce typing. That is it? depends on what you type.

0

alshan

>:) i meant that to do next step you should have you own idea about some little language which would reduce typing.

>

I'm not really interested in creating a fake language to control Hubble

2, or a thing like that,.

As I wrote in other threads, I'd like to introduce a little MPS in my

code. That's what Serguey "promised" in the original article:

     "There is already a prototype plugin for IntelliJ IDEA

     "which will allow you to include MPS concept models

     "in your project...So, you will be able to write part of your

     "Java applications using MPS, as much or as little as you want."

So, how, where and when do we do that? Rob already acked this request in

another message. I'll just be patient.

Alain

0

Alain Ravet wrote:

"We've just made a new kitchen appliance, that lets you cook food with

microwaves.

For instructions, check any good Physics note book."

:-D But you must admit, the first microwave oven probably required a PhD

to operate it safely! Things cannot be easy to use right from the very

beginning.

--

Rob Harwood

Software Developer

JetBrains Inc.

http://www.jetbrains.com

"Develop with pleasure!"

0

I agree totally with Tom. As matter of fact, I have use case where I would like to extend Java's operators like +,-,/,*,&& etc. to cover the specific types in my problem domain. These oeprators have well defined meaning in our community. It's very natural thing for them to write something like

Layer layer1 = ....

Layer layer2 = ....

Layer layer3 = layer1 + layer2;

In additon, I am also very interested in introducing new operators so that I can write something like

Layer layer3 = layer1 newOperator layer2

Are this kinds of extension possible with MPS?

Thanks

Frank

I believe, there should be different, belonging

tutorials for the

different parts of MPS. For example, one tutorial

should show with an

easy task how to write a program in an existing,

well-known DSL (e.g. a

crippled Java-like one). Another following-up

tutorial should

demonstrate how to generate the output. Another one

should show how to

modify the DSL to better match the tasks domain.

Generally, I believe, you most likely will only very

seldom create a

language from the ground-up. But more often you will

start with a more

general "DSL" (like Java) and turn it into a "domain

specific Java".

Tom

0

Personally, my next step is going to be to try and create an MPS project for Ant.

It seems like a good candidate - I know Ant pretty well, it has a pretty clean model, etc.

Now I think I can generate some static semantics for Ant and all the built in tasks using simple reference and aggregate links, and a few properties.  I could probably write a generator that uses XML as its format.  

The real reason I would want to do this is to play around with different editors for ANT ('cause XML is horrible for editing), and make it easier to include logic not easily expressible in ANT (through BSF, etc).

I think the two things that will cause me some real headaches are:

1) Ant-property expansions (where an ANT file includes something like "hello ${planet.name}"), and

2) the fact that tasks can be defined externally to the language (through task-defs and included jars).

I'm sure I'll come up with something workable for 1), but for 2), I'm not sure.  Would it involve adding semantics to the language for each potential 3rd-party task?

Only time will tell...

0

Personally, my next step is going to be to try and create an MPS project for Ant.

It seems like a good candidate - I know Ant pretty well, it has a pretty clean model, etc.

Good idea! ANT is quite OK, but sometimes I miss a possibility to define methods

Tom

0

Hello Thomas,

TS> Good idea! ANT is quite OK, but sometimes I miss a possibility to

TS> define methods

As Martin Fowler says - XML is definily quite DSL itself. Any of XML schemes

;-)

--

Alexey Efimov, Java Developer

Tops BI

0

Personally, my next step is going to be to try and

create an MPS project for Ant.

...

Now I think I can generate some static semantics for

Ant and all the built in tasks using simple reference

and aggregate links, and a few properties.  I could

probably write a generator that uses XML as its

format.  

That’s nice idea!

To boost your work I've turned up our xml (we have one among languages) to be target of generation.

I've also made sample of xml generator.

Do you remember the Martin Fowler's paper on Language Frameworks?

There he considers two alternatives: xml configuration file and configuration via dedicated ReaderConfiguration api.

We have corresponding projects in MPS EAP distribution.

They are:

MPS\projects\fixedLengthReader\readerConfigLanguage.mpr  - definition of sample dsl (including generators)

MPS\projects\fixedLengthReader\readerConfigModels.mpr     - sample model from which you can generate java and , now, xml.

Xml related staff will appear in next EAP build.

Igor

0

Please sign in to leave a comment.