users@jax-rs-spec.java.net

[jax-rs-spec users] Re: [jsr339-experts] Re: MVC

From: arjan tijms <arjan.tijms_at_gmail.com>
Date: Mon, 30 Jun 2014 18:41:22 +0200

On Mon, Jun 30, 2014 at 5:26 PM, Reza Rahman <Reza.Rahman_at_oracle.com> wrote:

> I have to admit I personally think we could have worded the survey a bit
> better. MVC was in fact the wrong term to use in hindsight. An action
> oriented framework would have been more accurate.
>

As a matter of fact, one of the very earliest wording from the EE EG did
use the term "action-oriented web framework", see
https://java.net/downloads/javaee-spec/JavaEE-EG-meeting-results.pdf :

Java EE 8 Idea
JAX-RS MVC

* Action-oriented web framework.
* Do we really need another standard web framework?
* Would this be The One?

Such a small amount of text, but it does say so much already. It clearly
mentions that it's about action-oriented, and it poses the questions about
whether a fullstack framework like Java EE really needs two standard web
frameworks and whether this new one should be The One. I interpreted this
last question as wondering whether it would ultimately replace JSF (maybe
that interpretation is not correct, it's just an interpretation).



> That being said, I do think from the comments to the survey that the
> respondents actually understood exactly what we meant.
>

That may be true indeed. In a way I think this is unfortunate though, as
now Java EE too is more or less "helping" the increasingly common
perception that MVC is strictly (or mostly) about the way Spring MVC has
been doing MVC.


> In fact, there may be sound reasons to still carry forward the MVC term
> with this effort if we decide to go forward with it.
>

From a marketing / PR point of view I can surely understand the reasoning.
Both Spring MVC and ASP.NET MVC that use this specific model are well known
names. Spring MVC, ASP.NET MVC, Java EE MVC... I agree it does have a
certain ring to it ;)

But from a technical point of view, especially for someone who has done the
more classic MVC (as introduced by smalltalk and as used in various desktop
toolkits) I'm not the biggest fan of this.


> An additional value to keeping JSF at arms length in this particular case
> is that the users of this new solution are likely to be averse to JSF in
> the first place, potentially needlessly limiting the success of the effort.
>

I certainly recognize this sentiment and there absolutely is an element of
truth to it. On the other hand there seems to be a similar kind of aversion
among certain groups of people to the names "Java EE", "Oracle" and in fact
"Java" in general. Case in point; read the comments posted for many
Java/Java EE/Oracle related articles posted at say /r/programming at Reddit
or hackers news. Naturally we would not want to keep any of those names at
arms length. Instead, I think our common goal is to improve Java and Java
EE in any way we can, and stress the point over and over again how much
those technologies improved and how little of the old criticises still hold.

For Java, Java EE and JSF I see the fruits of this everywhere. Half a
decade ago they were all pretty much dirty words in the blogosphere. These
days there are as mentioned above people averse to these technologies, but
also an increasing amount of people defending it. A few years ago there
would be a crowd of say 15 people attacking Java EE on one of the many
Spring vs Java EE wars at TheServerSide and maybe one lone person sticking
up for Java EE, while now on similar discussions at e.g. Reddit it's more
like halve of the community sticking up for Java EE. A similar thing holds
for JSF. Some 5 years ago many people were attacking JSF in discussions,
these days at least half of the community or more is backing JSF. In recent
discussions at places like Reddit again I'd say it's more like 1 or 2
people attacking JSF, with 4 or 5 defending it. It's quite a remarkable
difference.



> I say this honestly from the perspective of a long time supporter of the
> JSF ecosystem that would still likely never choose to use an action
> oriented framework myself. The practical reality in this case is that the
> voice of the community may be unwise to not take very seriously.
>

Absolutely!

When the community said that EJB was too complicated with its myriad of
required interfaces to implement, it was a good thing that the EG listened
and removed that requirement. When the community said that it's
unacceptable that JSF was so totally focussed on POST, it was a good that
that the EG made GET first class as well in JSF.

