1
00:00:00,000 --> 00:00:05,800
Hi everybody, here we are at EclipseCon 2009 in lovely Santa Clara.

2
00:00:05,800 --> 00:00:07,920
We've got a guest with ourselves, would you like to introduce yourself?

3
00:00:08,240 --> 00:00:13,540
Hey, I'm Jeff McCaffer, I'm the CTO of EclipseSource, and I lead the Eclipse, several projects

4
00:00:13,540 --> 00:00:17,440
at Eclipse, in fact, like the runtime project, the PMC, and the Equinox project I co-lead

5
00:00:17,440 --> 00:00:17,940
with Tom Watson.

6
00:00:17,940 --> 00:00:21,320
I've actually spoken with you at least once, if not a couple times before.

7
00:00:21,440 --> 00:00:23,100
We've been covering the Equinox quite a bit.

8
00:00:23,200 --> 00:00:23,960
It's good fun, yep.

9
00:00:24,080 --> 00:00:29,380
And what I was hoping to talk with you about is essentially just to get an update on what's

10
00:00:29,380 --> 00:00:34,040
happening with Equinox, for as many times as we've spoken on this topic, and for as much

11
00:00:34,040 --> 00:00:40,520
as Equinox is really, I guess you could say, at the bottom, or at the center, otherwise,

12
00:00:40,720 --> 00:00:41,080
of things.

13
00:00:41,080 --> 00:00:41,500
We'd like to be there, yeah.

14
00:00:41,700 --> 00:00:44,380
Yeah, I mean, I'm just curious how things have been going in the past year.

15
00:00:44,400 --> 00:00:47,420
There's lots of different things happening, you know, in the runtime project as a whole

16
00:00:47,420 --> 00:00:52,180
at Eclipse, lots of things are happening, but in Equinox, we've got the new version of the

17
00:00:52,180 --> 00:00:56,760
OSCI spec is coming up, and so there's lots of new innovations there, and things in the

18
00:00:56,760 --> 00:01:01,240
enterprise expert group, distributed services specifications coming out, and we've got

19
00:01:01,240 --> 00:01:05,120
implementations of that RFC 119 specification.

20
00:01:05,620 --> 00:01:09,220
It's actually going into the Eclipse communication framework project, so it's not just Equinox,

21
00:01:09,300 --> 00:01:11,580
it's a whole runtime kind of constellation of stuff going on.

22
00:01:11,580 --> 00:01:14,680
We're touching on one thing that was interesting, and that's sort of the enterprise spec for

23
00:01:14,680 --> 00:01:22,000
OSGI, and how, I guess Equinox is sort of an implementation of that to some respect.

24
00:01:22,000 --> 00:01:22,320
Parts of it, yeah.

25
00:01:22,960 --> 00:01:27,280
The OSGI specs are, there's many of them, and you can sort of choose which ones you want

26
00:01:27,280 --> 00:01:32,480
to implement, and so we've implemented a vast majority of the core specification, and now

27
00:01:32,480 --> 00:01:36,240
there's enterprise and there's mobile expert group specification as well.

28
00:01:36,560 --> 00:01:42,320
We've got some pieces from there, and so we're doing all the cool things, we think, all the

29
00:01:42,320 --> 00:01:43,180
cool and useful stuff.

30
00:01:43,240 --> 00:01:44,640
Only the stuff people would want, right?

31
00:01:44,740 --> 00:01:47,940
Yeah, I mean, the distributed services in particular is quite interesting.

32
00:01:48,240 --> 00:01:48,600
Right.

33
00:01:49,140 --> 00:01:54,900
But in the whole Equinox sphere of things, and that with P2 as well, our provisioning technology,

34
00:01:55,440 --> 00:01:59,580
P2 is really taking off, and lots of people adopting it in different ways.

35
00:01:59,700 --> 00:02:05,960
We're doing some cool things with Eclipse distributions, and the EPP wizard is our new download technology

36
00:02:05,960 --> 00:02:10,240
that will be available with Galileo, and that's all based on the P2 technology.

