Thursday, November 20, 2008

Dave Thomas' keynote focused on the history and future of embedded devices though much of what he explained was around the fact that what we do at Eclipse generally sucks.


In particular, Java sucks, frameworks suck, modeling sucks big time, and hence Eclipse as a whole is a complex disaster. Those sound like fighting words! He expressed dismay that EMF made modeling marginally successful otherwise modeling would have just died off long ago. I almost felt kind of guilty, until he got to the part about Domain Specific Languages being a solution to all this complexity. Hey, isn't that what modeling will help develop? I noticed that his misconceptions will be fully addressed by my talk tomorrow.

After that I attended Tonny Madsen's talk about implementing screen flows in RCP applications; he's from The RCP Company.


He explained some of the problems related to flow control in wizards and described the simpler screen flow approach he's advocating. He showed some of his cool tools for designing flows.

Benoit Langlois of Thales talked about SolFa, i.e., a solution factory for integrating components in the software generation processes.


A factory component is a unit of generation with a clear objective and a well defined contract based on view points. They are orchestrated into an overall assembled plan. It needs to bridge the gap between the flexible control desired by the users and the technical precision needed by the provider of the services. His case study example showed how SolFa can be used to orchestrate the EMF's generation process. It's interesting how SolFa makes EMF's rigid generation process more flexible by making it easily configurable as part of an overall generation plan. Much of what we have hard-coded in Java in our generator adapters can instead be orchestrated by what's effectively a SolFA DSL for that. Very cool stuff!


Next Quentin Glineur described how ATL can be used to transform EMF models in a declarative way.


It can directly operate on an instance to modify it, i.e., to implement transformations such as refactoring. Constraints can be applied to ensure that a transformation produces results that conform to expectations. Its declarative mapping design supports bidirectional transformation;
preconditions and post-conditions govern the applicability of the patterns. In the future, they'd like to align with portions of QVT core.

Peter Friese, Jan Koehnlien, and Sven Efftinge talked about Xtext, which supports the devlopment of textual Domain Specific Languages.


I love this stuff and of course it's ironic that sucky modeling technology is exactly what you need to produce DSLs, the very thing Dave Thomas asserts to be one of the important technologies for the future of the embedded space. With an augmented EBNF grammar you can define your syntax and specify the abstract modeling onto which it maps. I think this technology will have a big impact!

I had lunch with Xavier from Soyatec and Benoit of Thales to talk about starting the SolFa project at Eclipse. Woo hoo, another cool project.


I also chatted with Steve Sfartz of Microsoft to discuss how we might start a dialog with folks working at Microsoft who clearly share common interests. He already sent me a note. Woo hoo!

My good buddy Kenn Hussey of Embarcadero presented on data models.


The data model design process covers the whole abstract range of issues from contextual, conceptual, and logical to physical, definition, and instance. He talked about Information Management Model (or something like that) to help unify things like UML, Entity Relationship Diagrams, Relational models, XML Schema, and LDAP.


After that, my other good buddy, and recent new father, Cedric Brun of Obeo, presented the EMFT Compare framework.


It's fully integration with on Eclipse's team APIs, and of course is based on comparing models structurally rather than based on comparing their serialized representations. The compare editor displays the side-by-side structural views of the model, i.e., the same as the view used in the EMF editor's outline for that model. They even have an EMF Diff model that captures the differences between the two models in the form of a serialized model. They're currently prototyping support for comparing semantic instances but displaying a graphical representation of them. It's really cool!

After that yet another good buddy---no, I wasn't on the program committee picking all my buddies---Eike Stepper presented on CDO.


He drew attention to the fact that the CDO team has committed 175 bugzillas since Ganymede as an example of how active the development is. I speculated out loud that maybe it was really buggy before; it makes you wonder how I treat people who aren't my buddies doesn't it? He showed some of the cool new things in the latest version, like structured resources organized into folders, save points to support partial rollback, passive updates to disable updates to the session based on external changes, change subscriptions for producing regular EMF notifications for changes in the remote instance, and even a query framework. He's really has been busy! He finished very quickly, but there were a heck of a lot of questions! I prompted him with a question about the fact that CDO allows objects to be garbage collected since objects do not directly contain references to one another. Eike explained that this allows CDO to scale to resources that are bigger than 4G in size, for example. That was the best question and answer session ever!

After that I talked to Hajo about writing up a project proposal for the cool stuff he demoed yesterday. Woo hoo, this is going well! On my way down to the the MTL presentation I bumped into Dave Thomas and asked him what's the difference between a model and a DSL? He said they are the same thing. Excellent, that's the right answer! He said he'll be around tomorrow, so it will be cool to see what he thinks after my talk.

The good buddies never end, because Sandro Boehm was next to present JCRM.


The goal is the foster synergy between the modeling community and the JCR community. The JCR community doesn't have good tools support and the modeling community can help produce those. The modeling community benefits by virtue of having a JCR-backed data store for EMF objects. This will help provide multi-user capabilities as well as fine-grained object-level versioning. JCR is quite a nice match for EMF's type system. EMF's reflective or dynamic delegation generator patterns allow Sandro to map all data access onto the repository and easily supports locking and versioning.

This was followed by the board meeting. Those on-site at ESE congregated in a little room.



I'd tell you all about what we talked about, but then I'd have to kill you. Or they'd kill me. You'll just have to wait for the public minutes.

Finally it was time for the reception. Lynn encouraged folks like Larry to worship her as a goddess.


Janet, Chris, and Doug enjoyed their beers, although I don't think Doug approves of idol worship.


Later I there was even a pretty young woman who couldn't keep here hands off me. Despite the smile, I felt violated. I hope her husband reads this blog.


I spent quite a bit of time chatting with Maximillian Koegel and Jonas Helming about their research work relating to change management and project management.


That was a really fun night. As is so often the case, chatting with people is more than 1/2 the fun.

6 comments:

Anonymous said...

Who is Dave Thomas? Didn't he write some bad ooad books?

Anonymous said...

Man, I wish I could be there. From what I could gather, Eclipse events in Europe can be even cooler than Eclipsecon itself, at least from a modeling perspective.

Anonymous, this is the Dave Thomas Ed was referring to. Make sure read the part about OTI and Eclipse. Funnily enough, a good deal of the Eclipse Project's success (and thus of the Eclipse ecosystem as a whole) can be indirectly attributed to him.

Anonymous said...

The pragmatic Dave Thomas has more hairs on his head then the evil Eclipse-hating Dave Thomas mentioned in Ed's blog.

Anonymous said...

The pragmatic Dave Thomas has more hairs on his head then the evil Eclipse-hating Dave Thomas mentioned in Ed's blog.

Anonymous said...

EMFT Compare Ui is cool for small models but it sucks for large models (slow, unreadable)...
Viewing all differences between two models in the same window is not required in real life. A diff merge tool is based on a fine-grained unit: file not file system.
Models comparison UI shall be based on model elements not on entire models.
The solution is to list differences then display differences for each element.
See Objecteering Diff/Merge tool.

Ed Merks said...

You should raise this discussion point on the newsgroup. I wonder though why this same comment wouldn't be true of a text file?