Friday, March 23, 2012

Arun Gupta Java EE 6 and Spring Response


Disclaimer - I am a VMware employee and former WebLogic Server Product Manager at Oracle.  I know Arun personally and he is my friend.  The views expressed below are mine own and do not necessarily represent the views of my employer.  I tried to post this comment on Arun's blog https://blogs.oracle.com/arungupta/entry/why_java_ee_6_is but it was marked as spam.

Arun,

I'm really surprised to see you trolling Spring like this.  I realize that in your job as a Java EE evangelist that you want to advocate for products and frameworks that you are paid to advocate for, but I don't see the point in misrepresenting many of the attributes that people like about the Spring Framework.  I find it hard to believe that you actually believe your blog is a balanced and objective analysis.  I must say that I never hear the question why should I use Java EE 6 versus Spring and I think it's mostly a contrived question.  Evans Data surveys indicate that about 2/3 of Java developers are using or will use Spring http://www.vmware.com/company/news/releases/vmw-spring-momentum-3-14-12.html.  I guess if you're paid to travel around the world telling people not to use the most popular Java framework that you need to come up with reasons.  From what I can tell the people screaming the hardest not to use Spring are mostly authors employed by vendors that have a strong interest to lock-in their customers to full Java EE server instead of a framework that lets them (but not requires them!) to run on a Servlet or Java SE container.  In your publications list I see authors employed by vendors selling JBoss, Resin, WebSphere, Glassfish and WebLogic Server.  There have been lots of people that have a different point of view on this topic.  What I really don't understand as why someone promoting the Java ecosystem as their primary job wants to so obviously dissuade users from making up their own minds with an objective analysis of trade-offs, especially when it does not have to be a mutually exclusive choice and Spring is part of the Java community.  You know that many other people (in fact the vast majority of Java developers) do not share your view, yet you do not provide a single link to present an alternative perspective.  Are Spring advocates not part of the Java community in your view?

I find it very strange that you try and attach a "l"-word attribute to Spring when the major app server vendors have not even been shipping full Java EE 6 releases until so recently that almost no customers have the latest versions of WebLogic, WebSphere or JBoss installed.  Java EE 6 came out in December of 2009 which is 2+ years old, WebLogic Server 12c only started supporting a Java EE 6 compliant server 3 months ago!  WebSphere 8.0 was summer 2011 and JBoss EAP 6 is not even yet generally available.  You are advocating to use a framework with implementations that are so new that almost no customers of the major application servers have a compliant server in production.  Java EE 6 is not even available in the Oracle Public Cloud yet, so if Oracle can't even upgrade their containers that fast how can you expect all the customers to be up-to-date?  Spring 3.1, which had a lot of features for a minor release, started shipping in the Fall of 2011, almost 2 years after Java EE 6.  Plus as you probably are aware, it supports Java SE 5 and above, so customers are not required to be on the bleeding edge to use it.

You had some trouble finding a tutorial, and I am happy to help you with that since that should be very easy.  First go to http://www.springsource.org/ and you should click the big button that says "Get Started".  The next page has the links for both tutorials and sample code.  The tutorials page http://www.springsource.org/tutorials has both video and written tutorials.  If you want to create an MVC style application, there is one called "Green Beans: Getting Started With Spring MVC" by Colin Sampaleanu.  http://blog.springsource.com/2011/01/04/green-beans-getting-started-with-spring-mvc/  Someone helpfully published a maven archetype in the comments and with only two maven commands you can run the sample with Apache Tomcat, no separate application server installation is required!  http://code.google.com/p/flaveur/source/browse/trunk/m2/baremvc/README  If you also wanted to use persistence, you could consider a video like Spring Data JPA by Oliver Gierke http://www.youtube.com/watch?v=Yg2gCpBCkZw

The listing of jar files in the application is not complete if you don't list all the jar files inside Glassfish or WebLogic Server that implement Java EE 6.  The comparable Apache Tomcat list of jars is obviously much smaller.  You know that an application is a container + framework code + application code and you should represent the entire accurate picture.

As for jpetstore, that's not really an updated Spring example as you can see by the Spring version being only a SNAPSHOT before 3.0.0 was released.  It should probably be removed from the list of samples.  The error you saw in maven is from an issue with a JBoss repository.  When I removed the JBoss repository at the bottom of the pom.xml file and updated the Spring version from a SNAPSHOT to RELEASE then my maven build worked fine.  If you want to use a sample that is often highlighted by Spring advocates, then you could look at Spring Travel, but it is only based on Spring 3.0 and not yet taking advantage of all of the Spring 3.1 capabilities.  https://src.springframework.org/svn/spring-samples/travel/