37
00:02:10,240 --> 00:02:11,560
Can you tell us a little bit more about P2?

38
00:02:11,560 --> 00:02:11,980
Oh, yeah, sure, sure.

39
00:02:11,980 --> 00:02:14,920
Because that's one of those things that people are always rabid to know about.

40
00:02:15,060 --> 00:02:18,300
It's the constant quest to have the better update manager.

41
00:02:18,300 --> 00:02:19,720
And more, of course.

42
00:02:20,080 --> 00:02:20,280
Yeah, yeah.

43
00:02:20,540 --> 00:02:25,720
So the update manager we had previously was very much tailored to delivering IDEs that

44
00:02:25,720 --> 00:02:29,120
were relatively static, and it wasn't really particularly OSGI aware and that sort of thing.

45
00:02:29,560 --> 00:02:34,040
And so about a year and a half ago, two years ago, we recognized the deficiency and started

46
00:02:34,040 --> 00:02:35,000
on this P2 effort.

47
00:02:35,560 --> 00:02:41,660
And Ganymede, which was last year's release, had P2 in it, and now we're refining it, going

48
00:02:41,660 --> 00:02:46,700
further, and providing a bunch of tooling around it, and going to actually start delivering

49
00:02:46,700 --> 00:02:53,260
Galileo, our next release with P2, using the EPP wizard, which is basically a wrap-based,

50
00:02:53,260 --> 00:02:58,000
an Ajax-based wizard that you go and choose the things you want from the download site.

51
00:02:58,360 --> 00:03:02,540
Oh, yes, I'm a C guy, but I want some modeling things and some Mylan and that sort of stuff.

52
00:03:02,620 --> 00:03:02,740
Right.

53
00:03:02,860 --> 00:03:07,840
And then push a button at the end and get a download, get a little installer that comes

54
00:03:07,840 --> 00:03:10,040
and sucks all the bytes down for you and that sort of thing.

55
00:03:10,160 --> 00:03:10,460
Right.

56
00:03:10,460 --> 00:03:17,520
So it's essentially having a sort of custom-built packaging from a user's perspective.

57
00:03:17,520 --> 00:03:21,960
You know, and I keep going back to the stackless stack thing that you, you know, came up with

58
00:03:21,960 --> 00:03:23,640
whenever that was, a year or two ago.

59
00:03:24,080 --> 00:03:26,680
And it really is actually, it captures it very well.

60
00:03:26,760 --> 00:03:31,600
I mean, there's so many stacks, so many, there may not be any, so it's a stackless world.

61
00:03:31,680 --> 00:03:34,820
And you just go and pick from the menu what it is you want.

62
00:03:34,820 --> 00:03:38,720
We were talking this morning about how to deliver runtime technology at Eclipse.

63
00:03:38,720 --> 00:03:44,500
We got all this great stuff, you know, from EclipseLink and JPA2 implementations and to

64
00:03:44,500 --> 00:03:45,860
BERT, right, reporting stuff.

65
00:03:45,900 --> 00:03:47,340
It's not all under the RT project.

66
00:03:47,940 --> 00:03:51,360
And so we were talking about, like, what downloads, what packages can we deliver to people?

67
00:03:51,440 --> 00:03:52,680
And so, well, put it all in there.

68
00:03:52,760 --> 00:03:54,640
Well, that, you know, not everybody needs all of that stuff.

69
00:03:54,680 --> 00:03:55,460
Well, put none of it in there.

70
00:03:55,480 --> 00:03:56,600
Well, then it's not interesting, right?

71
00:03:56,700 --> 00:04:01,620
So the answer, I think, is to provide people with this wizard where basically they can go and

72
00:04:01,620 --> 00:04:02,880
say, well, yes, I'm doing servlets.

73
00:04:03,000 --> 00:04:03,980
Yes, I want some modeling.

74
00:04:04,200 --> 00:04:06,180
Yes, I want some, you know, communication stuff.

75
00:04:06,360 --> 00:04:07,360
And I want some BERT.

