|
Re: Is Accello mature enough for a productive environment? [message #1782715 is a reply to message #1782710] |
Wed, 28 February 2018 09:09 |
Ed Willink Messages: 7681 Registered: July 2009 |
Senior Member |
|
|
Hi
Since you ask the question directly, you should review the reasons for Eclipse OCL moving from Acceleo to Xtend(2).
I am an OMG enthusiast so for autogenerated Eclipse OCL tooling, I was keen to use OMG's MOFM2T for which Acceleo is the only available implementation. Acceleo therefore 'won' my preliminary Acceleo/Xtend evaluation.
I ran into a number of problems that you and Mad Vin have reported recently. I also ran into a further problem whereby Acceleo got confused when using one version of OCL as part of its internal tooling while another version was a 'user' model. https://bugs.eclipse.org/bugs/show_bug.cgi?id=410265 outlines the rationale for moving and consequently rewriting all the Eclipse OCL templates. It references some of the Acceleo bugs that I had raised.
Having moved to Xtend, I have had opportunities to contrast them. Xtend is far from perfect but I find its problems are more manageable; a few cleans and xtend-gen can be refreshed after a GIT commit chnage. Lexically, I prefer guilemets to square brackets with an ugly backslash; a pity I cannot type guillemets; I have to copy-paste them. More philosophically, Xtend supports Java within StringTemplates within Java providing both outer and inner programmability. Acceleo supports OCL within TextTemplates within generate. The outer level of Java programming in generate is not really there, and while OCL can be good, once you need to resort to Java invoke's it's a bit painful. More practically there are far more Java-tool users than there are model-tool users consequently the development support/user testing for Java-tools tends to be superior to that for model-tools.
NB. Xtend is 'marketed' almost as a Java++, which it isn't. But it has so many added facilities that the string templates that support M2T are easily overlooked.
The templates that I was trying to write in Acceleo were too complicated so my migration to Xtend coincided with the need to rewrite a failing M2T approach as an M2M+M2T cascade. Once over complex M2T is avoided, Acceleo may be very adequate. It is certainly mature; version 3.0.0 was available in June 2010.
Regards
Ed Willink
|
|
|
Re: Is Accello mature enough for a productive environment? [message #1782740 is a reply to message #1782715] |
Wed, 28 February 2018 18:21 |
Mad Vin Messages: 40 Registered: September 2013 |
Member |
|
|
Hi,
I've never tried Xtend still, but Acceleo, despite some problems for which we can find workarounds almost all the time, is very functional and easy to use when you are familiar with it. You can even create some functionalities that were not intended by the language, with a little imagination.
If I ask often questions here about the problems I find, it is to consult the experts about if they know more informations about them, and it they know better workarounds. I share too the workarounds I find, and sometimes it allows to fix some new discovered bugs.
Personally, I use Acceleo in a private context and in a professional context of a very big project.
The 2 problems you mention are not bugs or are not blocking : the first is a problem of environment of your generator, you can fix it by registering correctly your metamodels/profiles, and by implementing correctly your URI converter if needed. I agree that a clear user guide could be written to show how to do this because this is not so simple neither obvious. And the second problem is not critical because it happens only during the coding phase, and only on the java classes which are not the main files of the generators. If Eclipse is a problem, you can launch the generation in a standalone mode outside Eclipse, via a bash command calling an ant script for example. And it works very well, without the instabilities of the Eclipse platform. A user guide could be made to show this too.
Regards.
[Updated on: Wed, 28 February 2018 18:27] Report message to a moderator
|
|
|
Re: Is Accello mature enough for a productive environment? [message #1782764 is a reply to message #1782740] |
Thu, 01 March 2018 07:48 |
Frank Poppen Messages: 21 Registered: February 2018 |
Junior Member |
|
|
Mad Vin wrote on Wed, 28 February 2018 18:21... you can fix it by registering correctly your metamodels/profiles, and by implementing correctly your URI converter if needed.
Well, I was hoping that - SysML not being a strange thing to use - it would working out of the box or at least a simple "google" would get me going here in 10 Minutes. I really like the first expression of using the Acceleo Template Language. It does exactly what I will need, I believe. But this is really my first contact to Eclipse and Java (and Ecore and EMF and ...) and I was hoping I could use the Template Language without a deep study.
(Enough writing, back to work!)
[Updated on: Thu, 01 March 2018 10:11] Report message to a moderator
|
|
|
Re: Is Accello mature enough for a productive environment? [message #1782777 is a reply to message #1782764] |
Thu, 01 March 2018 10:06 |
Mad Vin Messages: 40 Registered: September 2013 |
Member |
|
|
MDA is not simple and need a little work to be familiar with it, first about the concept, and second about the tools you use. And this is very difficult (even impossible) to find a clear and complete documentation about the Eclipse plugins. Personally, I agree with you about the fact that there is a big lack of documentation and examples about EMF, Ecore, OCL, and Acceleo. This is a very common mistake in the computer science. For example Eclipse provides the "Cheat Sheets" feature, and I think it is clearly underused by the developers of the plugins.
(Yeah ! Back to work too ! :p)
[Updated on: Thu, 01 March 2018 10:07] Report message to a moderator
|
|
|
Powered by
FUDForum. Page generated in 0.05411 seconds