04/08/09 :: [MOP] Where is Oslo Going? (III) [permalink]
Doug Purdy continued the discussion. He also commented on Charles Young comment. Woa, what a change from the REST debates, no more discussion about the meaning of PUT or arguing about URI templates. Should have stopped arguing about that a long time ago. I mean how can you not want to discuss a sentence like this?
‘Mn’ agnosticism, I suggest, is an aspect of the true foundation on which Microsoft is constructing Oslo.
Doug added on top of that statement that "Oslo can do everything, data, metadata,...", yeah.
I actually don't disagree that Oslo can do all Mn level, that would be quite surprising if it was designed with a missing level. The question, the fundamental question that Charles raises is that can you define your own M3 layer in Oslo or is the M3 layer defined by Oslo? The additional question is how does "implementations" is defined in Oslo's M3 layer?
Let me explain why I talk about "implementation" rather than "method". As you know the metamodel of a Class in an OO runtime has both attributes and methods. If you look at a service, you are talking about operations. Sometime, operations map well to a method (some people actually believe that a Service operation IS-A class method), but not always. You can create a Service implemented as an orchestration and it has ONE implementation which integrate multiple operations. So unless the M3 layer of Oslo does not define an implementation element, I can safely argue that Oslo won't be usable to create a programming model for a large class of connected systems. It is not a matter of grammar or "Mn agnoticism", it is a matter of defining M3 properly, which MOF of Ecore can't do. So if it is not too much to ask, could please clarify the M3 layer of Oslo or, possibly what are the extensible mechanisms you provide at the M3 level to support this kind of concept.
So as you can see, the question is a lot more fundamental than your answer seem to indicate and I would like to continue to argue that if you continue mapping M to code snippets you might miss very important requirements.
Doug, on the other topics (productivity, hi-REST...), let's agree to disagree, it is actually not as important as the M3 question (incidentally, nobody had ever told me that REST clients were so hard to build...).
I like your quote by the way "All Applications in the World are CRUD" :-) This is with this kind of visionary statement that Software Engineering keeps making leaps and bounds...
Update: I found this article written by Charles Young earlier this year. It is certainly worth a read. This is what he concludes:
I’ve attempted, in this article, to explore the Oslo repository from a wider industry perspective informed chiefly by the OMG standards. My plea is that we avoid thinking of Oslo as a rival to MOF-compliant approaches, including MDA. The Oslo vision is about building pragmatic support for modelling practices into a particular platform, and to do so in a way that sets the entry bar as low as reasonably possible for ISVs and development teams. Almost by definition, therefore, Oslo cannot afford to be constituted as a rival to a widely supported set of industry modelling standards. Microsoft must, instead, ensure that Oslo remains ruthlessly agnostic about such matters so that it can be used to support any relevant standards and specifications as and where necessary, and also appeal to those who’s modelling needs are not conformant to specific standards.
I don't have a strong opinion about a particular M3 level. As I said many times, a lot of people are using UML as a metametamodel and that's really bad. But you can't simply ignore your M3 layer. My plea to Charles and Doug is that instead of being (just) "pragmatic" (which seems to become Microsoft's excuse for not scratching its head), they would actually use an M3 layer (because whether you want it or not, M3 exists) to at least measure how much "pragmatism" they are going to be able to deliver. As I said several times, I don't think Quadrant and the repository are that important today, M is the value behind Oslo, driving M from the repository is IMHO a strategic error, Charles. M has a metametamodel and not driving M from this perspective is the absolute worst direction you can take.
Microsoft has convinced itself way too often to take the "low" road on some project. I am personally a bit sick of that, it seems that Oslo is taking the same path as WCF/WF and it will take years to undo quick "pragmatic" decisions made in the early days of the project. Considering that WCF was announced in 2003, shipped in 2007 and being rewritten (one more time...) in 2009 for a release in 2010-2011, it looks like we should expect Oslo to do anything useful in 2014-2015 timeframe. I wish a lot more people would have the luxury to work with these kinds of time frames.