76
00:04:07,780 --> 00:04:07,960
Right.

77
00:04:08,040 --> 00:04:08,560
Check, check, check.

78
00:04:08,720 --> 00:04:09,460
Push the button.

79
00:04:10,060 --> 00:04:11,060
Now you've got your stack.

80
00:04:11,420 --> 00:04:12,600
And it's your stack, not my stack.

81
00:04:12,660 --> 00:04:14,600
My stack has something else in it, right?

82
00:04:14,620 --> 00:04:17,320
So I think that's where we're going with the whole P2 story.

83
00:04:17,720 --> 00:04:21,380
And, of course, people can use it to deliver their own, you know, integrate it with their

84
00:04:21,380 --> 00:04:23,120
applications and deliver their own stuff.

85
00:04:23,340 --> 00:04:29,480
We just sort of talked, we talked about P2 and using Equinox as being built on top of

86
00:04:29,480 --> 00:04:32,000
that to sort of build the custom packaging and configuration.

87
00:04:32,720 --> 00:04:36,260
But, of course, I mean, Equinox is, of course, like a back-end technology.

88
00:04:36,260 --> 00:04:41,640
Obviously, in the server world, the web app servers, they are, all the major vendors have

89
00:04:41,640 --> 00:04:45,060
adopted OSGI, and most of those are using Equinox.

90
00:04:45,060 --> 00:04:50,460
So we're seeing, of course, WebSphere has long since been using Equinox under the covers,

91
00:04:50,940 --> 00:04:55,260
and the Spring DM guys, and I'm trying to think of them all now, the Paramus guys.

92
00:04:55,500 --> 00:04:55,520
Right.

93
00:04:56,200 --> 00:05:00,200
And everybody's basically, I saw the Glassfish team demoing.

94
00:05:00,200 --> 00:05:01,280
Right, that's right, that's right.

95
00:05:01,320 --> 00:05:05,000
They were at a boff, and they were demoing Glassfish's OSGI base, and it runs on Felix,

96
00:05:05,000 --> 00:05:07,620
the Apache implementation, and it runs on Equinox.

97
00:05:07,760 --> 00:05:09,220
And so, like, they were demoing that yesterday.

98
00:05:09,640 --> 00:05:12,060
And so it's really in a server world.

99
00:05:12,560 --> 00:05:16,660
I think OSGI and Equinox are really coming to the fore now.

100
00:05:16,860 --> 00:05:19,660
All the different major vendors are adopting it.

101
00:05:19,780 --> 00:05:23,140
SAP has announced they're moving NetWeaver onto Equinox.

102
00:05:23,800 --> 00:05:25,860
So, you know, this is a really big deal.

103
00:05:25,860 --> 00:05:29,680
One of the things that we've discussed in the past is, you know, if you're moving to using

104
00:05:29,680 --> 00:05:35,240
Equinox or OSGI or whatever, there's a somewhat different programming model that you have to

105
00:05:35,240 --> 00:05:35,520
follow.

106
00:05:35,680 --> 00:05:38,140
And how have you seen that programming model play out?

107
00:05:38,140 --> 00:05:42,020
It's a double-edged sword a little bit, because one of the values we try to put forward

108
00:05:42,020 --> 00:05:46,120
of this is you get one programming model for all the different platforms.

109
00:05:46,120 --> 00:05:50,740
So I did a talk yesterday where I demoed stuff that was running embedded, stuff that was running

110
00:05:50,740 --> 00:05:55,140
a rich client platform, things that were running wholly server-side headless, and stuff that

111
00:05:55,140 --> 00:05:57,760
was running server-side with an AJAX UI.

112
00:05:58,560 --> 00:06:02,480
And that was all programmed with bundles, all programmed with extensions and services, like

113
00:06:02,480 --> 00:06:05,540
standard OSGI, Equinox, Eclipse kinds of technologies.

114
00:06:06,160 --> 00:06:11,300
And the same tool chain, the same developer skills, the same mindset and programming model,