Your comparison tables are also Apples and Oranges.  You can simply put Tomcat or Jetty in that comparison table and tc Server Standard edition is under 15MB http://repo.vmware.com/pub/rhel5/vfabric/5/x86_64/.  If you include tc Server, then you should use the Standard Edition recommended for production at 15MB as the Developer Edition includes Spring Insight, which would require including JRockit and JRockit Mission Control in the Java EE 6 column.  I suppose it doesn't help your case to point out that the production version of WebLogic Server 12c has a 1 Gigabyte generic zip installer and that the smaller developer versions are not suitable or supported in production.  I think you are also well aware of the fact that you could run Spring apps on embedded Tomcat 7 which is just a few megs.  I am simply amazed that you think tc Server is proprietary when it is based on Apache Tomcat, the reference implementation of the Servlet Specification, which is part of Java EE!  Why would you want to mislead people like that?  You know as well as I do that there are lots of WebLogic Server customers that are stuck using weblogic.ejb... packages in their code from previous versions of the specification.  The only thing even close to that might be Tomcat valves, but over 1/2 of all Java applications use Tomcat these days http://blog.newrelic.com/2012/01/10/infographic-oss-java-wins-in-the-cloud-era/, which is free and open source, so it's not locking anyone in.

VMware provides commercial support for both Tomcat and Spring as open source products and customers are not left on their own to manage jars.  VMware also provides commercial products like tc Server, which is Apache Tomcat with some additional management and configuration capabilities and other open source derived products in the vFabric family that represent the way most modern applications are built.  VMware customers are free to use open source with or without commercial support or they can choose a commercial product derived from open source, the choice is theirs.

While Java EE 6 was finalized over 2 years ago, Spring has moved on to simplify and provide solutions to lots of other problem domains with Spring Data applied to NoSQL (MongoDB, GemFire, Riak, Redis, Neo4j) and Big Data (Hadoop) http://www.springsource.org/spring-data.  Spring Social http://www.springsource.org/spring-social has already been available providing solutions to integrate with Twitter, Facebook, LinkedIn, TripIt and Github while JSR 357 is just getting started http://jcp.org/en/jsr/detail?id=357.   Developers want solutions to these problems now, not when RedHat, Oracle and IBM get around to it.

People may not realize that you and I are friends and I'm happy to see you are passionate about your job, but I can't let you misrepresent the facts without setting the record straight.  I don't understand the Java EE vendor mentality that encourages deriding Spring when so many developers use it effectively and like it.  Go ahead and cheer for your team, but to misrepresent what you see as the other team's case is disingenuous.  I personally find it very deflating to the Java community as a whole when you, Bill Burke and others write trolling articles.  Hopefully only the vendors are paying attention in these artificial and made-up scuffles while productive developers are actually getting work done.

Cheers,

James Bayer
@jambay

39 comments:

Loshmi said...

"Apache Tomcat, the reference implementation of the Servlet Specification"

This is simply not true for a while now. You should look it up before you post. Thanks

Loshmi said...
This comment has been removed by the author.
Antonio Goncalves said...

Disclaimer : I am self-employed, I'm not paid by any vendors, I've met Arun once, I'm part of the JCP (Java EE 6 and now Java EE 7)... and I tell my customers to move out of Spring framework when they can.

Why do I do that ? Well, exactly because of what I just said. First of all, I'm self-employed and not part of any vendors. So I don't have financial or career interests to advocate one technology over the other. My CV needs to be broad so I can find a contract. Because of that, I can't lock to any vendor-specific framework. If my CV says "Expert in LittleJoes Framework" I have less chances to find a job if it was written "Expert in LAMP". So even if Spring is widely used (James, could you find other references that the one published by VMware ?) I try to stick to non-vendor locking frameworks (but don't get me wrong, I've used Spring on my day to day life for a long time and will surely keep on doing so).

