more jigsaw vs osgi vs javaposse

25 views
Skip to first unread message

phil.s...@gmail.com

unread,
Jun 26, 2009, 5:24:07 PM6/26/09
to The Java Posse

Joshua Marinacci

unread,
Jun 26, 2009, 6:11:02 PM6/26/09
to java...@googlegroups.com
vs the javaposse? the java posse has their own modules proposal?
awesome! will it support groovy?

On Jun 26, 2009, at 2:24 PM, phil.s...@gmail.com wrote:

>
> http://modualrit.blogspot.com/2009/06/jigsaw-posse.html
> >

Ryan Waterer

unread,
Jun 26, 2009, 6:17:00 PM6/26/09
to java...@googlegroups.com
Whether the proposal supports groovy or not will indicate Dick's true feelings on the matter!

Dick Wall

unread,
Jun 26, 2009, 7:13:52 PM6/26/09
to The Java Posse
Wow - what a report. I really couldn't let this one go by without some
comment.

Some choice pieces from the article:

"defend Jigsaw scathing, cynical, and even insulting comments about
OSGi folks"

From everything (and I mean everything) I have observed so far, the
scathing comes primarily from the OSGi followers, and not the main
camp either, but a noisy group of people who seem to have injected
themselves into the discussion. I certainly didn't pick up anything
scathing in Mark or Alex's answers, nor in all fairness did I pick up
anything from Peter Kriens or B.J. Hargrave when we interviewed them.
As far as I can see, the key players in this game have been
professional throughout. Opinions not matching your own do not
constitute scathing cynicism, or insults, they are merely differing
opinions.

"At first I figured the reason was that the Java Posse is not actually
a technical forum, but is popular for its entertainment value,
instead. But some of the other threads seemed to treat technical
topics seriously"

You bet - I believe we have amassed a fantastic group of energetic
people who are passionate about all aspects of the Java language,
platform and community. Eric, I really believe you should reserve such
judgment until you have been a member of the forums a little longer
and joined in on some other threads that Jigsaw/OSGi. I would also
point out that your comments about the forums not being technical but
only for entertainment is a little insulting to the people here, Again
- it's regrettable if not everyone sees it your way, but really isn't
that just an opportunity to learn from others.

"Finally it occurred to me that the Java Posse is just probably more
of a "lap dog" than a "watch dog""

Right, this is the line that prompted the response, and respond I
will. Firstly, you seem to be claiming insults, scathing and cynicism
from Jigsaw (and us, and the forums), but I believe we have the best
example of all three right here. I am an engineer with 20 years of
experience, I am nobody's lapdog, nor are Carl, Joe and Tor I can
assure you. In fact these are three of the finest professionals I have
ever had the pleasure to work with - why do you suppose I wanted to do
a podcast with them in the first place?

I really hope you can back up your statement here. What is it based
on? We do not accept sponsorship (Atlassian beer-for-events
awesomeness aside - but that is the only thing and would anyone
serious begrudge our live audience members that)? I also would point
out that just a few weeks before the Jigsaw interview, we did a
similar interview with Peter and BJ for OSGi. Do you really believe
that it was not fair and balanced to let Mark and Alex respond to that
criticism (which, as I have mentioned, seemed professional and honest
from both sides). Also, if you really believe we influence what ~3000
developers on this group think, I believe you have overestimated our
reach. The Java Posse Google group is a fantastic discussion forum,
and one of the things I am proudest of from the podcast, but I think
that most people here have made up their own mind on things, and if
you are finding resistance to your "one true way" perhaps that should
be significant.

Thirdly, if you really believe we are "not biting the hand that feeds
us" to get the "scoop" on news or people to interview, I would hope
that common sense would indicate otherwise. Long gone are the days
were we needed to beg for interviews, these days (seriously) it is all
I can do to stay up to date with the requests (sorry folks, I do get
backed up on this stuff some times because my real job gets in the
way). I believe some of this has come from the fact that we do not
practice gotcha tactics, try and screw people over or put words in
their mouths. We remember who's interview it is and let them have
their say.

I am really disappointed that you would come out of the gate swinging
like this. I believe it doesn't show your cause in a good light either
- such animosity towards people rarely makes friends. I hope you hang
around long enough to see the value in the community we have built
here, and maybe to work out that we are in fact nobody's lapdog.

Cheers

Dick

On Jun 26, 2:24 pm, "phil.swen...@gmail.com" <phil.swen...@gmail.com>
wrote:
> http://modualrit.blogspot.com/2009/06/jigsaw-posse.html

Neil Bartlett

unread,
Jun 27, 2009, 4:57:16 AM6/27/09
to The Java Posse
Dick,

As an OSGi supporter I also think Eric has gone a little far with this
blog post. It's clear to me at least that the JavaPosse was never
intended to be a "watch dog". You're just 4 guys podcasting about what
interests you, and your popularity and success speaks for itself. If
the "OSGi community" wants a podcast that satisfies our biases more
than yours then we should just damn well start one. I'm not under any
illusions that it would be able to catch up with you guys in
popularity any time soon.

However if you're really being begged for interviews, then I think you
can afford to be a _little_ tougher on the interviewees. I'm not
talking about gotcha tactics or screwing people over, just asking them
to back up what they say and digging a little deeper. You don't need
to interview like Bill O'Reilly or even Jeremy Paxman, but an
occasional streak of Krishnan Guru-Murthy wouldn't be so bad.

Cheers,
Neil

Chris Adamson

unread,
Jun 27, 2009, 8:57:55 AM6/27/09
to The Java Posse
The OSGi zealots remind me of the SWT zealots... and are poised to do
just as much damage to the Java community.

Eric Newcomer

unread,
Jun 27, 2009, 9:59:52 AM6/27/09
to java...@googlegroups.com
Perfect example of the problem.

There are no technical arguments for having two Java module systems,
so the strategy is to pick a fight and blame the other guys.

BTW my apologies about the too broad criticism. I was really trying to
point out the problem with the discussion threads, not the podcasts.
The podcasts are fine.

Eric


On 6/27/09, Chris Adamson <inval...@gmail.com> wrote:
>
> The OSGi zealots remind me of the SWT zealots... and are poised to do
> just as much damage to the Java community.
> >
>

--
Sent from my mobile device

Dick Wall

unread,
Jun 27, 2009, 10:22:15 AM6/27/09
to The Java Posse
A bit of damage control here, and a personal announcement:

First - thanks Neil - I know you are trying to keep the peace, but I
do want to point out that I did not say that we were being begged for
interviews, please re-read the posting for clarification. Gone are the
days when we had to do the begging, but I can honestly say no one has
ever begged us to come on the show, nor would I feel entirely
comfortable with that (someone that needy would sound the alarm
bells). No, these days we are merely in the happy position of being
taken seriously, and getting lots of simple offers and requests for
interviews. Nothing more. I say this partly because I would like you
to see how easy it is to misread or misquote something.

Our interviewing style is a personal choice, it is in no way because
we are afraid of putting people off - I just see little point in
introducing conflict into a situation when "softly softly" seems to
work really well for us. As far as the Jigsaw interview goes, we hit
every point that I have heard leveled against Jigsaw, including the
use of OSGi to split up Harmony. I believe we ask the hard questions,
but I see no reason not to ask them politely - it was after all how I
was brought up.

I would encourage you, as you say, to dig deeper yourselves, which
brings me to my main point of this post.

Firstly, I want to make it clear that I am speaking entirely for
myself here. I have not talked to the rest of the posse yet, but when
I wake up at 4.30am with stuff swimming about my head it's time to
take action, so this is my pledge, for me, Tor, Joe and Carl can speak
for themselves.

When the requests first started coming in for us to dig into the Java
modularity stuff, I resisted. My gut instinct was not to get involved
for a couple of reasons:

1. I am not really that interested in the space, sure, I want some of
the advantages, but I am largely uninterested in how we get there and
certainly don't have a lot of time or passion to invest in something I
care this little about.