115
00:06:11,640 --> 00:06:16,700
the same bundles, the same code pieces were being deployed, used in all of those different

116
00:06:16,700 --> 00:06:17,660
runtime scenarios.

117
00:06:18,240 --> 00:06:22,700
And I think that's where the real value comes in, is you don't have to have a bunch of PHP

118
00:06:22,700 --> 00:06:27,860
guys to do your web UI and a bunch of embedded guys to do your, you know, the mid-lit guys,

119
00:06:27,920 --> 00:06:29,840
you know, doing your embedded part and all that sort of thing.

120
00:06:29,840 --> 00:06:32,300
The programming model itself, so that's the value part, right?

121
00:06:32,300 --> 00:06:38,500
The downside, I guess, is that it is a non, I don't want to say non-standard, but it's

122
00:06:38,500 --> 00:06:41,400
a lot of people know how to program Java, moving and doing bundles.

123
00:06:42,020 --> 00:06:43,500
Well, it's a new way to package up.

124
00:06:43,500 --> 00:06:50,180
It's a new way to package stuff, and the power of Equinox and OSGI doesn't come for free.

125
00:06:50,680 --> 00:06:53,700
There's a bit of stuff you have to do, there's some markup, and, you know, if you're going

126
00:06:53,700 --> 00:06:57,300
to have somebody manage your dependencies, you have to say what your dependencies are, right?

127
00:06:57,300 --> 00:06:58,640
There's no free lunch, right?

128
00:06:58,700 --> 00:07:04,300
So you actually have to express that stuff, and we've got really good tooling that's been

129
00:07:04,300 --> 00:07:08,640
developed over many years in the plug-in development environment, and that's been refined.

130
00:07:08,880 --> 00:07:12,940
We've got new tooling for declarative services, so declarative services allow you to put all

131
00:07:12,940 --> 00:07:18,940
this stuff together declaratively and use OSGI services like that, so the new tooling there

132
00:07:18,940 --> 00:07:20,440
is really very helpful.

133
00:07:20,440 --> 00:07:24,300
Last time we talked to you with IBM, and now, as your shirt says, you're with EclipseSource,

134
00:07:24,300 --> 00:07:29,380
and so what's been the story of, because it was actually, it was cloud nine, if I remember.

135
00:07:29,380 --> 00:07:29,700
Code nine.

136
00:07:29,700 --> 00:07:30,340
Code nine, that's right.

137
00:07:30,340 --> 00:07:33,280
We thought of cloud nine, too, but it was code nine, yeah.

138
00:07:33,380 --> 00:07:37,840
But, so there was another, you had your own sort of little company in between there merge

139
00:07:37,840 --> 00:07:38,080
together.

140
00:07:38,120 --> 00:07:42,620
About a year and a bit ago, I left IBM and started code nine, and that was all focused around

141
00:07:42,620 --> 00:07:46,840
runtime technologies and that sort of thing, and we grew to about five people or so over

142
00:07:46,840 --> 00:07:48,600
the year, and...

143
00:07:48,600 --> 00:07:50,100
Yeah, you have a little Austin office, if I remember.

144
00:07:50,100 --> 00:07:55,540
Well, we do, yeah, we got, now, so what happened in about November last year, Interpract, the

145
00:07:55,540 --> 00:08:01,360
company behind RAP and G-Eclipse and EPP and the packaging stuff at Eclipse, it's a German

146
00:08:01,360 --> 00:08:06,220
company, we merged, so Code nine and Interpract have merged, and now we've formed a new company

147
00:08:06,220 --> 00:08:11,260
called EclipseSource, lots of stuff in the runtime technology area, we're heavily involved

148
00:08:11,260 --> 00:08:16,240
in Eclipse itself, of course, lots of people on the board and PMCs and, you know, leading

149
00:08:16,240 --> 00:08:17,800
like 10 projects and that sort of stuff.

150
00:08:17,800 --> 00:08:19,740
Thanks for taking all this time to talk with us today.

151
00:08:19,740 --> 00:08:20,240
Sure, thank you.