Second, I'm part of the JCP. As an individual, it's a real challenge : I read long specs, I read emails from expert members, I write proposals, debate, re-read specs... it's time consuming. And because I'm an individual, I do that on my spare time. Companies like Oracle or VMware can pay people 8 hours a day to be part of the JCP, I can't. But even like that, I try to exchange my experience to make the JCP and the JSRs a better place. If SpringSource would have done the same and put more energy in the JCP, Java EE would have been a better platform much earlier. Look at JBoss/RedHat who "gave" Hibernate to the JCP, called it JPA, and had to re-write Hibernate to implement JPA. Again, I'm not employed by RedHat but I think this company clearly made the choice of changing Java EE instead of fighting against. A standard needs to arrive later : innovation comes from frameworks such as Spring, Hibernate, Struts... and once they are mature and useful, we standardize them (that's why there is no NoSQL specification in the JCP, it's too early to standardize).

SpringSource could have played the game of the JCP, re-invent Java EE and today be the best Java EE implementation. They didn't. I don't know what is the implication of VMware on JSR 352 but that's typically something that I would have loved to have earlier. Spring Batch is a great stack, why didn't you gave your knowledge to the JCP earlier ? Why isn't VMware the lead of such spec ?

As you can see James, I didn't argue much on the technical side of Spring vs Java EE. Why ? Because the two models are getting closer and closer (actually I'm working on migrating a Spring application to a Java EE 6 one and it's incredible how little change I have to make).

Living in France, I drive on the right side, that's the standard (thank go). If there's a bump on the road, I go left. I tell my customers to use standards (eg. Java EE 6) and when there is something missing to use an external framework (eg. Spring). Not the opposite.

My 2 cents
Antonio

Antonio Goncalves said...

Disclaimer : I am self-employed, I'm not paid by any vendors, I've met Arun once, I'm part of the JCP (Java EE 6 and now Java EE 7)... and I tell my customers to move out of Spring framework when they can.

Why do I do that ? Well, exactly because of what I just said. First of all, I'm self-employed and not part of any vendors. So I don't have financial or career interests to advocate one technology over the other. My CV needs to be broad so I can find a contract. Because of that, I can't lock to any vendor-specific framework. If my CV says "Expert in LittleJoes Framework" I have less chances to find a job if it was written "Expert in LAMP". So even if Spring is widely used (James, could you find other references that the one published by VMware ?) I try to stick to non-vendor locking frameworks (but don't get me wrong, I've used Spring on my day to day life for a long time and will surely keep on doing so).

Second, I'm part of the JCP. As an individual, it's a real challenge : I read long specs, I read emails from expert members, I write proposals, debate, re-read specs... it's time consuming. And because I'm an individual, I do that on my spare time. Companies like Oracle or VMware can pay people 8 hours a day to be part of the JCP, I can't. But even like that, I try to exchange my experience to make the JCP and the JSRs a better place. If SpringSource would have done the same and put more energy in the JCP, Java EE would have been a better platform much earlier. Look at JBoss/RedHat who "gave" Hibernate to the JCP, called it JPA, and had to re-write Hibernate to implement JPA. Again, I'm not employed by RedHat but I think this company clearly made the choice of changing Java EE instead of fighting against. A standard needs to arrive later : innovation comes from frameworks such as Spring, Hibernate, Struts... and once they are mature and useful, we standardize them (that's why there is no NoSQL specification in the JCP, it's too early to standardize).

SpringSource could have played the game of the JCP, re-invent Java EE and today be the best Java EE implementation. They didn't. I don't know what is the implication of VMware on JSR 352 but that's typically something that I would have loved to have earlier. Spring Batch is a great stack, why didn't you gave your knowledge to the JCP earlier ? Why isn't VMware the lead of such spec ?

As you can see James, I didn't argue much on the technical side of Spring vs Java EE. Why ? Because the two models are getting closer and closer (actually I'm working on migrating a Spring application to a Java EE 6 one and it's incredible how little change I have to make).

Living in France, I drive on the right side, that's the standard (thank go). If there's a bump on the road, I go left. I tell my customers to use standards (eg. Java EE 6) and when there is something missing to use an external framework (eg. Spring). Not the opposite.

My 2 cents
Antonio

Reza Rahman said...

Bravo Antonio. As a fellow independent and JCP member, I agree with you 100%. I've had enough of SpringSource's self-aggrandizing antics for years and it's good to see things beginning to change.

Reza Rahman said...

BTW, just so that you are a bit better informed and not get too carried away with unfounded accusations that can get you in serious trouble, I started writing and speaking about Java EE long before I had anything to do with Caucho, I was never a Caucho employee and I am no longer working on any active Caucho projects. My primary source of income (say 99% of it) is doing day-to-day hard work on enterprise customer project - not writing, speaking or contributing to standards or open source projects like Resin, Arquillian or Seam. I do those things because I believe they are valuable to the community. I hope that's something you can understand...

