Published: Mar 28 2013 / 09:55
Antonio's PetStore modernization is definitely a good thing and I am very glad he incorporated NoSQL into it. However, it feels like a few of the remarks in this article bears some clarification. First, Java EE is far more than an "Oracle blessed API". It is an open technical standard with a vibrant community. Unlike Spring, vendor-neutral APIs like CDI have multiple independent implementations that one can freely choose between. Second, it is absolutely valid to use native NoSQL APIs. If an abstraction is required, the best one to use in the Java EE world is something like EclipseLink NoSQL, Hibernate OGM and many others that offer a JPA based façade. If interested, you can read more about these approaches here: https://blogs.oracle.com/reza/entry/devnexus_2013_trip_report. Reza Rahman | Java EE/GlassFish Evangelist All views voiced are my own, not necessarily Oracle's.
He didn't incorporate NoSQL into it, we did. "open technical standard" is a very very debatable thing. The JCP is not a normal "standards board" and aspects of its policy and procedure violate At any time Oracle may violate its agreements and impose Field of Use restrictions like it did for the Java CTK/TCK. CTK/TCKs are under often licensed under NDA and with pricing that only Oracle will decide whether it is fair/not fair and discriminatory or not discriminatory. There is much not to like about the JCP under the "open" technical standard with vibrant community are governed. In general Spring won the last programming model war and there is a brain divide between the cloud/nosql crowd that leads organizations with larger legacy systems that are looking to modernize trying to find solutions like the article displays. The startups and more innovative (and often times "woo shiny" crowd tend to aim towards newer frameworks and often newer languages. ORM approaches to NoSQL impose an often invalid abstractions on top of NoSQL. Essentially, you don't necessarily need an Object Relational Mapping to a non-relational database.. Ultimately, a different abstraction is required that allows things that don't fit the RDBMS model and allows you to unify your data model a little. SpringData is one possibility.
Glad you already conceded that your views on the JCP are debatable. No doubt the JCP has it's flaws, but I think it's an easy case to make that it is far more vendor-neutral than things like Spring. For some details on the community aspects of the JCP as it pertains to Java EE in particular, take a look here: https://blogs.oracle.com/theaquarium/entry/java_ee_transparent_enough . Note also that unlike the Java SE TCK, the Java EE TCK has long been freely granted to Geronimo without restrictions. The statement that "Spring won the last programming model war" is pretty debatable as well. As an example, take a look at this very contrary view: http://www.slideshare.net/ertmanb/javaone-2011-migrating-spring-applications-to-java-ee-6 . Your view on the validity of a JPA façade to NoSQL hinges upon the assumption that the concepts in JPA are specific to relational databases. In fact, the solutions I outlined make the point that the idea of expressing domain models via annotations and having a standard CRUD API maps to NoSQL quite well. You also seem to be missing the fact that these solutions extend JPA in a way that suits NoSQL solutions, not to mention that they also allow for polyglot persistence in a uniform manner. Reza Rahman | Java EE/GlassFish Evangelist All views voiced are my own, not necessarily Oracle's.
BTW, how about either approving my comment on your article on InfoWorld or pointing to this discussion on JavaLobby as a further resource (an approach I would prefer since JavaLobby has a long track record of journalistic neutrality :-)). Reza Rahman | Java EE/GlassFish Evangelist. All views voiced are my own, not necessarily Oracle's.
Dude, you're an evangelist for Oracle. I stick with H.L. Mencken on this “Never argue with a man whose job depends on not being convinced." or Upton Sinclair "It is difficult to get a man to understand something when his salary depends upon his not understanding it"... I'm fully aware of JPA and was there for its birth. It is possible that JPA will evolve enough to support NoSQL properly. It will be quite different than the standardized version today. I have absolutely 0 control over whether your comment makes it through spam moderation either here or there. Most likely you have not validated your email address or other thing with Disqus (which you will also find numerous disparaging comments from me about Disqus including that I find it Disqusting). Half the time it moderates my comments out. I am however unequivocally opposed to journalistic neutrality. You can find out more about why it is a bad idea here: http://www.nieman.harvard.edu/reports/article/102544/Journalists-Must-Maintain-an-Independence-From-Those-They-Cover.aspx .. . I am also a technology worker who happens to have a column which means that I have a great more freedom than if it is a feature article. PR Newswire is a better place for Journalistic Neutrality :-)
You clearly don't know much about me and it's a shame you've decided to take an ad hominem fallacy approach to the discussion. I've held my opinions long before I had anything to do with Oracle through years of working with Java EE and JCP as an independent consultant (that's very easy to demonstrate if you wish to continue to pursue the tactic of - "he can't be trusted, he works for Oracle"). The JPA based solutions I mentioned use JPA as a basis, they are not "the standardized version today". Reza Rahman | Java EE/GlassFish Evangelist. All views voiced are my own, not necessarily Oracle's.
...and you clearly don't know who I am (given your attempt to educate me on the JCP and JavaEE)...what is your point? Why would I have researched some random spokesperson from Oracle who started posting counterpoints whenever I mention JavaEE? I didn't make an ad hominem argument. I refused to argue with you about the JCP at all! Imagine that I were to make such a compelling argument that you were like "you're right, the JCP can't produce open standards so long as a single vendor has veto power and the TCK isn't royalty free and non-discriminatory and everything can be open source licensed with specific patent non-assertion promises"... You would not have a job for very long after that. I would then feel guilty for convincing you! However, more likely, even the most compelling arguments would not convince you because you're totally aware of that as well. So why bother arguing with you? At best case I feel bad and at worst case I waste my time... I'd do it for the purpose of documenting the argument but it is well documented so what purpose would I have to argue with you? Right...so which "not JavaEE" solution to use to connect to the NoSQL database was specifically punted in the article/code sample. We probably would have used SpringData as I imagine it looks something like whatever the final "standard" will be for CDI, but IIRC the support wasn't done for Couchbase 2.0 when we started (and only in beta by the time we were done) and we wanted to stay as "pure" JavaEE as possible. We'll probably do a Spring, Play, etc version later...
It's really sad that you continue the ad hominem tactics. I think it's rather telling. The reality is that I could choose to simply remain silent instead of stating what I have known to be true for a long time. While it's true Sun/Oracle has veto power, it's never been used to my knowledge. On the contrary, my own experience in the JCP is first hand proof that the folks in the JCP have a true interest in community and collaboration. I would not have chosen to join Oracle in the first place otherwise and neither would I choose to stay on (and I am not the only one - dig into the Java EE/JCP community engagement info I've already posted). The other reality you seem to be missing is that I can indeed acknowledge legitimate problems personally and work to solve them in my role (in case it's not obvious, I find your critiques unsubstantive to pragmatic openness and compatibility especially given your apparent ardent espousal of something like Spring). Take a look at the link I've already posted to see what you've missed in terms of JPA NoSQL facades and using NoSQL native APIs via CDI. Reza Rahman | Java EE/GlassFish Evangelist. All views voiced are my own, not necessarily Oracle's.
Not arguing with you (because that is pointless, that isn't an ad hominem attack because I refuse to argue) but providing correction: * I did not advocate Spring exactly, I advocated SpringData. Where I have shown favoritism to Spring it is that I have noted that it is the programming model market leader. Spring is built on and in many cases requires at least part of JavaEE SPIs and APIs. * In other articles I've also talked about Play. I will say that I lack the arrogance to believe that Oracle will resolve my issues if it didn't resolve Apache's or Google's or anyone else's issues with the JCP. Neither you or I are high enough on the food chain to instigate that kind of a change :-)
OK, let's agree to disagree. It is indeed true that I may not have the actual power to decide on some matters, but getting substantive community feedback to Oracle is a central part of my responsibilities and that is very far from merely lip service. I can personally attest to the fact that there have been many instances where the JCP has "resolved my issues" and many others from the community. I would suggest attempting to actually work with the JCP instead of taking for granted what organizations that might be pushing their own agendas have to say (yes, I checked - it seems you have had no actual JCP involvement at least in the near past). Reza Rahman | Java EE/GlassFish Evangelist. All views voiced are my own, not necessarily Oracle's.
Google "Andrew C. Oliver JBoss" .... But it is true that I avoid long boring meetings email lists, even ones that I schedule ;-)
Yep, I already did but thanks :-). I would suggest making your background more salient to highlight what the sources of your personal biases might be. We all know that unlike todays Red Hat role in the JCP, early JBoss developers had their issues with Sun (and I suppose now by extension Oracle). Reza Rahman | Java EE/GlassFish Evangelist. All views voiced are my own, not necessarily Oracle's.
Like in my bio on InfoWorld or any of the various times I've mentioned it in my column? You do realize that these kind of back and forths always make both participants look silly to those uninvolved.
I'm not sure about you, but when I choose to write inflammatory material, I usually try to make it clear that I am by no means a dispassionate third party :-). For example, your involvement with JBoss/Apache and your obvious espousal of open source (apparently over standards) are relevant facts. Especially as you accuse others for offering their own opinions :-). Reza Rahman | Java EE/GlassFish Evangelist All views voiced are my own, not necessarily Oracle's.
Correction: I also support open standards as well as open source. (the part you disagree with is whether the JCP produces them) So that is actually an ad hominem attack! (as opposed to refusing to argue with someone because they are a corporate spokesperson) :-)
Yep - just giving you a taste of your own medicine :-). Reza Rahman | Java EE/GlassFish Evangelist All views voiced are my own, not necessarily Oracle's.
I'm bored now.
For those interested, this individual's stated position - "I flatly prefer Open Source to 'vendor neutral' in nearly all cases". Make your own calls as to what the biases here are :-). Reza Rahman | Java EE/GlassFish Evangelist. All views voiced are my own, not necessarily Oracle's.
BTW, for those interested, it is quite curious that comments I've posted on InfoWorld pointing to this thread somehow does not seem to go through InfoWorld's moderation filter, but the author's show up promptly :-).
Oh it isn't curious at all. Mine were moderated and I emailed the editor to get them pushed through :-)
google "andrew c. oliver disqus" to learn about my all powerful control over it ;-)
It'll be telling to see if mine show up at all :-).
Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.