I think collaboration is definitely the
right way to go. However, our definition of
collaboration seems to differ. Let’s start by looking at
what the dictionary may say about “collaboration”:
- [uncountable, countable] the act of working
with another person or group of people to create
or produce something
Seems pretty clear. Now what about
compete?
compete
[ kuhm-peet ]
verb (used without object), com·pet·ed, com·pet·ing.
to strive to outdo another for acknowledgment, a
prize, supremacy, profit, etc.; engage in a contest;
Again, pretty simple, I think you’d agree.
Now let’s try to apply this to our
situation and maybe Red Hat is alone in this regard (I
suspect not, but I don’t want to put words in the
mouths of other people/organisations): within
MicroProfile we’re working to define “standards” that
abstract away implementation details of specific
underlying approaches to achieve the same task, with a
focus on microservices. We’ve made the conscious
decision to do that work within the Eclipse
MicroProfile community. Not within Jakarta EE. Not
within the Apache Software Foundation. Not within
CNCF. We chose within the Eclipse Foundation and
MicroProfile specifically. I don’t see moving of
functionality and effort from MicroProfile to Jakarta
EE as collaborative at all. It’s not the act of one
community working with another community to create
something for the benefit of users. Now I’m sure it’s
not the intention of people on the Jakarta side to
appear to be striving to outdo MicroProfile as per the
definition of “compete” so perhaps that’s not the
right word but it’s certainly not “collaborative”.
Over the years as open source has evolved
there have been a number of examples of collaboration
and competition (forking, typically). I’ll throw out a
few but these are just examples:
- Knative Eventing, which enables Apache
Kafka as an implementation - collaboration;
- Hudson and Jenkins - competition;
- Linux - that’s an interesting mix of
collaboration upstream and competition downstream;
- Netty - this began life as a JBoss
project but we span it out when Trustin Lee left in
order to have a single upstream community for
cross-vendor/cross-group collaboration;
With the exception of one of these
(exercise left to the reader), they show communities,
individuals and vendors coming together to work across
various projects or within one project. They’re
successful not because one group decided to fork and
rename the work of another community but because the
recognised that communities can leverage the work of
each other without having to rename, rebadge or
change.
If we look at standards there are some
similar examples. I’m sure many of the people on this
list know about SOAP-based Web Services. Some of you
may have developed solutions using them. Some of you
may have been involved in the development of some of
those standards and in which case you may recall that
back in the early 2000s standards efforts tended to be
split between OASIS and W3C due to competition between
the vendors. Again, some examples of collaboration and
competition:
- WS-Addressing from the W3C -
collaboration. Fortunately the vendors at the time
recognised that they really needed to standardise on a
single addressing mechanism rather than two or more
and WS-Addressing became it. All other WS-*
specifications adopted it regardless of the makeup of
vendors working on them or the standards organisation
within which that other effort may reside.
Specifically we ended up with many WS-* specifications
within OASIS using WS-Addressing from within W3C and
they DID NOT rename it, or fork it;
- WS-Reliability and WS-Reliable Messaging
- competition. Both attempted to solve the same
problem and eventually, due to a number of reasons not
least of which was confusion for end users, WS-RM
became the agreed standard.
In conclusion, I agree with you that
collaboration should be the way for these two groups
to function. However, collaboration in my view means
using specifications as they are defined in each group
and not copying/forking.
Mark.
I would also like to understand
whether we want MicroProfile and Jakarta EE to
collaborate or compete. I hope we all want
them to collaborate, it's just not clear to me
what some people understand as collaboration.
For me:
- Moving functionality or even
whole specs between MicroProfile and
Jakarta EE -> collaboration
- Duplicating functionality ->
competition
- Forcing one or the other to
consume specs from the other ->
competition
I think the last point above is
what is causing all the controversy and
disputes in this thread. I believe that
collaboration should be voluntary, not
enforced. And therefore it's not
collaborative to prohibit Jakarta Security
to implement support for JWT, if the
Security team wants to do so and even
planned to do so even before MP JWT existed.
And we all know that Jakarta EE cannot
depend on MicroProfile specs, for various
reasons already discussed elsewhere. It's
simply not an option even though it may seem
logical.
For me, collaborative means that
both MP and EE try to find a solution that
is suitable for both. I see one such
solution, which I already mentioned:
- JWT support is added to
Jakarta Security, ideally with some
support and feedback from the MP JWT
team
- Jakarta Security creates a
Lite profile (with just JWT, or maybe
some other things suitable for
MicroProfile)
- MicroProfile can then replace
MP JWT with Jakarta Security Lite to
unify the API, but doesn't have to, if
EE Security Lite spec isn't (yet) good
enough to replace MP JWT. MicroProfile
would certainly be consulted before EE
Security Lite is added to EE Core
Profile.
All steps here are voluntary and don't
require that both MicroProfile and Jakarta
EE agree on anything. But with this
approach, there are also a lot of options
how MP and EE can collaborate to improve the
final solution for both.
Or am I wrong in how I
understand collaboration vs. competition?
All the best,
Ondro Mihalyi
Director, Jakarta
EE expert
Omnifish OÜ,
Narva mnt 5, 10117 Tallinn, Estonia
| VAT: EE102487932
Well said,
David. I know I feel the same way and before I
ask Red Hat engineering to do further work in
Jakarta or MicroProfile I want to know whether
it's under a collaborative or competitive
basis as that will impact where we do such
work, if at all.
Sent from my iPhone
> On 10 Nov 2022, at 20:02, David Blevins
<dblevins@xxxxxxxxxxxxx>
wrote:
>
>
>> On Nov 10, 2022, at 11:09 AM, Mike
Milinkovich <mike.milinkovich@xxxxxxxxxxxxxxxxxxxxxx>
wrote:
>> Good points. There are indeed
non-technical differentiators between
MircoProfile and Jakarta EE. No one would
dispute that.
>>
>> But since we are discussing important
philosophical points, let us add the fact that
the Eclipse Foundation has always and will
always permit competing projects, and that
extends to specifications as well. We will
never endorse the allocation of a market to
one coalition of vendors over another set of
vendors. So just because MicroProfile has a
specification in a particular domain in no way
prevents Jakarta EE from creating a similar
spec. That work may or may not be based on
prior work done at MicroProfile, so "move"
doesn't really factor into the discussion.
>>
>> As you point out, there are important
non-technical differences between the two. Any
one of those could be a good reason why
Jakarta EE may wish to have its own
specifications which overlap or compete with
MicroProfile specs. In other words, there can
be a myriad of reasons why competing specs may
occur: business, technical, community, vendor
support, etc etc. But "MicroProfile did it
first" does not provide it with any sort of
veto.
>>
>
> I think these are all very fair points
and it's healthy to remind people and have
that conversation.
>
> I think it really comes down to if we
want to continue to ensure both can live in
the same box as many of us have been doing.
If we think that's important, then there are
some values we would need to maintain.
>
> If we don't want that and do want them to
compete, then it might be better for us to
explicitly decide that so everyone is fully
aware and can plan accordingly.
>
> Given the status quo has been they
co-exist in the same box and don't compete,
I'd greatly prefer an explicit decision that
they will now compete vs slowly making them
compete one spec at a time with no explicit
conversation or decision that the two will now
compete.
>
> Now, I certainly don't always get what I
want, but I find if I do my best to make
myself at least understood I tend to feel a
lot better about the outcome when things don't
go my way.
>
> My $0.02
>
>
> -David
>
>
_______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev