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
Please sign in to leave a comment.
Alexey
Look at the thread: "Refactoring to mps: how to?"
I share your pain.
Alain
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
Hello Tom,
+1
I try to implement SQL select syntax but it to complicated for me :-)
Thanks!
Alexey Efimov wrote:
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!"
Rob
>
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
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
Karl
>
>
That's not a good answer. Read the threads, and try again.
Alain
Alain Ravet wrote:
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!"
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.
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:)
Hello alshan,
a> When Fowler first seen mps he immediately imagined application for
a> it.
;-) tell us true! :-)
--
Alexey Efimov, Java Developer
Tops BI
may be not instantly but he did :-)
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
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
:-) 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.
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
Alain Ravet wrote:
:-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!"
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
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...
Good idea! ANT is quite OK, but sometimes I miss a possibility to define methods
Tom
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
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