2. It is clear that some people in this space want a fight, which is
fine, that's their prerogative. However, I suspected that the reason
our involvement was requested was to further that aim, to stir up the
space, in other words I suspected that we were being used to further
other people's aims.

Despite that, we got enough requests that we got involved, against my
better judgment, and once again I am reassured that I can trust my gut
instinct, and disappointed that I did not do so.

So, where have we arrived now? After giving both sides a voice, after
many hours of my own time invested in something I really just don't
care that much about, and after trying to explain at every opportunity
my own opinions, we seem to have ended up being used as a blunt
instrument for political points scoring. I don't believe the situation
has helped anyone, and I am irritated that I didn't follow my
instinct, which I will now do.

From now on I recuse myself from anything involving OSGi, Jigsaw and
Java modularity in general, unless it constitutes straight news (which
we will always report), or something that is of particular technical
interest to me. Keep it simple - that's my motto. Since this whole
sorry affair has brought little but bad feelings all around I see
absolutely no point in continuing along with it. I personally am
seeing no benefit for me, and this is apparently getting way to
personal for something I just don't care about when we see the kind of
descriptions that have been on this thread.

If the rest of the guys want to talk about the topic still - that's
cool, but personally I have lost both interest and motivation in the
whole sorry space, and I certainly don't want to see the Java Posse
continue to be janked around and used for political ends.

Dick

Chris Adamson

unread,
Jun 27, 2009, 10:27:43 AM6/27/09
to The Java Posse
No, you guys are the perfect example of the problem. Just the same
way that SWT generated more zealots than applications, now we've got
OSGi advocacy-by-accusation... and still virtually no meaningful apps
to prove that this stuff is important, viable, or even worth caring
about.

Just because something is in Eclipse, doesn't mean it is or should be
everyone else's standard. Making Eclipse the standard of value for
the Java community has been a disaster.

I'm not picking a fight... I opted out of the Java world a long time
ago. I think it's just sad how you guys are self-destructing. Java
could have been so much more.

--Chris

Ryan Waterer

unread,
Jun 27, 2009, 11:14:47 AM6/27/09
to java...@googlegroups.com
A few things:

1.  Dick, you guys rock.  You do a fantastic job in the interviews, and I enjoy them immensely.  Looking at the other thread after the BoF and questions, I would say that most appear to enjoy the interviews and the style.  You're very well respected in the community, and this is just a minor thing overall.

2. ErIk, you are a big part of the "problem" here.  I've seen nothing but flaming responses and sweeping judgements by yourself.  Quite frankly, your position on the subject was derrogitorily clear from the beginning.  Most people who read this are quite intelligent and stay away from heated, pointless discussions.  Personally, all you have done is indicate clearly why Jigsaw is needed, and turned myself away from OSGI.

3.  I have no evidence of this besides speaking with some co-workers and a couple of other friends.  However, I think that most people have not heard of OSGI, and any attempt to make modularity happen within Java is a good thing.  Like Dick, I don't really care how it is accomplished;  having modularity in Java is something that will help Java move forward.

--Ryan

Reinier Zwitserloot

unread,
Jun 27, 2009, 2:34:01 PM6/27/09
to The Java Posse
Chris, one or two OSGi zealots make some noise and you immediately
insinuate that 'the java community is self destructing'? Don't you
realize that's kinda insulting?

Whatever community you're part of now, if I had your attitude, I'd
fight to the DEATH to keep it niche and trivial, because the moment
you book al little success, you're going to have to move on to the
next thing. Opinions and controversy happen, especially on the
internet, and especially to communities larger than, say, 20 people.
Not everyone is good at dealing with this, but blaming a community for
containing loud-mouths is disingenuous.

NB: In the spirit of Dick's post, I'll refrain from commenting on OSGi
or jigsaw.

Augusto

unread,
Jun 27, 2009, 4:01:12 PM6/27/09
to The Java Posse
Well this pisses me off to no end to be quite honest, I started that
other thread just to get some interesting conversation started on this
topic (which will affect you even if you don't care) and now it has
devolved into a flame war ... with the horrible outcome of completely
turning Dick off the whole topic.

That's a disaster.

Dick, let me just say that the podcast has resulted in everybody
having more information ... and I think if you focus on things like
this thread and Eric's blog post* you are missing the good that it has
done. In my view, I like that you guys did this because a lot of the
technical arguments (and some of the business reasons) might not have
been explained well in conferences and this has given everybody at
least a starting point in those discussions. I would hope that you
guys continue doing this, specially for apparently touchy subjects
like this, but I understand if you are completely turned off by the
whole thing as well.

* Eric, I'll have to sort of repost it here again as I replied in your
blog post but you didn't approve the comment but your post is
extremely unfair. Yes there have been some replies here that have been
insulting (and uniformed) to what I perceive is your "side" but you
are not only being unfair to the guys who make these podcast you are
being very unfair to everybody who has posted on this topic in that
other thread. Not all of us have been bashing OSGi *at all*. A lot of
people are just not familiar with it, and instead of turning this into
an opportunity to raise awareness of the technology post like that one
cause things like now people not wanting to talk about this at all.
Which, unfortunately for me, is the exact opposite of why I started
that other thread.

Augusto

unread,
Jun 27, 2009, 4:10:44 PM6/27/09
to The Java Posse
A couple of things I forgot to mention;

@Neil

I think the interview raised a lot of the "controversial" points in a
respectful manner, but the points were raised (why not OSGi) multiple
times. It was very fair. Was it a 60 minutes type interview? No, but I
didn't think anybody would expect it to be so. I guess it's ok for
people to expect NPR like interviews here, but that's a bit funny for
this type of podcast no?

@Eric

"There are no technical arguments for having two Java module systems,
so the strategy is to pick a fight and blame the other guys."

1) I think points have been raised here and in the podcast that are
more than flame baiting. What I don't like its again, painting
everybody with such a broad brush and making it sound like *everybody*
is doing what you are saying there.

2) The "two module" systems reminded me of something that was
mentioned in the podcast, that is OSGi is not the only other module
system out there. Netbeans has its own module system, but in these
discussions it seems everybody has forgotten about that. I know that
because I had to do an evaluation of it vs OSGi a couple of years ago.
Just thought I'd mention that.

@Anybody who is still reading
In the podcast it was mentioned that OSGi had XML, then one of the
posse corrected it saying there is no XML in OSGi. In fact there is
http://www.osgi.org/Release4/XMLSchemas, of course some of it is to do
things Jigsaw is not planning on (like declarative services).

Chris Adamson

unread,
Jun 27, 2009, 4:14:32 PM6/27/09
to The Java Posse
It's not one or two, and it's not immediate. This kind of belligerent
zealotry was something I saw frequently over the last few years when I
was putting together the java.net front page every day. Thing was, as
the Editor, I couldn't publicly express how much I disliked this.
Take a look at Peter Kriens' October 2006 screed "JSR 277 Review"
<http://www.osgi.org/blog/2006/10/jsr-277-review.html>, and my hands-
off summary in the java.net Editor's blog <http://weblogs.java.net/
blog/editors/archives/2006/10/the_bones_of_an.html>.

Not one or two. Not immediate. I got sick of these guys years ago,
and I think they hurt the Java community with their behavior (which is
where my analogy to SWT comes from: I think Desktop Java was mortally
wounded by turning the widget set into a damned holy war, when the
bigger problem was probably end-user deployment).

--Chris

Steve

unread,
Jun 28, 2009, 1:08:28 AM6/28/09
to The Java Posse
On Jun 28, 12:27 am, Chris Adamson <invalidn...@gmail.com> wrote:

> OSGi advocacy-by-accusation... and still virtually no meaningful apps
> to prove that this stuff is important, viable, or even worth caring
> about.
>

Pretty much every major Java app server is built on OSGi now. I'd say
they were meaningful to Java programmers :)