Techblog for Portals/SOA said...

Ask any java developer building products or IT Applications or cool next gen stuff, Spring is everywhere...it works in any container/version after all its a true framework and simple to work with...from just another developer...not related to any standards body.But this is the practical truth on the ground today

Gabriel Axel said...
This comment has been removed by the author.
Gabriel Axel said...

Disclaimer: I too am not employed by any vendor. I contribute to Spring but I'm not VMware employee.

I never got the obsession with standardization. Sure some things should be standardized, for example the JVM, but why should things like a persistent framework or a web framework be standardized? How would I, as a developer, benefit from that? When has it become a sin to use third party libraries? If library X does the job I need, why would I care if I get as part of my container or download it from a website? As long as it works well and properly maintained and documented, it's all I need.

Basing technical decisions on how they affect my CV is wrong towards the product and the client. You should choose the solutions that results in the best combination of performance and maintainability, not the one that you think will boost your career.

From my experience, independent libraries progress much faster than JSRs. While it may takes years to get a "standard" solution, independent libraries can provide it in months, weeks, or even days, because their creators don't have to endlessly debate and come to a mutual agreement. That's why Spring is and probably will continue to be ahead of the JCP. The thing I don't understand most is that even "standard" solutions are not really standard. I had the unpleasant experience of migrating a JPA code between TopLink and Hibernate, do you really think all I had to do is replace a JAR and change one line of XML? I wish...

smdeeg said...

Disclaimer: I work with James at VMware, but I was never part of SpringSource and I don't work on any Spring projects.

Hey James. Nice post, but you did blow it on Tomcat being the Servlet reference. Although Servlet is essentially commoditized (well implemented broadly), so this nit doesn't really matter.

