A couple of thoughts from peanut gallery.. (I don't know if that is a good internationalized idiom or not!)
On Apr 7, 2010, at 1:40 AM, Ed Willink wrote:
Text. As soon as people want to leverage emfatic, I expect them to be able to switch to the concrete syntax in order to leverage not only the text editor, but also all other advantages (search and replace, diff, merge, etc.).
There will probably be actions to convert from *.ecore to *.emfatic (or whatever that file extension will be), but I don't see why a conversion into the other direction could be useful.
That's certainly nice and simple, but does it always work?
As a general comment relating to the larger issue -- It seems to me that ultimately it would be neat and desirable to allow the user to specify both the editor *and* the persistence mechanism independently. That way -- assuming a persistence mechanisms is truly capable of consuming and producing generic Ecore resources -- one could simply refer to .ecore and use different editors and persistence as desired. I think this is important because for me philosophically **the thing that matters is not the persistence mechanism -- or even the user presentation -- but the representation**.
There might even be an analogous preference store to file associations that would allow one to set default preferences for a given extension. As one data point, I use both EMF.Edit and XText editors interchangeably for my models and that works (generally speaking) quite well.
As another general use case, I have one model that is very very dense -- it collects data from running models. XML as we know is a horrible way to represent dense information. (Besides being a horrible thing to have to read, and a horrible thing to maintain coherently..) So I'm thinking of (in the future!) creating an EMF resource implementation that just persists this model densely. It would be nice to allow users to have a very transparent way of persisting things.
I think it is an order of magnitude better to be able to edit any given model instance in a textual editor or graphical editor or even if desired some kind of raw format at whim. I've had really good experience for example with using the generated EMF.Edit editors with XText models interchangeably. Now I understand very well that that will not always work -- for example I am developing a separate xtext implementation for my meta-model -- but that's necause there are actual semantic differences that allow greater expressivity in the textual language. With Emfatic its basically a one-to-one mapping.
I don't think I'm making a controversial argument, but I want to emphasize it as a goal. And so while I don't necessarily care for the "Save as XML" idea, I think it would be good to think about ways to provide that kind of generic facility to users.
As a final note, if there is no way to simply use .ecore for both persistence types, I really don't think .emfatic is a good choice. I know that there is a history and it's a cute name, but the relationship to .ecore is just not that strong or obvious given that it is really just another representational dialect. Perhaps something like .etext or .ecorex..
Miles |