I know that Dick (and probably the rest of the posse) has had enough
of the discussion (can't blame them) however I suspect that an
interview with people from some of the major projects who are using
OSGi would provide more insight into why it is (or isn't) "important,
viable or worth caring" about than discussions with people from the
OSGi alliance or Jigsaw.

>
> I'm not picking a fight... I opted out of the Java world a long time
> ago.  I think it's just sad how you guys are self-destructing.  Java
> could have been so much more.
>

The irony is that for me Java was pretty much a necessary evil a few
years ago, I needed to know it for employment purposes, but I'd much
rather have programmed in something else. However OSGi and things like
iPOJO (it's very nice, check it out at http://felix.apache.org/site/apache-felix-ipojo.html)
and especially the possibility of using them with something like Scala
have made the Java platform really compelling again. Different strokes
I guess.

- Steve

Jess Holle

unread,
Jun 28, 2009, 10:27:15 AM6/28/09
to java...@googlegroups.com
Steve wrote:
I know that Dick (and probably the rest of the posse) has had enough
of the discussion (can't blame them) however I suspect that an
interview with people from some of the major projects who are using
OSGi would provide more insight into why it is (or isn't) "important,
viable or worth caring" about than discussions with people from the
OSGi alliance or Jigsaw.
  
Yes, OSGi is hugely important in some subspaces of Java right now, but...

Jigsaw and OSGi aren't targeted at the same problem space.

It really seems like some OSGi supporters are disturbed that there might be another (almost certainly simpler) solution to part of the problem space in the future.

I certainly do understand concerns about how OSGi and Jigsaw are really going to work together, though.

--
Jess Holle

Viktor Klang

unread,
Jun 28, 2009, 10:37:20 AM6/28/09
to java...@googlegroups.com
For a module system, I still prefer my childhood favourite: Lego(tm)
--
Viktor Klang
Scala Loudmouth

Steve

unread,
Jun 28, 2009, 6:38:53 PM6/28/09
to The Java Posse
On Jun 29, 12:27 am, Jess Holle <je...@ptc.com> wrote:
>
> Yes, OSGi is hugely important in some subspaces of Java right now, but...
>
> Jigsaw and OSGi aren't targeted at the same problem space.
>

From the Jigsaw website:

"We expect the resulting module system to be useful to developers for
their own code, and it will be fully supported by Sun for that
purpose, but it will not be an official part of the Java SE 7 Platform
Specification and it might not be supported by other SE 7
implementations."

> It really seems like /some/ OSGi supporters are disturbed that there
> might be another (almost certainly simpler) solution to part of the
> problem space in the future.
>

If you're referring to my comment then "disturbed" is a bit strong. I
don't care so much about OSGi itself, I care about the style of
programming it encourages, the types of things it lets you do when it
comes to deployment. I'm writing better code with it and it's making
my life easier. There are plenty of people smarter than I who think
it's worthwhile (even at Sun, the glassfish guys use OSGi). Jigsaw
inside the java runtime doesn't bother me in the slightest, if OSGi
wasn't appropriate for modularising the jre then kudos to the Jigsaw
guys for coming up with a solution to what must be a difficult problem
(retrofitting modularity).

If an alternative modularity platform for app developers was more
compelling than OSGi I certainly would jump ship, but it would need to
at least provide what the OSGi core does now (proper component
encapsulation, supporting multiple versions of the same 3rd party jar,
runtime dynamism, etc.).

My only concern is that it's only in recent times that I can find
mainstream 3rd party libraries that have been "OSGi"-ified. It's only
recently that big projects are moving to OSGi. That to me indicates
that we're at a sensitive time for the transition from a focus on OO
to a focus on modular, component oriented development. It would be a
shame if developers needed to support two systems and as a result were
turned off what I think is as significant a jump as moving from
structured programming to OO. Hopefully that concern is unfounded.

- Steve

Augusto

unread,
Jun 28, 2009, 7:53:19 PM6/28/09
to The Java Posse
On Jun 28, 6:38 pm, Steve <stephen.a.lind...@gmail.com> wrote:

> If an alternative modularity platform for app developers was more
> compelling than OSGi I certainly would jump ship, but it would need to
> at least provide what the OSGi core does now (proper component
> encapsulation, supporting multiple versions of the same 3rd party jar,
> runtime dynamism, etc.).

Multiple versions of the same jar is one thing I described in my blog
post incorrectly. Well, I said that was a core problem solved by a
module system but in fact Jigsaw doesn't seem to support it. It is not
needed for modularizing the JDK, but it is essential for modularizing
applications. I'd like to know a bit more as to how those type of
conflicts would be resolved in Jigsaw. The information that I have now
is that there are 2 different versions of a module in the same
classpath that would be an error, and only multiple versions would be
supported in different "application contexts" (which was sort of
Mark's answer in the BOF), but I'm not clear what an "application
context" means here.

Jess Holle

unread,
Jun 28, 2009, 11:21:19 PM6/28/09
to java...@googlegroups.com
Augusto wrote:
On Jun 28, 6:38 pm, Steve <stephen.a.lind...@gmail.com> wrote:
  
If an alternative modularity platform for app developers was more
compelling than OSGi I certainly would jump ship, but it would need to
at least provide what the OSGi core does now (proper component
encapsulation, supporting multiple versions of the same 3rd party jar,
runtime dynamism, etc.).
    
Multiple versions of the same jar is one thing I described in my blog
post incorrectly. Well, I said that was a core problem solved by a
module system but in fact Jigsaw doesn't seem to support it. It is not
needed for modularizing the JDK, but it is essential for modularizing
applications.
It is essential for some applications.

Personally I generally prefer to make all the parties involved work really hard at allowing for and arriving at a single version of any given library (ideally the latest stable version) to be used at runtime rather than allowing multiple versions within an application.  Using multiple library versions in one application is pretty much a worst case scenario to me -- and is generally a strong indication that someone is not keeping their software up-to-date (i.e. so that it can use the latest stable versions of the libraries it depends on).  If that someone is a vendor or 3rd-party component then that's generally a sign to go shopping for another one -- unless, of course, you're the one who has been foolish enough to stay on an old version of that component instead of moving to the new version, in which case it is time to upgrade.

--
Jess Holle

P.S. If you mean multiple versions just for things like a web app reload, that's a different matter entirely, of course.

Augusto

unread,
Jun 29, 2009, 12:27:55 AM6/29/09
to The Java Posse
No I mean that exactly.

I don't know, I mean the point of modularizing something for me is I
may want to use your module but I don't care about its internals. Or
at most, I don't want the internals of your module to affect me.

So yeah, you can expect your 3rd party libraries to "keep up" with the
latest and greatest, but that's kind of an unreasonable expectation
with fast paced technology. What I want is to use your library, but
not have it affect the same libraries it might be using internally but
that I explicitly depend on.

BTW, when people say "classpath hell" (or jar hell) this is one of the
main scenarios they refer to.

http://c2.com/cgi/wiki?ClasspathHell

----------
One big need for OsGi / JavaModuleSystem? (JSR 277) functionality is
to fix the ClasspathHell problem:

* My application uses libraries "B" and "C", both of which use
library "D".
* But "B" and "C" require different versions of "D".
* There's no version of "D" I can put on the CLASSPATH that will
satisfy both "B" and "C".
* Thus, I'm in "ClasspathHell" -- there's no "standard Java way"
to fix the problem.
------------

I assume that the whole "Application Context" in Jigsaw means that for
webapps and apps running in an EJB container you can overcome this but
no I meant it more in a regular application outside of any of these
containers.

Augusto

On Jun 28, 11:21 pm, Jess Holle <je...@ptc.com> wrote:
> Augusto wrote:
> > On Jun 28, 6:38 pm, Steve <stephen.a.lind...@gmail.com> wrote:
>
> >> If an alternative modularity platform for app developers was more
> >> compelling than OSGi I certainly would jump ship, but it would need to
> >> at least provide what the OSGi core does now (proper component
> >> encapsulation, supporting multiple versions of the same 3rd party jar,
> >> runtime dynamism, etc.).
>
> > Multiple versions of the same jar is one thing I described in my blog
> > post incorrectly. Well, I said that was a core problem solved by a
> > module system but in fact Jigsaw doesn't seem to support it. It is not
> > needed for modularizing the JDK, but it is essential for modularizing
> > applications.
>
> It is essential for /some/ applications.
>
> Personally I generally prefer to make all the parties involved work
> /really/ hard at allowing for and arriving at a single version of any

Neil Bartlett

unread,
Jun 29, 2009, 4:57:35 AM6/29/09
to The Java Posse
Jesse,

Actually I agree with you, the support for multiple JAR versions in
OSGi is useful but not the most important feature. It's easy to forget
that OSGi itself has only supported this feature since Release 4, i.e.
since around 2004.

Interestingly, the lack of multiple version support in OSGi Release 3
and earlier was highlighted by the original specification request for
JSR 277. It was argued by Sun in 2005 that OSGi was not an acceptable
solution for modularity because it did not support multiple versions
of libraries, even though it already did by that time, and they are
now seeking to design a new module system that also does not support
multiple versions.

Regards
Neil

On Jun 29, 4:21 am, Jess Holle <je...@ptc.com> wrote:
> Augusto wrote:
> > On Jun 28, 6:38 pm, Steve <stephen.a.lind...@gmail.com> wrote:
>
> >> If an alternative modularity platform for app developers was more
> >> compelling than OSGi I certainly would jump ship, but it would need to
> >> at least provide what the OSGi core does now (proper component
> >> encapsulation, supporting multiple versions of the same 3rd party jar,
> >> runtime dynamism, etc.).
>
> > Multiple versions of the same jar is one thing I described in my blog
> > post incorrectly. Well, I said that was a core problem solved by a
> > module system but in fact Jigsaw doesn't seem to support it. It is not
> > needed for modularizing the JDK, but it is essential for modularizing
> > applications.
>
> It is essential for /some/ applications.
>
> Personally I generally prefer to make all the parties involved work
> /really/ hard at allowing for and arriving at a single version of any

mcculls

unread,
Jun 29, 2009, 3:21:16 AM6/29/09
to The Java Posse
On Jun 29, 12:27 pm, Augusto <augusto.sellh...@gmail.com> wrote:
> No I mean that exactly.
>
> I don't know, I mean the point of modularizing something for me is I
> may want to use your module but I don't care about its internals. Or
> at most, I don't want the internals of your module to affect me.

[disclaimer: I contribute to OSGi projects and I'm co-authoring a book
on OSGi]

exactly, that's why libraries often use tools to embed/repackage
dependencies:

http://maven.apache.org/plugins/maven-shade-plugin/
http://code.google.com/p/jarjar/

for example Guice has CGLIB and Google-Collections as internal
dependencies,
but I wouldn't want to be forced to use the same version of these
libraries when
using Guice - similarly the Guice team probably doesn't want to be
bothered with
problems caused by someone putting a different version of CGLIB before
Guice
on the classpath (the JVM will pick the first matching class when
scanning the
classpath, so ordering makes a big difference when there's overlapping
content)

so Guice repackages CGLIB and Google-Collections inside the jar -
unfortunately
this means anyone who already has those jars gets duplicate content
(~400k?)

now imagine if everyone does the same - you could end up with ten
copies of the
Google-Collection classes, embedded inside various libraries - you can
already
see this happening in applications today, and it's caused by a lack of
modularity

if there was a standard modularity system that supported multiple
versions then
the Guice team could distribute just their classes (plus the necessary
metadata)
safe in the knowledge that regardless of what jars were on the
'module' path, the
right version would be wired to Guice

that's one of the reasons why I find module systems compelling - now I
can totally
understand why you might need a special framework to modularize the
JVM, just
like the JVM has the "Unsafe" class for internal use - but I'm a
little bit wary about
using the same solution for applications, exactly because it might be
optimized
for the JVM (for example the "no multiple versions" requirement)

still hoping that JSR 294 will help bring both sides together in some
way... oh well,
time will tell - I'd hate for people to be put off the general idea of
modularity (and to
some extent programming to interfaces) as imho it does lead to better
apps

--
Cheers, Stuart

PS. many thanks to the JavaPosse for doing both of the interviews in
the first place

Alexey Zinger

unread,
Jun 29, 2009, 2:25:08 PM6/29/09
to java...@googlegroups.com
I don't know if the jar duplication problem is that compelling overall.  Even several megabytes of duplicated jar's seems like a drop in the bucket these days.  Certainly it would take a lot for any serious product vendor to be willing to relinquish control over the libraries they depend on and risk their dependencies not getting installed properly on the client.  For years, OO.o was shipping with its own whole JRE just in case.  I think it's only recently that it's become smart enough to recognize when the client already has Java installed.

And if we don't mind duplicated jar's, then having your own modularization supporting multiple versions of the same jar is trivial.  I wrote this as part of my own plug-in architecture for an app several years ago:

  160 	public Module loadModule(Properties modConfig) throws ModuleLoadException
161 {
162 String enabled = modConfig.getProperty("mod.enabled");
163 if(enabled != null && "false".equalsIgnoreCase(enabled))
164 {
165 return null;
166 }
167 URL[] cpURLs = this.getCPURLs(modConfig);
168 Module module = this.loadModule(new URLClassLoader(cpURLs, this.getClass().getClassLoader()), modConfig.getProperty("mod.impl.class"));
169 module.init(modConfig);
170 return module;
171 }


That's the crux of it and it allows each module/plug-in to initialize in the context of its own class loader, which in turn allows me to stuff different copies of the jar's possibly containing different versions of the same class into different modules.  No problem.

Where duplicate jars count seems to be the two opposite ends of deployment spectrum -- mobile applications and app servers.  In the case of mobile deployments, right now we have two options: Java ME, which is as good as dead in terms of forward momentum, and Android, which solves the modularity problem at the core of its service-oriented architecture.  And as far as app servers, I suspect it's not a big deal for admins to keep control of shared apps and employ whatever modularization they deem necessary -- if JVM comes with it, they won't see a huge win over using an external modularization framework.
 
Alexey
2001 Honda CBR600F4i (CCS)
1992 Kawasaki EX500
http://azinger.blogspot.com
http://bsheet.sourceforge.net
http://wcollage.sourceforge.net



From: mcculls <mcc...@gmail.com>
To: The Java Posse <java...@googlegroups.com>
Sent: Monday, June 29, 2009 3:21:16 AM
Subject: [The Java Posse] Re: more jigsaw vs osgi vs javaposse

Joshua Marinacci

unread,
Jun 29, 2009, 3:09:30 PM6/29/09
to java...@googlegroups.com
On Jun 29, 2009, at 11:25 AM, Alexey Zinger wrote:

I don't know if the jar duplication problem is that compelling overall.  Even several megabytes of duplicated jar's seems like a drop in the bucket these days.


It may be trivial for server side apps where an admin downloads and preps the server and the app is only started once ever few weeks., but it's a huge problem for the client side. Every extra jar adds to your download and to your startup time. Modularity lets us to things like only download a jar when it's actually needed, and only load up into memory the classes that are actually used. Ex: webstart loads the xml libs which load up java.io which load up the entire security framework.  For a simple app this is way more classes than need to be loaded and can triple the startup time.  Modularity will solve this problem, resulting in apps that both install and start up many times faster.

- Josh

Stuart McCulloch

unread,
Jun 29, 2009, 3:17:41 PM6/29/09
to java...@googlegroups.com
2009/6/30 Alexey Zinger <inlin...@yahoo.com>
I don't know if the jar duplication problem is that compelling overall.  Even several megabytes of duplicated jar's seems like a drop in the bucket these days.

of course the gotcha with Google-Collections is that it includes its own background thread to clear references,
so having several copies of that lib means several duplicate threads - but I agree not everyone will mind that

I also like the way I can check my deployment using module metadata - I used to spend far too long messing
around finding out exactly what jars I needed on the classpath, while with the right metadata I can use tools
to do that for me (and it should be possible to do the same thing with Jigsaw metadata too)




--
Cheers, Stuart

Alexey Zinger

unread,
Jun 29, 2009, 3:18:35 PM6/29/09
to java...@googlegroups.com
Wouldn't modularization of libraries involving XML, I/O, and security necessitate the kind of refactoring that would result in the same speedup in the current JVM?  In theory, class loaders only load what's necessary already, no?
 
Alexey



From: Joshua Marinacci <jos...@gmail.com>
To: java...@googlegroups.com
Sent: Monday, June 29, 2009 3:09:30 PM

Joshua Marinacci

unread,
Jun 29, 2009, 3:23:01 PM6/29/09
to java...@googlegroups.com
modularity is part of that refactoring.
we define modules for each major component of the JRE. then we start moving code around and cutting ties to fit this new spec. the compiler can then enforce the modularity.  of course, this takes time and not everything will be done in the first rev of OpenJDK 7, but it's a good start. And the good news is that the JRE will continue to get faster and slimmer over time.

- J

Alexey Zinger

unread,
Jun 29, 2009, 3:53:17 PM6/29/09
to java...@googlegroups.com
Right, but my question is, once the necessary refactoring is done, will the JVM benefit from the same startup time boost just by relying on current class loader implementations as it would by loading those pieces via a module framework?
 
Alexey



From: Joshua Marinacci <jos...@gmail.com>
To: java...@googlegroups.com
Sent: Monday, June 29, 2009 3:23:01 PM

Joshua Marinacci

unread,
Jun 29, 2009, 4:16:36 PM6/29/09
to java...@googlegroups.com
I'm not sure. My impression from the jigsaw interview is that the modules are primarily a compile time thing. At runtime all of the stuff in the bootclasspath will still get loaded by a single classloader, but potentially faster and skipping the unnecessary classes.

- J

Lhasadad

unread,
Jun 29, 2009, 8:28:28 PM6/29/09
to The Java Posse
If it wasn't for the pressure of something like SWT. The folks at sun
might
not have responded as quickly as they did to improve performance in
swing,
etc. a little competition is good for all of us. I don't think SWT
ever did damage
to the community. it provided a performant GUI library when it looked
like
swing was not addressing the problem.

Lhasadad

unread,
Jun 29, 2009, 8:51:30 PM6/29/09
to The Java Posse
I think a little history is in order. My recollection is that in both
cases there was
a solution generated that addressed something that Sun either was not
addressing
(SWT -> performance, OSGI->Modularity, class path issues, etc). or
was not
prioritizing high enough for folks that were trying to adopt Java for
commercial
usage. In the case of the two module systems, I believe a major
complaint that
the OSGI camp had was that in the initial working group they were not
invited
to participate. if you want to engage someone and get their support,
best way
to do it is to make the solution part of their problem to solve and
engage them
for the concerns they may have with what appears to be a parallel
effort (which
appeared to them as an attempt to damage, hurt the effort they had
engaged in).

Jess Holle

unread,
Jun 29, 2009, 10:03:40 PM6/29/09
to java...@googlegroups.com
I believe SWT was a great kick in Sun's pants to get them to fix Swing, etc.

Now that it has done that I believe it has *no* reason to exist and is a essentially the single reason I'd never choose to use the Eclipse RCP.

--
Jess Holle

Lhasadad wrote:
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com
To unsubscribe from this group, send email to javaposse+...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~--

Reinier Zwitserloot

unread,
Jun 30, 2009, 3:58:20 AM6/30/09
to The Java Posse
Some questions about using the same library more than once at
different versions, for both folks knowledgable at OSGi, and anybody
who knows how this is going to work in JavaFX:

1) The serious issue with the same library at different versions in
use by 2 separate modules is the lack of interoperability. Let's say,
for arguments sake, that the collections API was versioned, and module
A is using v1, while module B is using v2. If module A communicates
with module B via some mechanism (such as e.g. bouncing through the
'Main' app, or via interfaces directly to each other), then this is
just plain not going to work - A's "List" isn't B's "List" - and
that's that.

This is unacceptable for any library that is commonly used across
module boundaries (such as the core java runtime libraries - so those
folks thinking that the modularization of the JVM is going to allow
sun to break backwards compatibility - sorry, not gonna happen, unless
this problem is solved) - but it also seems to be a ridiculously hard
problem to solve. The only thing I can come up with is a way for a
library to ship with 'view wrappers' that act and feel just like a
certain version, but really just wrap through to the 'canonical'
installed _real_ class code. That way, the only objects that are
actually passed around are of the canonical version, and any module
that is not compatible with that version instead sees a wrapper.

How such a wrapper would work, especially considering a change like
e.g. changing the swing code to return immutable Point objects in
response to e.g. getSize() - shows just how complicated that's going
to get.


Does OSGi offer anything to address such an issue? At least jigsaw
lets you interop between modules if you declare them all as local
dependencies (and, yes, they all are capable of working with the same
version) - but that's not exactly a nice solution either.


2) Where is it written that jigsaw will not support runtime
separation? I've heard time and time again that jigsaw offers a way to
ESCAPE doing that (by way of the local dependencies mechanism), which
suggests that by default jigsaw will use classloader-based tricks, or
repackaging, to let you do runtime separation. However, this
discussion seems focussed on the idea that jigsaw can't do this. Where
is this written? I know, I know - jigsaw lacks specs, and we all (even
the 'jigsaw fanboys') are very annoyed at that, but there's
nevertheless quite a bit of info out there. If this information is NOT
out there, I think we're jumping the gun.

Steve

unread,
Jun 30, 2009, 7:06:18 AM6/30/09
to The Java Posse
On Jun 30, 5:58 pm, Reinier Zwitserloot <reini...@gmail.com> wrote:
>
> 1) The serious issue with the same library at different versions in
> use by 2 separate modules is the lack of interoperability. Let's say,
> for arguments sake, that the collections API was versioned, and module
> A is using v1, while module B is using v2. If module A communicates
> with module B via some mechanism (such as e.g. bouncing through the
> 'Main' app, or via interfaces directly to each other), then this is
> just plain not going to work - A's "List" isn't B's "List" - and
> that's that.
>

That's not really the point of the "multiple version" question. You're
unlikely to write an app that explicitly depends on two different
versions of the same library, as you point out using two versions of
the same class in a single module is not going to work (it doesn't
really make sense). You are, however, eventually going to write an app
where you end up with incompatible *transitive* dependencies (ie.
classpath hell). It's this sort of situation that OSGi can help you
with.

>
> 2) Where is it written that jigsaw will not support runtime
> separation? I've heard time and time again that jigsaw offers a way to
> ESCAPE doing that (by way of the local dependencies mechanism), which

Can you elaborate on this a bit?

> suggests that by default jigsaw will use classloader-based tricks, or
> repackaging, to let you do runtime separation. However, this
> discussion seems focussed on the idea that jigsaw can't do this. Where
> is this written? I know, I know - jigsaw lacks specs, and we all (even
> the 'jigsaw fanboys') are very annoyed at that, but there's
> nevertheless quite a bit of info out there. If this information is NOT
> out there, I think we're jumping the gun.
>

It should be a pretty simple question to answer, either it does or it
doesn't. Someone must know :)

Eric

unread,
Jun 30, 2009, 9:19:41 AM6/30/09
to The Java Posse
I took this down. Apologies for the over- reaction.

Eric

On Jun 26, 5:24 pm, "phil.swen...@gmail.com" <phil.swen...@gmail.com>
wrote:
> http://modualrit.blogspot.com/2009/06/jigsaw-posse.html

Eric

unread,
Jun 30, 2009, 11:33:12 AM6/30/09
to The Java Posse
Dick,

Thanks very much for this. I'm glad to see that the discussion is
continuing in a more professional tone and is focusing more on
technical issues. Apologies again for my over-reaction.

Eric



On Jun 27, 10:22 am, Dick Wall <dickw...@gmail.com> wrote:
> A bit of damage control here, and a personal announcement:
>
> First - thanks Neil - I know you are trying to keep the peace, but I
> do want to point out that I did not say that we were being begged for
> interviews, please re-read the posting for clarification. Gone are the
> days when we had to do the begging, but I can honestly say no one has
> ever begged us to come on the show, nor would I feel entirely
> comfortable with that (someone that needy would sound the alarm
> bells). No, these days we are merely in the happy position of being
> taken seriously, and getting lots of simple offers and requests for
> interviews. Nothing more. I say this partly because I would like you
> to see how easy it is to misread or misquote something.
>
> Our interviewing style is a personal choice, it is in no way because
> we are afraid of putting people off - I just see little point in
> introducing conflict into a situation when "softly softly" seems to
> work really well for us. As far as the Jigsaw interview goes, we hit
> every point that I have heard leveled against Jigsaw, including the
> use of OSGi to split up Harmony. I believe we ask the hard questions,
> but I see no reason not to ask them politely - it was after all how I
> was brought up.
>
> I would encourage you, as you say, to dig deeper yourselves, which
> brings me to my main point of this post.
>
> Firstly, I want to make it clear that I am speaking entirely for
> myself here. I have not talked to the rest of the posse yet, but when
> I wake up at 4.30am with stuff swimming about my head it's time to
> take action, so this is my pledge, for me, Tor, Joe and Carl can speak
> for themselves.
>
> When the requests first started coming in for us to dig into the Java
> modularity stuff, I resisted. My gut instinct was not to get involved
> for a couple of reasons:
>
> 1. I am not really that interested in the space, sure, I want some of
> the advantages, but I am largely uninterested in how we get there and
> certainly don't have a lot of time or passion to invest in something I
> care this little about.
>
> 2. It is clear that some people in this space want a fight, which is
> fine, that's their prerogative. However,  I suspected that the reason
> our involvement was requested was to further that aim, to stir up the
> space, in other words I suspected that we were being used to further
> other people's aims.
>
> Despite that, we got enough requests that we got involved, against my
> better judgment, and once again I am reassured that I can trust my gut
> instinct, and disappointed that I did not do so.
>
> So, where have we arrived now? After giving both sides a voice, after
> many hours of my own time invested in something I really just don't
> care that much about, and after trying to explain at every opportunity
> my own opinions, we seem to have ended up being used as a blunt
> instrument for political points scoring. I don't believe the situation
> has helped anyone, and I am irritated that I didn't follow my
> instinct, which I will now do.
>
> From now on I recuse myself from anything involving OSGi, Jigsaw and
> Java modularity in general, unless it constitutes straight news (which
> we will always report), or something that is of particular technical
> interest to me. Keep it simple - that's my motto. Since this whole
> sorry affair has brought little but bad feelings all around I see
> absolutely no point in continuing along with it. I personally am
> seeing no benefit for me, and this is apparently getting way to
> personal for something I just don't care about when we see the kind of
> descriptions that have been on this thread.
>
> If the rest of the guys want to talk about the topic still - that's
> cool, but personally I have lost both interest and motivation in the
> whole sorry space, and I certainly don't want to see the Java Posse
> continue to be janked around and used for political ends.
>
> Dick
>
> On Jun 27, 1:57 am, Neil Bartlett <njbartl...@gmail.com> wrote:
>
> > Dick,
>
> > As an OSGi supporter I also think Eric has gone a little far with this
> > blog post. It's clear to me at least that the JavaPosse was never
> > intended to be a "watch dog". You're just 4 guys podcasting about what
> > interests you, and your popularity and success speaks for itself. If
> > the "OSGi community" wants a podcast that satisfies our biases more
> > than yours then we should just damn well start one. I'm not under any
> > illusions that it would be able to catch up with you guys in
> > popularity any time soon.
>
> > However if you're really being begged for interviews, then I think you
> > can afford to be a _little_ tougher on the interviewees. I'm not
> > talking about gotcha tactics or screwing people over, just asking them
> > to back up what they say and digging a little deeper. You don't need
> > to interview like Bill O'Reilly or even Jeremy Paxman, but an
> > occasional streak of Krishnan Guru-Murthy wouldn't be so bad.
>
> > Cheers,
> > Neil
>
> > On Jun 27, 12:13 am, Dick Wall <dickw...@gmail.com> wrote:
>
> > > Wow - what a report. I really couldn't let this one go by without some
> > > comment.
>
> > > Some choice pieces from the article:
>
> > > "defend Jigsaw scathing, cynical, and even insulting comments about
> > > OSGi folks"
>
> > > From everything (and I mean everything) I have observed so far, the
> > > scathing comes primarily from the OSGi followers, and not the main
> > > camp either, but a noisy group of people who seem to have injected
> > > themselves into the discussion. I certainly didn't pick up anything
> > > scathing in Mark or Alex's answers, nor in all fairness did I pick up
> > > anything from Peter Kriens or B.J. Hargrave when we interviewed them.
> > > As far as I can see, the key players in this game have been
> > > professional throughout. Opinions not matching your own do not
> > > constitute scathing cynicism, or insults, they are merely differing
> > > opinions.
>
> > > "At first I figured the reason was that the Java Posse is not actually
> > > a technical forum, but is popular for its entertainment value,
> > > instead. But some of the other threads seemed to treat technical
> > > topics seriously"
>
> > > You bet - I believe we have amassed a fantastic group of energetic
> > > people who are passionate about all aspects of the Java language,
> > > platform and community. Eric, I really believe you should reserve such
> > > judgment until you have been a member of the forums a little longer
> > > and joined in on some other threads that Jigsaw/OSGi. I would also
> > > point out that your comments about the forums not being technical but
> > > only for entertainment is a little insulting to the people here, Again
> > > - it's regrettable if not everyone sees it your way, but really isn't
> > > that just an opportunity to learn from others.
>
> > > "Finally it occurred to me that the Java Posse is just probably more
> > > of a "lap dog" than a "watch dog""
>
> > > Right, this is the line that prompted the response, and respond I
> > > will. Firstly, you seem to be claiming insults, scathing and cynicism
> > > from Jigsaw (and us, and the forums), but I believe we have the best
> > > example of all three right here. I am an engineer with 20 years of
> > > experience, I am nobody's lapdog, nor are Carl, Joe and Tor I can
> > > assure you. In fact these are three of the finest professionals I have
> > > ever had the pleasure to work with - why do you suppose I wanted to do
> > > a podcast with them in the first place?
>
> > > I really hope you can back up your statement here. What is it based
> > > on? We do not accept sponsorship (Atlassian beer-for-events
> > > awesomeness aside - but that is the only thing and would anyone
> > > serious begrudge our live audience members that)? I also would point
> > > out that just a few weeks before the Jigsaw interview, we did a
> > > similar interview with Peter and BJ for OSGi. Do you really believe
> > > that it was not fair and balanced to let Mark and Alex respond to that
> > > criticism (which, as I have mentioned, seemed professional and honest
> > > from both sides). Also, if you really believe we influence what ~3000
> > > developers on this group think, I believe you have overestimated our
> > > reach. The Java Posse Google group is a fantastic discussion forum,
> > > and one of the things I am proudest of from the podcast, but I think
> > > that most people here have made up their own mind on things, and if
> > > you are finding resistance to your "one true way" perhaps that should
> > > be significant.
>
> > > Thirdly, if you really believe we are "not biting the hand that feeds
> > > us" to get the "scoop" on news or people to interview, I would hope
> > > that common sense would indicate otherwise. Long gone are the days
> > > were we needed to beg for interviews, these days (seriously) it is all
> > > I can do to stay up to date with the requests (sorry folks, I do get
> > > backed up on this stuff some times because my real job gets in the
> > > way). I believe some of this has come from the fact that we do not
> > > practice gotcha tactics, try and screw people over or put words in
> > > their mouths. We remember who's interview it is and let them have
> > > their say.
>
> > > I am really disappointed that you would come out of the gate swinging
> > > like this. I believe it doesn't show your cause in a good light either
> > > - such animosity towards people rarely makes friends. I hope you hang
> > > around long enough to see the value in the community we have built
> > > here, and maybe to work out that we are in fact nobody's lapdog.
>
> > > Cheers
>
> > > Dick
>
> > > On Jun 26, 2:24 pm, "phil.swen...@gmail.com" <phil.swen...@gmail.com>
> > > wrote:
>
> > > >http://modualrit.blogspot.com/2009/06/jigsaw-posse.html

Reinier Zwitserloot

unread,
Jun 30, 2009, 12:16:19 PM6/30/09
to The Java Posse
But, Steve, I just named a rather obvious use case where every module
states their own dependencies, and yet interop is absolutely required:

The java core libraries!

Unless we decide to all talk in primitives and Strings to each other,
it would all considered be a much nicer programming environment if
there was a solution to this issue. Somehow. As I mentioned, it seems
almost impossible to solve. However, most of the time when I talk to
modularization fans (be it OSGi, or jigsaw, or agnostic), people
forget this is a problem. Usually someone ends up asserting that a
good module system allows libraries to break backwards compatibility.
I can't remember the number of times I've rained on that particular
parade.

I'm flabbergasted nobody cares about this. While a hard problem to
solve, I think it *IS* solvable.

And, as to the 'local dependencies' thing - you'll have to go back to
the jigsaw podcast. What I remember quite clearly is the following
gist:

(paraphrased from Mark and alex): "Unlike OSGi, jigsaw does _not_
consider split packages a big problem. We support local dependencies,
which bundles everything up into one classloader, so you can split
code that is tightly bound into multiple modules".

The way they phrased it, it sounded to me like that was a choice: I
want local dependencies, which allows interop but does not allow
multiple versions, or I don't want local dependencies, in which case
no interop, but multiple versions. I might be reading too much into
how things were said.

Does anyone have Mark and/or Alex's ear? I'm sure they know.

Stuart McCulloch

unread,
Jun 30, 2009, 3:01:10 PM6/30/09
to java...@googlegroups.com
2009/7/1 Reinier Zwitserloot <rein...@gmail.com>

But, Steve, I just named a rather obvious use case where every module
states their own dependencies, and yet interop is absolutely required:

The java core libraries!

Unless we decide to all talk in primitives and Strings to each other,
it would all considered be a much nicer programming environment if
there was a solution to this issue. Somehow. As I mentioned, it seems
almost impossible to solve. However, most of the time when I talk to
modularization fans (be it OSGi, or jigsaw, or agnostic), people
forget this is a problem. Usually someone ends up asserting that a
good module system allows libraries to break backwards compatibility.
I can't remember the number of times I've rained on that particular
parade.

I'm flabbergasted nobody cares about this. While a hard problem to
solve, I think it *IS* solvable.

to be fair I do know people who care about this, and they are trying to solve it

for example the OSGi spec has a lot of detail (and theory) about class spaces and
consistency - release 4 introduced so-called "uses" constraints basically to make
sure both sides use compatible types when using a particular API:

  http://underlap.blogspot.com/2007/10/osgi-type-safety-and-uses-directive.html

( solving these sort of constraints is suspected to be an NP-complete problem )

but in the end you do have to agree on some point of interop - for OSGi that's
often an interface because then you can have multiple implementations loaded
but all sharing the same interface - usually via the lightweight service registry

now depending on what happens to the interface over time changes how you
can share it - if a bundle calls an implementation using interface A then it can
also use later versions of that interface A' which have additional methods
( ignoring semantic issues of course! )

however, if you removed or refactored methods in an even later version A''
then the client wouldn't be able to use it because of the missing method(s).

on the other hand, a bundle providing an implementation of interface A would
not be able to use A' because it doesn't have an implementation of the added
method, but conversely it could use versions of A which had methods removed
( again ignoring semantic issues )

so how do we decide which bundles get which versions of A to maximise interop?

well at the moment in OSGi this is mainly done by specifying version ranges on
your import packages (in the manifest) to declare what versions you can safely
use - unfortunately getting these ranges right is hard, but there are tools that
can help, like the API tooling in Eclipse 3.5

actually this exact topic came up at the OSGi BoF during Jazoon and there was
a lot of discussion and suggested solutions, including using extra dimensions to
define different aspects of compatibility rather than the linear version string we
all use today (because this doesn't actually tell you much about compatibility)

so this is definitely not solved yet, but I do agree that it is solvable

also I should mention that OSGi also allows you to have split packages, though
it is discouraged, by using Require-Bundle (ie. module level dependency rather
than package level dependency)

you can also have local dependencies inside your bundle (ie. same classloader)

And, as to the 'local dependencies' thing - you'll have to go back to
the jigsaw podcast. What I remember quite clearly is the following
gist:

(paraphrased from Mark and alex): "Unlike OSGi, jigsaw does _not_
consider split packages a big problem. We support local dependencies,
which bundles everything up into one classloader, so you can split
code that is tightly bound into multiple modules".

The way they phrased it, it sounded to me like that was a choice: I
want local dependencies, which allows interop but does not allow
multiple versions, or I don't want local dependencies, in which case
no interop, but multiple versions. I might be reading too much into
how things were said.

Does anyone have Mark and/or Alex's ear? I'm sure they know.

unfortunately reading the latest on jigsaw is still on my (long) todo list :(
but I would also like to know if this is a developer choice or a limitation
 
On Jun 30, 1:06 pm, Steve <stephen.a.lind...@gmail.com> wrote:
>
> That's not really the point of the "multiple version" question. You're
> unlikely to write an app that explicitly depends on two different
> versions of the same library, as you point out using two versions of
> the same class in a single module is not going to work (it doesn't
> really make sense). You are, however, eventually going to write an app
> where you end up with incompatible *transitive* dependencies (ie.
> classpath hell). It's this sort of situation that OSGi can help you
> with.
>
>
>
> > 2) Where is it written that jigsaw will not support runtime
> > separation? I've heard time and time again that jigsaw offers a way to
> > ESCAPE doing that (by way of the local dependencies mechanism), which
>
> Can you elaborate on this a bit?
>
> > suggests that by default jigsaw will use classloader-based tricks, or
> > repackaging, to let you do runtime separation. However, this
> > discussion seems focussed on the idea that jigsaw can't do this. Where
> > is this written? I know, I know - jigsaw lacks specs, and we all (even
> > the 'jigsaw fanboys') are very annoyed at that, but there's
> > nevertheless quite a bit of info out there. If this information is NOT
> > out there, I think we're jumping the gun.
>
> It should be a pretty simple question to answer, either it does or it
> doesn't. Someone must know :)




--
Cheers, Stuart

strou...@gmail.com

unread,
Jul 1, 2009, 1:17:58 PM7/1/09
to The Java Posse
Chris,
I haven't read the whole thread, so this may have been said already,
but this is really reminiscent of what happened to smalltalk. The same
kind of religious wars without the wisdom of practical application or
cohesive vision.

Hopefully, we can move beyond it.

LES

On Jun 27, 4:14 pm, Chris Adamson <invalidn...@gmail.com> wrote:
> It's not one or two, and it's not immediate.  This kind of belligerent
> zealotry was something I saw frequently over the last few years when I
> was putting together the java.net front page every day.  Thing was, as
> the Editor, I couldn't publicly express how much I disliked this.
> Take a look at Peter Kriens' October 2006 screed "JSR 277 Review"
> <http://www.osgi.org/blog/2006/10/jsr-277-review.html>, and my hands-
> off summary in the java.net Editor's blog <http://weblogs.java.net/
> blog/editors/archives/2006/10/the_bones_of_an.html>.
>
> Not one or two.  Not immediate.  I got sick of these guys years ago,
> and I think they hurt the Java community with their behavior (which is
> where my analogy to SWT comes from: I think Desktop Java was mortally
> wounded by turning the widget set into a damned holy war, when the
> bigger problem was probably end-user deployment).
>
> --Chris
>
> On Jun 27, 2:34 pm, Reinier Zwitserloot <reini...@gmail.com> wrote:
>
>
>
> > Chris, one or two OSGi zealots make some noise and you immediately
> > insinuate that 'the java community is self destructing'?  Don't you
> > realize that's kinda insulting?

Bill Robertson

unread,
Jul 1, 2009, 2:25:37 PM7/1/09
to The Java Posse
Eric,

You took some heat for posting this in the first place, so I think its
only fair that you be recognized for doing the right thing.

Thanks.

Steve

unread,
Jul 1, 2009, 6:49:37 PM7/1/09
to The Java Posse
On Jul 2, 3:17 am, "pub...@lesstroud.com" <stroud....@gmail.com>
wrote:
> Chris,
> I haven't read the whole thread, so this may have been said already,
> but this is really reminiscent of what happened to smalltalk. The same
> kind of religious wars without the wisdom of practical application or
> cohesive vision.
>
> Hopefully, we can move beyond it.
>

Hopefully we can also move beyond argument by analogy... so far OSGi
is like SWT, EJB2, Smalltalk, hemorroids and rising damp. We just need
someone to say that Nazis advocated classloader separation and we can
finally call Godwin.

- Steve

Eric Newcomer

unread,
Jul 1, 2009, 6:52:09 PM7/1/09
to java...@googlegroups.com
Bill,

Thanks very much.  In the end I realized I over reacted, and the right thing was to take it down. I also appreciate where things are right now, i.e. in a better conversation.

One of the things Dick said about this (paraphrasing) was that it might have been different if I had a better experience with the community.  After following Java Posse discussions for a while now I agree that's the case.

It can sometimes be difficult to identify business/political motivations in technical discussions, and I think Dick also was right to say some folks posting to the list were just trying to score political points. I would say this was what triggered my over-reaction.

One thing I would like to say in terms of a comment on this topic is that I think everyone recognizes the goals of Jigsaw as being valid, and I don't blame anyone for being a fan of Jigsaw.  But many of its goals have already been achieved in OSGi, and I would hope that the Jigsaw fans can understand why those of us who had invested in OSGi before Jigsaw was started raise the question of why OSGi was not used as the starting point.  I know that the Jigsaw folks replied to these points, but I think it's also understandable to question the replies, given the historical rivalry of Sun vs IBM over the future of Java, and the use of OSGi in Eclipse. 

Eric

Bill Robertson

unread,
Jul 2, 2009, 12:53:32 AM7/2/09
to The Java Posse
Eric, I don't think it is fair to call somebody who accepts the Jigsaw
project's decision a "Jigsaw fan." I can't speak for anybody else,
but I don't see their decision as a partisan issue. The engineers
with the fingers on the keyboard seem like reasonable people, and they
say that this is the best decision for their circumstances (technical
and deadline), so I accept that. Its not an issue of rooting for not-
OSGI v.s. OSGI for me. I'm sure others feel this way as well.

Thanks.

On Jul 1, 6:52 pm, Eric Newcomer <enewco...@gmail.com> wrote:
> Bill,
>
> Thanks very much.  In the end I realized I over reacted, and the right thing
> was to take it down. I also appreciate where things are right now, i.e. in a
> better conversation.
>
> One of the things Dick said about this (paraphrasing) was that it might have
> been different if I had a better experience with the community.  After
> following Java Posse discussions for a while now I agree that's the case.
>
> It can sometimes be difficult to identify business/political motivations in
> technical discussions, and I think Dick also was right to say some folks
> posting to the list were just trying to score political points. I would say
> this was what triggered my over-reaction.
>
> One thing I would like to say in terms of a comment on this topic is that I
> think everyone recognizes the goals of Jigsaw as being valid, and I don't
> blame anyone for being a fan of Jigsaw.  But many of its goals have already
> been achieved in OSGi, and I would hope that the Jigsaw fans can understand
> why those of us who had invested in OSGi before Jigsaw was started raise the
> question of why OSGi was not used as the starting point.  I know that the
> Jigsaw folks replied to these points, but I think it's also understandable
> to question the replies, given the historical rivalry of Sun vs IBM over the
> future of Java, and the use of OSGi in Eclipse.
>
> Eric
>

Eric Newcomer

unread,
Jul 2, 2009, 1:36:45 AM7/2/09
to java...@googlegroups.com
Bill,

I was very simply and only saying this because some people had identified themselves as such on this list.  This seems like another case of the problem - to object to my using a label someone used for themselves is very strange.

If you look at this from a purely technical angle there is no good reason for the Jigsaw project to exist.  You can disagree about that, and it's fine, but to get after me for using a term someone else has already used is very strange indeed.

I cannot see how pointing out that competition and politics is involved is a negative or a criticism. This is a fact of life, that's all.  When that happens some people are going to align themselves one way or another. That's it.  Nothing negative implied.

Eric

Bill Robertson

unread,
Jul 2, 2009, 9:45:21 AM7/2/09
to The Java Posse
Eric,

I'm not trying to get on you personally about anything, however I
don't recall anybody proclaiming themselves as being fans of Jigsaw
here, or anywhere, and even if somebody did that still doesn't mean
that it applies to the entire group. I don't think its fair to use
the term, because of the negative connotations of the term.

However, if I misunderstood your intent, then I apologize. I also
respect your right to disagree with my opinion on the matter. So no
harm intended.

Thanks and good luck.

On Jul 2, 1:36 am, Eric Newcomer <enewco...@gmail.com> wrote:
> Bill,
>
> I was very simply and only saying this because some people had identified
> themselves as such on this list.  This seems like another case of the
> problem - to object to my using a label someone used for themselves is very
> strange.
>
> If you look at this from a purely technical angle there is no good reason
> for the Jigsaw project to exist.  You can disagree about that, and it's
> fine, but to get after me for using a term someone else has already used is
> very strange indeed.
>
> I cannot see how pointing out that competition and politics is involved is a
> negative or a criticism. This is a fact of life, that's all.  When that
> happens some people are going to align themselves one way or another. That's
> it.  Nothing negative implied.
>
> Eric
>
> On Thu, Jul 2, 2009 at 12:53 AM, Bill Robertson
> <billrobertso...@gmail.com>wrote:

Eric Newcomer

unread,
Jul 2, 2009, 11:15:34 AM7/2/09
to java...@googlegroups.com
Bill,

Apologies if I took Reinier's comment (quoted below) out of context - but he did say "even 'jigsaw fanboys' " ...  I interpreted this as acknowledging that there are "Jigsaw fans" that's all. I certainly didn't mean to imply that everyone posting to the list was a fan.

>2) Where is it written that jigsaw will not support runtime
>separation? I've heard time and time again that jigsaw offers a way to
>ESCAPE doing that (by way of the local dependencies mechanism), which
>suggests that by default jigsaw will use classloader-based tricks, or
>repackaging, to let you do runtime separation. However, this
>discussion seems focussed on the idea that jigsaw can't do this. Where
>is this written? I know, I know - jigsaw lacks specs, and we all (even
>the 'jigsaw fanboys') are very annoyed at that, but there's
>nevertheless quite a bit of info out there. If this information is NOT
>out there, I think we're jumping the gun.

What I was trying to say (risking another screw up ;-) is that I can understand why people like Project Jigsaw.  It is completely understandable why Project Jigsaw has its supporters. Its goals are good goals, but as Reinier has also said, it's hard to figure out what is really going on with the project, and in particular how it will or will not relate to what OSGi is. 

Eric
Reply all
Reply to author
Forward
0 new messages