With the action-oriented effort it's a bit less clear IMHO. If you look at
the amount of posts spend on this topic already, then I think it's maybe
one of the most discussed topics ever since these kinds of discussions were
held publicly. Yet, I still haven't seen a really clear example of why the
action-oriented model is needed.

I'm absolutely not saying that the model is not needed, just that there
haven't been any examples posted about use cases that work well for
action-oriented and don't work well for MVC pull. Up until now it mostly
has been the case of a "we need action-oriented" and less about "with
action-oriented you can do [this and that] without needing to do [such and
so]", or "for this use case you need 100 lines of code with MVC pull and
only 20 lines of code with action-oriented", etc.

With EJB Entity Beans vs JPA for instance these examples were very clear. I
still hope to see some clear example for action-oriented.

Regards,
Arjan



>
> Please note that any views expressed here are my own and may not
> necessarily reflect the position of Oracle as a company.
>
>
> On 6/30/2014 10:55 AM, arjan tijms wrote:
>
> On Mon, Jun 30, 2014 at 4:25 PM, Sergey Beryozkin <sberyozkin_at_talend.com>
> wrote:
>
>> Hold on. I don't like you making the assumptions about me kind of
>> dismissing that the conversation about the intersection between JAX-RS and
>> JSF should take place. Neither I like you quoting single lines from my
>> earlier comments which loses the context.
>
>
> I'm sorry if I misquoted you. I just tried to keep the amounts of quoted
> text to a minimal.
>
>
>
>> Correct me if I'm wrong, but what I think you're saying here is that you
>>> don't care whether JSF will use JAX-RS as a foundation or not?
>>>
>>
>> You got it wrong. Let me clarify: I do not mind if Java EE developers
>> working with JAX-RS will start using JSF for the MVC work or not once the
>> JAX-RS MVC work is done, and presumably JSF becoming a de-facto 'consumer'
>> of JAX-RS MVC.
>
>
> Okay, that's indeed what I thought you were saying. Thanks for the
> clarification though ;)
>
>
>
>> That is not important for me. What is important for me is that I or other
>> users can work with JAX-RS MVC without having to depend on JSF
>
>
> So this is the part I guess we just have different opinions about. That
> doesn't matter of course, since if we all agreed with each other from the
> get-go there wouldn't be much discussion needed, would there? Let's agree
> that we disagree on this specific part.
>
>
>
>
> To sum up I propose to take the following into account:
>>>
>>> 1. Just "MVC" is too broad
>>> 2. Use "MVC push"/"action oriented" for what Spring MVC does
>>> 3. Use "MVC pull" for what JSF does
>>>
>>> Would that make things more clear?
>>>
>>
>> AFAIK we have not started a technical discussion yet and as such I'm not
>> sure why are we talking about these technical distinctions here
>>
>
> Well, the general discussion about this has started (as we're having
> this discussion now). I don't think it's necessary for the discussion to
> become deeply technical in order to make this subtle but important
> distinction.
>
> In much of the communication towards the user, e.g. via the Java EE 8
> survey, it's now communicated that Java EE 8 will either get "an MVC
> framework" or will get "an additional MVC framework". For existing Java EE
> users this may sound confusing. You can either interpret it as saying that
> JSF is thus not an MVC framework,or wonder why two of the same things are
> needed.
>
> The simple answer is that JSF IS an MVC framework too, but of a
> different kind, and that the new work is not about an identical thing to
> JSF but a different kind of MVC. Claiming MVC to be solely about the kind
> of MVC that Spring MVC does is IMHO not correct.
>
> Much of this confusion can be avoided by consistently talking about MVC
> push or action oriented. Even without going into the technical details I
> think we can agree that everything that's planned for JAX-RS MVC is about
> the push / action oriented variety.
>
> Regards,
> Arjan
>
>
>