Programming Heroes: A Conversation With Ed Merks
|Length:||31:10 minutes (8 MB)||Downloads:||11314|
|Format:||MP3 Mono 44kHz 64Kbps (CBR)||Download:||Click to download|
About this podcastThe first in the Programming Heroes category of our DZone Conversations sees us talking with Ed Merks, of EMF and Eclipse fame. The Programming Heroes series gives me the chance to talk to some of the people that I think have lead the trends in software development. The work that Ed has put behind the modelling projects at Eclipse has been tremendous. Ed had been working with IBM for a long time, and earlier this year left to do his own thing. We find out more about the projects he's interested in, as well as how Ed got into programming, and his advice for new software developers.
James Sugrue: Ed Merks, maybe you can introduce yourself to people who mightn't have heard of you already?
Ed Merks: Yeah, I'm Ed Merks, I'm the lead for the Eclipse modeling framework project and I co-lead the Eclipse modeling project along with Rich Gronback from Borland. I've been working at Eclipse on these technologies since 2002.
Sugrue: EMF is your main project really at the moment, isn't it?
Merks: Yeah, that's the one where sort of my personal development efforts go into. The modeling project lead is more sort of a management type of role, but the Eclipse modeling framework stuff is where I focus all my personal development efforts.
Sugrue: For people who might not be familiar with EMF and model-driven development, maybe you could give a background on those areas?
Merks: Yeah, the idea of EMF as a whole is a data integration story. You can look at Eclipse as providing sort of a platform for doing integration of your user interface and some sort of coordinating your views and your editors, all the aspects of your tools that EMF complements by focusing on how to integrate the data that these different tools manipulate.
Part of the data integration story is to bring together different forms of models. You might describe your XML with an XML schema or you might describe your model with UML, or you might just be building data structures with Java, which are essentially equivalent to modules and you kind of need all those things to work together. So, the story if you look at big companies like IBM, you have all kinds of groups building various data structures; and in the end, you need something cohesive to bring them all together.
That's essentially EMF's focus, to provide a unifying vision across all those different forms of data so that no matter where they come from you can view them, manipulate them and treat them in a kind of uniform, transparent way.
Sugrue: The modeling project then is a kind of an umbrella project for EMF and GMF, is that correct or is it more?
Merks: It's growing to be a lot more than that. I mean, there is also the GMT project, which is sort of a research-oriented that Jean Bezivin lead, that was incorporated at the beginning and we've grown several other projects since then. So, we've got the model development tool so that the standard models and then like XML schemas and UML, and some other associated tools around it. We have a textual modeling framework project, models of models, the transformation project...
It's really, you know... Things started small, but they've kind of grown like layers of an onion. Definitely that's a very sort of diverse group of people now. I think, we have on the order of sixty or seventy committers from around the world on the project; so it's probably Eclipse's most diverse project at this point.
Sugrue: It sounds like it. Were you on EMF from the very beginning or did you join Eclipse after it had started?
Merks: EMF started internal to IBM. It was back in the days when everything was e-business and everything had to have an e- in front of it to be good so it was actually the e-tools modeling framework, internal at IBM. That was when I started on that project. It was essentially an effort to sort of redo MOF implementation that we had -- meta-object facility - from OMG - the Object Management Group. It started as looking at the existing design and framework that were there and redoing it to make it lighter, more efficient and more focused on pragmatic needs. It was very complex.
If we go back in history, the MOF model that we started with back in 2000 was a very large model. Essentially half of it was not being used by anyone for anything. Part of the initial effort was to boil it down to the essential pieces. Eventually, that effort fed back into the OMG and resulted in the Essential MOF and Complete MOF split.
So, yes, I have a long history. It goes back almost eight years now that I've been working on things related to EMF. Gradually, it became open sourced and that was an even more exciting part of the development process, because then you start pulling in a worldwide community around this stuff.
Sugrue: The particularity of EMF, as you said, is that it's the most diverse project in Eclipse anyway. Is it the largest?
Merks: I'm not sure how you would measure by size. I'm not sure if modeling overall the largest. I'd hate for people to listen to this and think "modeling = EMF" because EMF really is one project within the modeling project. It's definitely got a large space of committers.
I believe there's something on the order of 900 or 1000 committers at Eclipse. If you figure that 60 or 70 of them are modeling projects, that's a pretty sizeable fraction.
Sugrue: Having been with IBM, or working in the EMF project at least, since 2000 how has it been for you watching the growth of popularity of Eclipse?
Merks: It's extremely rewarding to be there. I was almost there on the ground floor when Eclipse started. In fact, as Eclipse itself became open sourced, I was working on technology that within a year and a half also was open sourced. So, it was a very exciting time to be working on stuff that really had a lot of mass popular appeal.
You could imagine in a big corporation that there tend to be a lot of critics of anything that gets done. It makes it very difficult for something to be successful in the large corporation, because people find legitimate flaws in things. You take it out into the real world and the general public are the best critics. They point out the real issues.
Yes, it was very exciting to be involved with Eclipse and watch it all grow. It's very rewarding, for example, to go onto the newsgroups and know that you've helped people. You get comments about how many hours of time you've saved people. With a five-minute effort to answer a question, you've saved somebody a couple days of work. That's a pretty nice feeling.
Sugrue: With 3.4 Eclipse is really taking shape. What do you see happening in the future for Eclipse?
Merks: It's pretty exciting looking at the E4, Eclipse 4.0, effort. Something that has been an issue at Eclipse is the lack of diversity in some projects, specifically the core platform project was dominated by IBM committers. The IBM committers themselves wanted to see that project be more diverse, so that this effort towards Eclipse 4.0 is really a call to the community to say, "What do you want Eclipse to be? What kind of things do you want to see in the platform?" And come and work as a group, to create those kinds of things.
We're seeing companies like Windriver getting very involved in the resource model and a bunch of people are looking at what kinds of interesting cool things we can do with the user interface, with Web 2.0 kind of hype.
How do we really want to get our UIs onto the web? And so, yeah, I see E4 thing as sort of one of the exciting aspects of Eclipse, but that's just the core part of the platform moving forward. There is all these huge onion layers of all these diverse things that are going on around it that I think are all individually very exciting as well.
Things like the RAP project hosting Eclipse UIs on the web are pretty exciting. Device development. It goes on and on, sort of like a United Nations of cool projects.
Sugrue: Yeah, definitely. Definitely. And there's a new edition of the EMF book on the way. Is there or has it been released already?
Merks: Yeah. It's available in rough cuts. We're trying to shut down the writing of it. It's taking many years longer than we had anticipated to write it. There's been some significant things added to EMF since the book was started. So, it's kind of tempting to go back and recast everything in Java 5.0 for example. But then, the book will never come out.
So, our goal at this point, I think it's realistic to achieve is that the book will be in bookstores in the December time frame.
Sugrue: OK, just in time for Christmas.
Merks: Yeah, we're hoping it will be a big stocking stuffer.
Sugrue: It must be very difficult trying to write a book and lead an Eclipse project, especially one of the modeling ones, because there is so much to do.
Merks: Yeah. And in all fairness, I did not write very much of the book. Dave Steinberg worked a couple of years on it really hard on the second edition. He has probably doubled the amount of high quality content in the work. Marcello Paternostro has probably spent the better part of the last year working hard on the book and to a large extent I did the firefighting type of stuff, fixing the Bugzillas and doing some of the important feature work, like the Java 5.0 support. That part was badly needed.
I'll have to give credit also to the other guys for writing the book. I just was an enabler for it.
Sugrue: So, it's a big effort from a lot of people. It should be good. And will there be many changes from or will it be very different in format from the first edition?
Merks: Yeah, definitely all the Javadoctype content, which people really didn't like so much is completely gone and that's just literally doubled the content of what we had before. So, I think it will be at least twice as good as it was before.
Sugrue: OK. And the GMF book is on the way as well?
Merks: Yeah. I believe Rich Gronback has finished the entire draft of that. Hopefully, they'll be available in roughly the sort of time frame. That's pretty exciting to have a good base of documentation for people to work with.
Of course, people complain a little bit about having to buy a book when everything else is free. But, I can assure people that the effort that goes into a book does not really make up for the little bit of money that you get for it. I'm sure any author will tell that books are not highly profitable.
Sugrue: So, have you any other side projects that you are working on outside of modeling? It sounds like you have been modeling for a very long time or working with modeling.
Merks: Yeah. I'm really focused primarily on open source types of things. It's very nice now that having left IBM, a company like Itemis has stepped in, and they are essentially funding me to do the open source work.
So, there aren't specific projects internally that I have to balance my time with. I'm just literally primarily doing things like fixing bugs, doing feature enhancements and answering the newsgroup, helping manage the project as a whole.
Unfortunately, I would love to have more little technical pet projects to work on. It's exceedingly time-consuming just managing the project as a whole. And I've always taken the position that service, maintenance service and support are the number one priority. If somebody finds a problem, that problem gets fixed before you go and do some new cool thing.
That's very time consuming, costly thing and it's great to have a company like Itemis that is funding the majority of my time towards that.
Sugrue: Right, so they just fund your time. Do they have their own interests in EMF or...
Merks: Oh, definitely. They're a consulting company, that does a lot of consulting in Germany in the embedded device space so people use EMF heavily to develop things like domain specific languages to help them develop applications on embedded devices. So, their business is strongly grounded in the model based infrastructure. So, to them, EMF being successful is going to drive their business. It's very important to their business.
Obeo is another company in position. They are a company based in France and they do consulting around this space. They have a little bit more product focus on some software products, whereas Itemis is primarily a service driven company.
Sugrue: And because they are based in Germany, do you expect to go to Eclipse Summit Europe this year?
Merks: Definitely. And there's a conference model driven software development in Germany in two weeks that I'll be going to. And then Eclipse Summit Europe in November. There's also a conference in Paris, as well, the following week. So, yeah, I expect I'll be spending a bit more time in Europe than I used to.
One of the interesting things about modeling is that it seems to be ahead in Europe. Like whenever I went to Eclipse Summit Europe I was surprised at how much interest and focus there was in modeling. And then, the following year, I'd go EclipseCon and I'd think, actually it's not so different. It's the same.
And then Eclipse Summit Europe begin again. It's almost like: oh, my goodness, there's so much more interest. It's almost like there's two years, a year and a half, ahead on the adoption cycle.
Sugrue: So, it's probably a big benefit to be able to you and to the project going to these conferences and finding out how people are using the modeling tools?
Merks: Yeah. Exactly. Being able to find out what people are doing, what's the focus of their current pain. We have solved lots of problems for people and of course, they're going to focus when talk to you about the problems that you haven't solved quite so well for them yet.
It's good to know about those. Yeah. That's I find with the news groups too, you just listen very carefully and you watch what issues come up. When you start to see an issue come up three or four times in the course of a week, it's like, hmm, that's something that's going to have an impact if it gets addressed.
Sugrue: And moving from IBM and having your own free time, in a way I suppose, has it been very different? Has it been very difficult to switch from, I suppose corporate mode into this kind of what I am assuming is more a freelance type of job?
Merks: Yes, it's certainly been surprising. I thought I would have some nice peaceful weeks where I wouldn't have to worry about the things that I was worrying about in the past that, but with things like the contract to go to NASA Jet Propulsion Laboratory and do a presentation there, I was suddenly on the hook for it having an eight hour all day tutorial prepared. So, that got me up at 2:00 in the morning for like the better part of 10 days.
And so, it's been a bit of an adjustment. I thought it would be quieter, but things are actually busier than they were before, but sort of in a good way. I have always been, sort of almost completely focused on the open source stuff even while I was at IBM. They were basically paying me to help the general public, IBM's public - gosh, on the order of $250 million into the Eclipse development over the years. So, the funding they paid me, it's just a drop in the bucket compared to that.
But yes, it's been a bit of a transition. It's definitely been liberating to... If you look at my blogs, I always said the opinions I express are my own, no one else's because it's important when you speak as an employee for a company, that you might be interpreted as speaking on behalf of that company. And, now it's very refreshing to, yes, the opinions are mine, and if you don't like them, that's really not my problem.
Sugrue: And what you are doing now - is it what you had envisaged doing maybe a few years ago, maybe when you were thinking about what you were going to do in the future. Is this where you saw yourself going, into just being more freelance?
Merks: Yes... no, actually, I didn't foresee this outcome. I was at IBM for 16 years and I really fully expected to always be at IBM. But, over the last couple of years, it's just become clear that where IBM wants to go with its stuff and where I want to go with the stuff don't coincide all that terribly well.
I mean, IBM needs to build products on top of the stuff and make revenue from that kind of thing. It's kind of the open source dilemma or the tragedy of the commons kind of thing. If you look at the work that I am doing for open source as just the cost and you don't know how to measure the benefit, you don't see a measured benefit, well, then you'll err on the side of the cutting that cost rather than on optimizing the spending in that.
In the end, that just was too frustrating for me to see the potential behind these model driven software development ideas, these core ideas that EMF supports, that appeals to the general developer, it was just not being able to reach its full potential. So, no, I didn't really envision ending up on the path that I am going down. But, I am very glad that I went on the path that I am going down.
Sugrue: OK, that's great. So, maybe just going way, way back, how did you get into programming at the very beginning?
Merks: Well, when I was a mere child, hey? It was interesting, my dad was always into technology and stuff like that and he bought himself an Apple computer when, gosh, this probably would have been about grade 10 or something. He bought an Apple Computer and I just loved that thing, that was just so cool and I remember writing a little,like in assembly language, this little tank war game with these little tanks that moved around and shot at each other and kind of learned BASIC and it was just great.
I just loved that computer and everything about the computer. It just kind of gave you the sense that you could, writing a piece of code, to make something happen on this was just really cool. And I liked... like when I got a Rubik's Cube, for a whole day I was just, oh, I've got to solve this Rubik's Cube. If you give me a hard problem, then I wanted to solve it, I just loved that kind of stuff. So, that's really what kicked it off.
And, as I went into university, it just got more and more interesting. Probably, one of the key things that were kind of a formative moment was when I took symbolic computing that Rob Cameron taught at Simon Fraser University and was kind of focused on LISP and all the cool things that you could do with LISP and I just thought that was the coolest thing. It was just amazing that the way LISP sort of bootstrapped itself from these very simple structures. So, that got me, sort of going down the path of sort of wanting to work closely with Rob Cameron and I did. I finished my Bachelors and then did a Masters and PhD all at Simon Fraser University with Rob Cameron as my supervisor.
He did amazingly cool things. In fact, he had something called a Grammar-Based Meta programming system, which was essentially BNF grammar and that was augmented with some special notation. And from that he could write the parser and generated all the APIs for building a parse tree for that grammar. And if I look now at EMF, it's just kind of interesting that EMF is so closely related to what I was doing back in university. Most people don't end up doing in their sort of final career what they had studied in detail at university. Whereas for me that's... it's like this sort of focus on models and modeling, goes back almost 25 years now.
Sugrue: And if you weren't a programmer, what do you think you would be? Had you any other ambitions?
Merks: Gosh, it's hard to imagine where I ended up. I mean, I always liked biology; I always liked science in general. So, probably I would have been something in the sciences. And I always liked biology. But, one of the things I didn't like about biology was - it's kind of just memorizing endless, endless, memorizing names of things, which I don't find that interesting. It definitely would have been something in that sort of technical engineering science kind of thing. I like to do sort of research and innovative types of things.
Sugrue: And do you have any advice for people who might be just starting out in software development or maybe going into university to start studying software?
Merks: Yes, one kind of interesting thing is to find out what turns your crank and focus on that. Don't worry so much about long-term goals, just worry about the direction that you want to go in,what kinds of things do you want todo everyday gaining experience and working on cool things. But, I think that too many people get into programming because they figure I can make good money at programming. I mean, you can; definitely, you'll make good money at programming. But, if it doesn't turn your crank, if that's not your personal thing, there are a lot of mediocre programmers out there in the world. And it's best to find out what you excel at and then focus on that.
Sugrue: I definitely agree with that. Have you got any trend that you see coming up in the next few years? You say that Europe is a little bit ahead on model-driven development. Do you see any other paradigms or frameworks that will become more popular?
Merks: It's hard to predict the future. We're so much driven by hype in our industry that it's a little regrettable. We tend to create new technologies and throw old things out like it was just laundry. If anybody wanted trends, I'm sure they could tell a hundred different trends, leaving things on the wayside like roadkill.
You have to wonder about things like Java Enterprise Edition, the sheer complexity of it all and the growing weight behind all this complexity. It doesn't seem to bode well if you look at things like Spring and OSGI and think that here are way simpler solutions to the same problems. Doesn't that represent a source of concern for these more complex approaches?
I look at things in the modeling space like UML, and I just think that that's incredibly complicated. You have these large corporations that build infrastructure around this complexity. Things like Ecore are just 50 times simpler than UML, and yet you probably do most of what you want to do with UML.
That's one trend that I suspect will win out at the end of day, just simplicity. It's simpler, lighter-weight ways of doing stuff. The more complex ways will fall out of favor one day.
Open source development is a big trend as well. Where is the industry going when after a while you can't make money selling software anymore? People want everything to be free. How do you run an industry where you want everything to be free?
Sugrue: That's a good question. Just coming back to EMF and modeling, what has been the most interesting use of EMF that you've seen in your travels so far?
Merks: Oh, gosh. It's never ending. From my own selfish point of view, you also see things like the GMF project. And now with the Ecore tools project you have a graphical editor for editing Ecore models. It's a bootstrapping thing for me now. I can edit my Ecore models graphically with a tool that's free, and ten years ago you'd have to buy something like Rational and fork out $4000.
From my selfish personal point of view, that's a tool that I'd add to my repertoire. One of the things that's unique about EMF is that we use EMF to develop EMF. We're using our own tools every day, so the fact that I have a nice, high-quality graphical editing tool added to my repertoire is a big deal.
GMF as a whole I see as incredibly powerful. People can rapidly, in the course of an hour or two; they can have a sophisticated graphical editor for editing their model instances.
Look at Eclipse and what all is being developed there. Even WTP, which is the package for Enterprise Edition development, is the most popular downloaded package at Eclipse. That's heavily based on EMF models. So, that's probably a really good example of something cool people did.
Another company that I'm working closely with now is Skyway Software. They're doing amazing things with model-driven development. When I see the stuff they're doing in terms of building a web application easily with model-driven development focus. It's a pretty cool thing.
It's the kind of thing I would have liked to see IBM have done, but smaller companies are more agile and can more quickly find niches and sell them than the larger companies, which are a little bit slower moving.
Sugrue: OK. It's been really good talking to you in here, Ed. Thanks for all your time. I think, we've covered some very interesting topics there.
Merks: Oh, it was a pleasure.
You can listen to my previous conversation with Rod Johnson about Spring here, and there will be more to come.