@Antonio, the thing I didn't get from you post is any reason why you would recommend not using Spring or why JavaEE is a better choice. Your CV needs breadth is all well and good, and you don't like that SpringSource doesn't participate in JCP ... fine, but why JavaEE? Does it do something that Spring doesn't do? The "it's a standard" assertion really isn't good enough. I've seen too many "standards" come and go leaving hardly a trace to accept that. And while there are good and useful pieces of JavaEE, heavy adoption still results in container lockin (same as it's always been). How many years do you suppose it will take before JPA is implemented consistently enough that you can trust its behavior on any JaveEE container?

@Reza, James is a very reasonable guy, so the agressive stance and snark is really unwarranted. As for self-aggrandizement, arrogance, agressive trash talking, from what I've been seeing, the JavaEE partisan community is really setting The Standard these days. I think they should create a JSR! :-P

Reza Rahman said...

Right, only reasonable people make statements tantamount to criminally liable defamation against anyone that disagrees with them instead of sticking to the technical point at hand.

It's really sad that you guys have been bad mouthing an entire community for years but can't take some of your own medicine...

Antonio Goncalves said...

@Gabriel @Smdeeg I've started working in IT... many years before Java (I know, getting old). It was a time we don't remember. It was a time where you were doing IBM or Oracle stuff. A time where you were working with no internet, nor forums, nor open discussions. It was a time where we were pretty much doing proprietary stuff. A Babel tower where people didn't undersdand each other's technoligy. These days are gone... really ?

Standards are not good nor bad, there standardise things, that's all (as I'm not saying that Java EE is good or bad, it just standardizes things). If it's a good standard for your application, take it (that's what Spring does with JDBC, JTA, JDBC or more recently JPA, Bean Validation, @Inject). If a standard is not appropriate, dump it (that's what Spring did with EJBs 2.x)... or change it. I did a lot of J2EE 1.x and one day a saw the light : Spring ! And few years later I looked at Java EE 5 and thought "this looks better than J2EE, what if I participate in creating something even better". That's how I got involved in the JCP with Java EE 6.

I see less and less differences in Spring vs Java EE component model. Technical mater are not an issue, they are even just fashion sometimes. What I'm saying is if Spring had given a bit more to the JCP, maybe we would have better standards. Because at the end of the day, call it EJB, Spring Bean ot whatever, what we need is a POJO that needs some services (transction, security, concurrency, singleton...) from a container (Tomcat, Web Profile, full Java EE...).

Today, I'm working on Java EE 7 and EJB 3.2. What I'm really proud of is that we managed to externalize Transactions so they are usable on anything, not just EJBs : POJO, Servlet, Web Service.... Yes, like the good old Spring @Transactional that has existed for many years. It will be standardising in 2013. A bit late isn't it ? A pitty SpringSource didn't helpe in getting it quicker.

So if I show you a meter, but that's more a 99 centimeters, or even if you use yards... it's not perfect, but we understand more or less each other. We can even find bridges from one to another. If you JPA code on Hibernate doesn't run 100% on EclipseLink, not a big deal. Just remember the very old days where you were migrating from DL1 to DB2. And if the TCK is not perfect... dump it... or help in improving it.

Reza Rahman said...

Of all the people Arun references only *three* are employees of vendors. Lincoln and Bill are employees of JBoss -- and they are very up-front about that. Rohit works for IBM and co-presented with me, but entirely on his own time and not with a single cent from IBM.

Here is the profile of the rest:

1. Kai Waehner - Consultant
2. David Heffelfinger - Consultant
3. Bert Ertman - Consultant
4. Paul Bakker - Consultant
5. Cameron McKenzie - Editor in Chief of TSS
6. Murat Yener - Consultant

And this is not counting the countless other passionate Java EE advocates like Antonio, Adam Bien, Werner, etc that have never earned a dime from a Java EE vendor for anything they say.

I guess it's easier to try to demonize and dismiss others than to face up to the fact that you are dealing with a true grass-roots movement that doesn't agree with you...

Unknown said...

Yes, I did make a mistake about the reference implementation of the Servlet specification. It was the case at one time. Regardless of what the reference implementation is today, the point is that Tomcat is the most commonly used Java web application container and certainly not a proprietary container as it is based on the servlet spec and not proprietary as Arun suggests.

Employees of Redhat, Oracle and IBM all have very public and aggressive arguments against Spring lately. Is that not true? I did not say everyone one the list was a Java EE vendor.

The aggressive tone and negative comments are not productive to the Java community at large of which we are all a part of. You can make a sub-community of Java EE folks if you want to and have a lot of Us versus Them arguments, but infighting for no reason is silly. Why are Java EE and Spring mutually exclusive? It is a contrived question that most developers are not asking. Best of luck to all of you and in the words of Cameron Purdy, Peace.

James

Reza Rahman said...

Here's a tip -- making personal attacks/character assassinations isn't exactly professional, peaceful, productive or positive either. Stick to technical points and leave the personal stuff out. Period.

No one from JBoss, Oracle or IBM said anything to top what you SpringSource guys have been saying for years now. In fact, if anything they've been more nice about it. No other vendor other than SpringSource has ever as consistent about downright nasty statements like "competing technology X is dead", "competing technology X is irrelevant", "community X is the gulag", etc, etc. What do expect now that the tables are turning?

Also, don't twist words:
* No one said Spring is not part of the Java EE community.
* No one said Spring and Java EE are mutually exclusive.

smdeeg said...

@Antonio, all "write once, debug everywhere" jokes aside, I think we can agree that Java has been heaven sent. Much of this is fighting amongst cousins wouldn't you say?

You talk about EJB 3.2 externalizing transactions like @Transactional. If it's released in 2013, given standard patterns that's 2 years for app servers to support it, then another 2 years for general adoption (anyone who uses .0 releases of app servers with new implementations of JavaEE deserves all the pain they get), you're looking at 2017 for general use. Yeah, I'd call that late to the party. JCP didn't need Spring to give them the project, the idea's out there ready for adoption by anyone, so I challenge the idea that involvement by Spring would have accelerated the process. I applaude you choice to work to develop standards from innovative technology, but as you say "innovation comes from frameworks", and the Spring team is focused on that. Imagine what sort of interesting things they will have available for use in the next 5 years.

@Reza: "criminally liable defamation" -- I love the passion, but come on. A bit over the top don't you think? In the world of the blogosphere James' post could almost be considered a warm, fuzzy hug. Arun's post was kinda sloppy (comparing old samples when new ones were readily available) and made improper comparisons, and he got called on it. The technical details were all laid out pretty clearly, along with a bit of passion. By saying James is a reasonable guy, I mean he's not prone to making "unfounded accusations" and therefore didn't need your warning (or what ever "serious trouble" was supposed to mean). Also, this is hardly a tast of our own medicine as the JavaEE partisan community has been hating on Spring for a long time. It's more like deja'vu all over again.

smdeeg said...

@Reza said:
Also, don't twist words:
* No one said Spring is not part of the Java EE community.
* No one said Spring and Java EE are mutually exclusive.


How about Bill Burke?
>[JavaEE] evolved, now its time for Spring to die.

Reza Rahman said...

I don't know about you, but I take any suggestion of unethical conduct/personal attacks very seriously, online or not. And I *never* make them unless I'm 100% sure about the facts. If you need a reminder of what bad behavior/legally culpable acts consists of, take a look here: http://en.wikipedia.org/wiki/Defamation. If you are in doubt, have a chat with your HR personnel, online communications coordinator or corporate counsel. I'm sure they'll be happy to explain it to you.

As to Bill's remarks, isn't it obvious it's a retort to SpringSource's persistent negative remarks about Java EE? And even he said Spring has been important to Java EE. That's far more gracious than remarks that have come out of SpringSource over the years. What's even more telling is that he's pretty much the only one to go that far. I would have a much more different opinion of SpringSource if that kind of attitude was more prevalent there. In fact, SpringSource's persistent negativity was one of the primary motivations for me to get involved in Java EE in the first place. From my standpoint in those early days it seemed like folks like Bill and Gavin defended Java EE and did what they could to improve a technology they did not control or own. In fact, they could have gone the opposite route and create utter chaos for enterprise developers. They earned my respect and admiration for it and inspired me to try to do the same the best I could.

Reza Rahman said...

BTW, I saw nothing wrong with Arun's analysis, especially considering his obvious lack of familiarity with Spring (to which I am sure he will readily admit). If he is culpable of anything it is that his analysis lacked depth.

If you really want to try and spar with me on those topics here, I'll be happy to give you your money's worth. I've been staying away from it because:

1. They've already been discussed to death.
2. Instead of repeating myself, I plan to address the remaining anti-Java EE FUD with an article series that will hopefully be well read and discussed (thankfully I finally have some bandwidth for that).

jambay said...

Reza, I'm happy you're passionate about what you do. Good for you and those that are fortunate to benefit from your passion.

If you were offended that I was unable to know that you have stopped working for Caucho, then you should correct the confusing Caucho website instead of trying to intimidate me with links to Wikipedia and using words like "criminally liable". You have a Caucho email address, they list you as a Software Engineer. Do you see how someone can get that impression without nefarious intent? That's a rhetorical question.

http://www.caucho.com/about/

"reza@caucho.com
Reza Rahman is a Software Engineer and Technology Outreach Advocate for Caucho Technology"

Rohit's presentation is an IBM ppt template with an IBM disclaimer. It sure doesn't give the appearance that he's operating independently from IBM.
http://www.slideshare.net/kelapure/java-e-evsspringshootout

What is the issue with stipulating that the major Java EE vendors are deliberately trying to persuade Java developers not to use Spring? Is that not what is happening? It seems like such a non-controversial point.

You really don't have to bother with a reply to my rhetorical questions because no developers care about this by the way and we both know that. You and I going back and forth in the bottom of blog comments is just a waste of time for everybody and isn't productive.

Cheers, James

Antonio Goncalves said...

@Smdeeg when you say "I challenge the idea that involvement by Spring would have accelerated the process" it's like saying "I challenge the idea that involvement of brain cells accelerate the process". The more clever people around the table there is, the fastest and the best it goes. We all have differente backgrounds and the JCP is the perfect place to exchange ideas.

BTW I'm sure you remember that SpringSource was on the Expert Committee. That is "part of the 16 companies around the world that make the future of the Java platform". If the JCP was that useless, well why SpringSource got involved in the EC ?

Raziel said...

"You talk about EJB 3.2 externalizing transactions like @Transactional. If it's released in 2013, given standard patterns that's 2 years for app servers to support it, then another 2 years for general adoption (anyone who uses .0 releases of app servers with new implementations of JavaEE deserves all the pain they get), you're looking at 2017 for general use."

the JSR 330 was released in the end of 2009 and one year later the internet was infested with "should i migrate from Spring to JavaEE"

Reza Rahman said...

You are correct - leaving aside the legality of your published statements, if you don't see the gross immorality in frivolously making nasty accusations against people you don't agree with, there is no point discussing this further.

I'm going to * politely* ask you one last time to leave personal stuff alone and stick to the technology -- at least in my case "now that you know better". Other than that, I see little on your blog that's worth commenting on.

jambay said...

Reza, please quote exactly the nasty comments I made so I can learn how to be civil. I read through them again and I'm missing it. It'd be especially helpful to me if you highlight the criminal stuff.

Arun my friend and so are lots of other former Oracle colleagues. I have yet to hear from a single person I know from my many years at IBM, BEA, or Oracle that thinks anything I wrote crossed the line of being civil. I don't know you personally, maybe we'll meet at a conference someday and you'll find that intent and tone you read on a website does not match the intent and tone you would hear if we were talking.

Cheers, James

Reza Rahman said...

I'll admit I haven't worked for hot-shot commercial vendors like IBM, Oracle or BEA. Maybe normal standards of professionalism don't apply to you big guys? Where I work, accusing someone of being in the pocket of a commercial vendor to publish deliberately innacurate stuff that furthers their interests is a pretty nasty allegation, however you'd like to try to spin it.

Then again, I don't expect you to be courageous enough to actually admit that of your own free will...

Reza Rahman said...

BTW, here is another handy little link to Wikipedia I think you should read: http://en.wikipedia.org/wiki/Ad_hominem. It refers to "Ad Hominem" (basically latin for personal attack) -- a common logical fallacy/tactic employed in the highly savory and ethical field of politics that you seem to be fond of. Hint: it's usually not seen as a good thing in technical arenas where logic and rationality dictate.

jambay said...

Reza, I didn't think you could quote anything I said as a personal attack. The challenge is still open though if you want to give it a try.

I said the Java EE vendors have an interest in seeing Spring use decline. I mentioned my friend Arun by name and a passing reference to Bill Burke.

You are reading stuff into my post that simply isn't there.

Peace, James

Reza Rahman said...

You obviously still don't really understand what Ad Hominem actually means. There can be no arguing that what you said meets the definition of Ad Hominem.

Aside from the large logical loopholes in your post, as to the defamation aspect of this, where you took a serious wrong turn is trying to speculate others motive for doing anything (such as suggesting that Arun's or my analysis is driven by unethical/monetary/career interests as opposed to being an honest, bona-fide effort). Unless you have specific proof, there is no way you can know that -- leaving your unnecessary/unproductive remarks squarely in realm of slander or at best inappropriate speculation.

This sort of thing happens all too often with SpringSource employees but this is the first time with you in particular. Kindly don't make the mistake of taking this as an idle warning. I value my personal reputation perhaps more than you realize and will put things to the legal litmus test if I deem it necessary.

jambay said...

For the record: Reza still fails the challenge to quote anything I wrote.

Jeffrey A. West said...

This has been an entertaining exchange for sure. See my full response here: http://westerlybytes.blogspot.com/2012/03/arun-gupta-java-ee6-spring-and-james.html

There is value in developing standards and there is value in breaking away from the standard in the vein of innovation to create something new. Our society definitely rewards individuals who take this approach. Does SpringSource innovate and help advance the Java platform? Absolutely! Innovation helps drive the standards forward and the standard provides a base for innovation. I think we can all assume that neither Java EE nor Spring will die any time soon and that we will never be without defined standards.

One thing I find interesting in the ‘competition’ between Java EE and Spring is that since the JCP is public, SpringSource is able to view the process and take their own tack on how to implement the JSR’s included in the Java EE spec and do so before the community has finalized a new version of the spec. Rightfully so, larger corporations like IBM and Oracle would not begin working on implementing the spec before it was final. How long is ‘acceptable’ for vendors to start releasing implementations of the new spec, anyway? It is not just the spec that they have to implement - it is implementing the spec in conjunction with value-added features, backwards compatibility and testing cycles. SpringSource has the flexibility to watch the process and deliver their proprietary interpretation of things very soon after an Java EE spec is released without being encumbered by any other agenda or process – all while putting their own spin on how things should be instead of influencing the JCP and the Java EE Standard for the greater good.

... more on my blog post (which was too big for the comment section on this one.

Cameron said...

James -

I don't think that the application server vendors are interested in seeing Spring use decline. (I don't think that way at any rate, and I work for an application server vendor. In fact, I work for the one you used to work for -- and let me know if you want to come back! ;-)

As you are no doubt aware, there is some frustration with the long-running Spring diatribe about Java EE, which (in the beginning, i.e. the old "J2EE") was well-deserved.

The thing is that Java EE got better. It advanced. It moved on. The Spring message about Java EE hasn't changed to reflect the times.

So instead of thinking about Java EE replacing Spring, I think about how the basic functionality (like CDI) of Spring that used to be missing from application servers is now there (and portable, thanks to Java EE!)

None of this takes away from Spring. I'd guess that quite a few of our customers are using Spring in at least some of their applications, and I'm certain in many of those cases that it was a good architectural and engineering choice.

I think that today, the decision would be different for a good percentage of those applications, because Spring does not provide additional benefit to those applications. Since it does not provide additional benefit, new applications can be built without it, eliminating a large and complex piece of technology.

There are many parts of Spring that are not yet available as standards, so in those areas, Spring continues to provide a valuable service.

I think that as long as Spring attempts to hold on to a dated raison d'etre that no longer makes sense (given the advances in the rest of the industry), instead of advancing to new areas, there will be the natural type of friction and conflict that arises when two people try to sit on the same seat in Musical Chairs.

It happened to J2EE ten years ago, at the hands of Spring. Now the roles are switched.

Peace,

Cameron Purdy | Oracle

p.s. I am posting my own opinions as an individual, and not as a spokesperson.

emi_me said...

hey look for this programming website where you can download codes, share or have fun with the countcode community: www.countcode.com

Lisa said...

Sheer professionalism and dedication! New to programming and Good idea to post your whole submission!Sample CV

dawnfade said...

my two cents

I go for Spring because of Roo, Grails and Tomcat

Roo is amazing and very impressive today, and saves a lot of work in midsize projects, encouraging best-practices, because of scaffolding and standardization of code, taking benefits to every organization, go for it, learn it, and you'll see how good it is, and how good it will be in the future for large projects

I'm an ex Rails developer, and I like agile development, Java has been over-bloated/over-engineered and also inefficient (from a developer point of view) for too many years, and Grails is the answer, go for it, learn it, and go for a REAL innovation of the java eco-system
and if your banks don't like it change customers, go for other banks, otherwise stay in your daily work with ejb 1/2 or cobol/db2 until you are ready to kill yourself

and finally, Tomcat. In a 10000 eur project, 3000 eur/year (30%) go for an application server hosting, it's ridicolous. With Tomcat cost is 1000 eur (10%)

sorry for my english, but here it's clear what I mean

Eric Weimer said...

I'd love to jump on the Spring replacement bandwagon, however I have yet to see a single compelling argument.

All is see if misinformation and hand waving. Can someone provide a rational argument based on facts?

What are the productivity and maintainability advantages? How do you justify losing the additional features supported by Spring? What is the real world value of the additional (ejb3) features and how do they allow developers to be more productive and write more maintainable code?

I'd be happy to change my opinion, but up to now I just have not seen a compelling argument.

Unknown said...

Girls, girls you are all pretty ;)

I would like to remind everyone if we all remain customer focused - meaning developer headaches removed, simplify difficult maintenance or changes to applications and continue to move forward this will allow all boats to rise.

Remember the enemy here is the .Net crowd. I don't have the insight into why Rod Johnson et. el. doesn't contribute to the JCP - perhaps that can explained by the fact that a few years ago the JCP process really slowed down due to the same type of infighting within "our" Java community and some poor leadership within Sun. When I was working with EJB 2.x and hating it - I can totally understand the decisions made by Interface21 at the the time. But now is the time to "merge the baselines". Please remember that together we are stronger, divided we are vulnerable.

I'm old enough enough to remember undocumented APIs and grey APIs from Mircosoft and how the lack of competition in the software space was harmful to prices and innovation. If we all contribute our best ideas and then provide the best option/architectures to the community at large and make the JCP operate at a high level then all boats will rise.

cheers,
john archer
(former NetD, SSSW, BEA and now current Oracle lackey)

InnomaxMediaLLP said...

I had fun reading this post. Very informative as well. I didn’t know the procedure can be easy. your blog is very nice.Thanks for posting this important blog on your website.
Web developer

ZJ@SLC said...

It seems to me that @Antonio and @Reza are biased. They are in JCP, which is too slow and too political. Before blaming the open source community such as SpringSource not going into JCP or leading some JSRs, please be aware they do not have this responsibility to save JCP. Apache foundation joined, then fed up and left. Enough said.

@Reza started attack , instead of going into technical points. Yet he claims this:" I've had enough of SpringSource's self-aggrandizing antics for years and it's good to see things beginning to change. " This is typical JCP behavior. I think this whole discussion started from Arun's article, which is exactly: self-aggrandizing antics". Very sad to see this kind of discussion.

It seems to me SpringSource always starts new projects, lead the community, then JCP follows. It is the best for the community: community driven innovation, good for the community, not the big boys. Of course they will hate SPring Source and just like ARUN GUPTA, I just find it is too surprising for him wrote such article.

jos ken said...

Faribault Web Design to see if all these new things from version like EE6 apply for website.