Java EE 5 Development Waiting on Vendors
twofish writes "Java EE 5 was a major update and most of the major application server vendors
do not yet have compliant versions released. Dr.
Dobb's reports that this is delaying most solution providers from developing
products based on it, as their customers are not ready for them. However there
is some significant movement among the big players. Among the major vendors,
Sun has released support, WebLogic is close with JBoss following soon after.
Oracle has not announced a road map and IBM is lagging significantly behind,
with full support not due until 2008."
Companies in the market for significant numbers of Java EE application servers and their attendant support contracts are rarely in a hurry to adopt the newest and latest technologies. Companies I work with usually lag at least a major revision - sometimes two - behind the bleeding edge.
--- These are not words: wierd, genious, rediculous
SAP released a Java EE 5 compatible application server a few weeks ago.
Why switch? If you need a feature from 1.5 or 1.6 then upgrade. Many server side applications of Java have absolutely no reason to upgrade. Most companies will be using 1.4 for many years.
There are significant upgrades on the rich client side for 1.5 and 1.6 especially in the Look and Feel area. My 1.6 apps in GTK look just like a native app, thus I use 1.6 for on the client side. I still however use 1.4 on the server side since there are no performance benefits for my applications. Nice thing about java is everything is byte code compatible downstream. I am sure there are providers out there who still use 1.3 on the server side.
Are you intolerant of intolerant people?
The architecture of Java 5 EE is unnecessarily complex. But that seems to be a trend with object-oriented development, Java-style. While other OO languages like Smalltalk and Ruby support simplistic, yet extremely powerful, development, Java just burdens the developer. In many cases, it goes overboard with design patterns and object hierarchies.
While object oriented techniques often can make large-scale development far more manageable, Java almost goes out of its way to make it difficult. I think part of the problem is the Java community mindset. It's almost as if kudos are given to those who can make their class framework as complex as possible, while a framework 1/10th of the size and complexity would be more than sufficient.
True object oriented development is about not writing code. The fewer lines of code, the fewer bugs. I hope that someday the Java crowd realizes this.
I built a EJB3 set of services along with working with another group who built JSF/Seam pages (interface) and using EJB3 stateful session beans and we deployed it all on JBoss using JDK1.5.0_06. In fact we used the J2EE 1.5 - granted we had to "spoof" Eclipse/MyEclipse into using the J2EE 1.5 jars and capabilities. But JBoss worked just fine with it all. This was a company internal application but it worked just fine. We used JBoss 4.0.4 GA Patch 1. I love the JDK/J2EE 1.5 stuff. Wish my current company would move from 1.4.2 to the 1.5.
The Truth is a Virus!!!
Then there is Oracle...gads..when Microsoft finally gets SQLServer up to speed (and they will...they have a 20 year history of turning crap into gold)...Oracle is going to be standing out in the weeds wondering what the hell happened
What exactly does MS SQL Server and Oracle's RDBMS have to do with J2EE 5 and Oracle's Application server? You may or may not be right about SQL Server eventually supplanting Oracle as the big name RDBMS, but regardless, that's not what's being discussed here. The application server is completely separate from the DB server.
but having to trust IBM and Oracle to keep up is a major problem, without them showing REAL plans: I am left with Sun driving the bus ?
Hardly; JBoss and BEA (producers of WebLogic) have already released compliant servers. Given that I've only heard bad things about WebSphere (or indeed much of IBM's technology stack), I'm really not too concerned.
well we all know what can happen when you let geeks (and I am one) run free, then don't execute on what they make
What tends to happen in my experience is that they get it more or less good enough for their own use, then move on to the next thing that captures their imagination. That's all well and good, but someone needs to put in the remaining, tedious 80% of the effort to do all the boring tidying up, polishing, documentation, possibly accreditation, etc.
It's official. Most of you are morons.
I used to be very much into J2EE (even wrote a book on it), and it is great to see the platform evolve as the Java language evolves.
:-)
That said, I have "moved down the food chain", starting to favor just running Tomcat+custom tag libs+JSPs+persitence. I used to mostly use Hibernate, then simplified to using Prevaler. In the last year or two, I have favored Rails for small quick web apps.
J2EE is great for large scale projects, but for most web apps and portals there are easier to use solutions. I have even gone back to using Common Lisp for web apps and web services in the last year (that is "moving back up the food chain"
Sun managed to put together an impressive update IMO, it introduces several new improvements which can make the life of the Java programmer a lot easier. However, having said that, I really fail to understand why so many people (seemingly new to Java) fully seem to rely on whatever the language has to offer. I've seen this happening in IRC channels and Usenet groups several times now; rather than quickly write up a method for their problem(s) themselves they'd spend days searching for an out-of-the-box method which does whatever it is they need.
Even worse; when such a method turns out not to exist (yet) some will even go as far as claiming that "Java doesn't do xxx". It is IMO the major downside to adding a lot of new features which can make life easier on the programmer. DO note that I'm not claiming this to be a bad thing, on the contrary, but I can't help wonder if the "dumbing down" in some parts don't risk breeding lazyness and/or perhaps in some specific parts plain out incompetence.
I guess you'll see these kind of developments happening everywhere, but it simply bothers me every now and then. All major Java IDE's allow you to easily build some form of "toolbox project" which can then be used on your other projects. It seems as if very few of the beginning Java programmers actually use those features.
My old team at Sun used to port everything from soup to nuts to Solaris, Linux and later versions of middleware, so that sounds like an opportunity for some fixed-price ports (;-))
--dave
davecb@spamcop.net
I.e., if it ain't broke, don't fix it.
007: "Who are you?"
Pussy: "My name is Pussy Galore."
007: "I must be dreaming..."
Yeah. It's only the largest development API in the world.
... )
(Before answering, think Java ME and cellphones, except if you're american - then you're just several years behind in that area
Uh, no. Hardly anyone writes C anymore except for low-level systems stuff and embedded systems, which is pretty much a niche. But you are just some stupid kid, so why am I wasting my time.
Yes you are right, Java is not popular at all. In fact I am always amazed at the way there are more adverts for Java jobs than just about any other skill (usually number 1 sometimes number 2) when hardly anyone uses it. I guess the companies just like paying for adverts for the fun of it.
I remember when Weblogic got support for EJB 2.0 (I think; it was a while ago now). They were much more prompt about that. They had it implemented and in production use before the standard was even done getting major changes. When we switched (for cost reasons) to JBoss, almost all of the porting effort was in porting from the intermediate version of the standard that Weblogic had implemented to the actual released version.
Would you ask it to bring me a beer and maybe some nachos, please?
It's true I tell you, feller at work's next door neighbour read it in the paper.
C is a language, not an API
I never *SAID* that C is an API. Where did I say that? Tool.
What exactly does MS SQL Server and Oracle's RDBMS have to do with J2EE 5 and Oracle's Application server? You may or may not be right about SQL Server eventually supplanting Oracle as the big name RDBMS, but regardless, that's not what's being discussed here. The application server is completely separate from the DB server.
... I just see the RDBMS and J2EE5 as having a conection in the eyes of the "CTO" types, and that if Oracle doesn't come along they are at (even more) risk of Microsoft moving in on both fronts....I may have skewed the topic a bit here....again pardon my skew.
You are absoultly right. Please pardon my mixing
Hardly; JBoss and BEA (producers of WebLogic) have already released compliant servers. Given that I've only heard bad things about WebSphere (or indeed much of IBM's technology stack), I'm really not too concerned.
My point here is that I don't see JBoss and BEA being able to keep Sun on track...by this I am again mostly speaking of the need for the JBoss, BEA, Oracle, Sun and IBM keeping on some common track. MS will divide and kill...maybe I'm just looking ahead too far.
What tends to happen in my experience is that they get it more or less good enough for their own use, then move on to the next thing that captures their imagination. That's all well and good, but someone needs to put in the remaining, tedious 80% of the effort to do all the boring tidying up, polishing, documentation, possibly accreditation, etc.
You have an excellent definition of "geek" here...I was using the term as it applies to Sun as a company..They geek out and without the other players keeping them on track; I just don't see who has the geek power and geek control to replace them......I'm probably just looking too far down the wrong line here again.
Your comments have been well taken...I'm hip...Thanks.
Hardly anyone writes C anymore except for low-level systems stuff and embedded systems, which is pretty much a niche.
Yeah, right. Mobile phones, handhelds, washmaschines, ATMs, fridges, TVs, DVD players, sat receivers, MP3 players, gaming consoles and automobiles (all programmes in C) are niche-products, after all.
GET A CLUE, YOU FUCKING ASSHAT!
Lots of errors in that list. Let me guess - you don't actually work with software development.
No way. Just learn to edit the goddamn XML. It's not that hard.
-- ac at home
Have you only ever used Java?
I find that when somebody advocates the use of Java, it's because Java is basically the only language they know. They're not aware of how easy data structures are to create and manipulate in languages like Common Lisp, Haskell, OCaml, SML, Python, Ruby, and Smalltalk.
Take the Smalltalk collection classes. They're a work of art, and put the Java Collections classes to shame. The homepage of the Jaggregate project, which offers Smalltalk-inspired collection classes for Java, shows very well just how fucked up the JCF is.
Plans for you:
1. Shut up.
2. Be kicked in the nose.
3. Sit on it and rotate.
This has been the trend for years. Sun/JCP releases a new version of a spec (or just a new spec), implements the reference version, and then the companies that actually have customers with performance/scalability concerns take the necessary amount of time to implement a stable & user friendly version of it. If you're not used to this pattern by now, welcome to J2EE!
"We see two types of customers right now, and the majority type is telling us, 'You're shipping things to us so quickly and comprehensively that we're having a hard time consuming it," said Heid.
Uh, yeah. And all my girls out there say "Anonymous Coward, you bang us so good we never want to stray, in fact we'll get jiggy with one another so you can consume all of us"
I do work with eCoupons.com (big $avings, etc), and we're stuck using J2SE for all of our stuff, just because we need things like generics etc. No, don't worry it's not actually a server app, it's more number/text crunching (finding y'all good deals, etc), but still it's a real pain.
:)
Here's hoping the venders get EE 5 out RSN
Instead of waiting for big corps like IBM, Oracle, and Weblogic to step up, my suggestion is to simply not use their servers. I honestly don't know a "rational" reason for using any of them. It's amusing that companies will use tons of open source software but not if it's the app server. I could understand it if they were actually better but they aren't. In fact, they flat out suck.
Any man who afflicts the human race with ideas must be prepared to see them misunderstood. -- H. L. Mencken
Honestly, when installing a vendor app, you have to install the corresponding jre leading to tons of different jre versions installed on the system (that takes much place and slow down install process. Trust me, when you want to deploy new version of Matlab across your network, you're happy to remove the bloated bundled java! Now I through every application that do no work with latest java 1.5.0_09. Netbackup: => replaced by bacula and backuppc: works fine (backuppc is killer app BTW) Matlab: repacakged to rpm killing builded java. Matlab 2006b works fine (even better) using java 1.5.0_09 :-) I keep it
This is a seriously important debate.. But there is no one right answer.
On the one hand, you have the perl paragidm - keep absolutely everything in one file.. code, docs, API, meta-information.. In perl you had __DATA__ and __POD__ sections of the file for meta-data and documentation.. In Java you've almost always had javadocs, then xdoclets, and now annotations.
The advantage of this is the idea that code-changes almost always necessitates doc changes or meta-data changes.. The further away those items are from the code, the greater the probability that they'll get out of sync.
ALSO, new-commers that see the code for the first time won't have as far to go to get all the information about the code that is relevant.. If they are paging through a new project, they may not know where the associated meta-data XML files are.
Now, good annotation packages (like hibernate-annotations) allow you to override just about every possible annotation in use... And as a result, it makes the most sense to only annotate to the degree that generality necessitates.. Consider this object-oriented annotations (even though it's a hack-job on the back-end, because the code has to know to recursively check for annotations and XML in all the right places).
The other side of the story is important too... That if your code is dependent on annotations (say you're hack-job didn't facilitate XML overrides), then you reuse code in two different contexts, you're screwed, because you've historically coded to one annotation schema, but then in one or more use cases, those annotations are not correct.. This is most common in interfaced' API libraries (with little or no actual code). If say a @Transactional attribute is present in the API, but it's being deployed in a non-transactional environment (say a trivial front-end web-app that doesn't do any DB activity and thus doesn't have a registered transaction manager), then you might be in for a shock when you first deploy the code. That being said, things like @Transactional are encouraged to exist only in the class implementation code, not in the interfaces. But you might have a poor annotation package which doesn't handle this properly.
Another example is if you define schema attributes on the POJO, say
@Length(max=32) String firstName;
Then you use this Person object everywhere... Well, not every place is going to want a column length of 32 chars (though this might be a good-thing).. Again, in Hibernate at least, you can always override in XML for a particular deployment... But it violates the use-case above of a 1'st time prorammer paging through the code.. Now they have a false expectation.
I'm sure there are other pros and cons. But Annotations are far better than xdoclet.. And xdoclet as a paradigm has exploded.. For trivial one-use-case code, xdoclet and annotations are a god-send. Consider EJB2 XML files and meta-interfaces which are a nightmare. All are handled elegantly via annotations. Less code/files == less chance for error.. Concice with little revocation of flexibility. Though in huffman-coded style, that old flexibility now requires twice as much conceptual complexity (knowing to look at XML for only special cases - and thus forgetting about it).
-Michael
Based on reading the Apache Geronimo dev mailing lists, it seems like Geronimo is looking to have some JEE5 preview features in their 1.2 release (maybe later this year?), with full JEE5 support likely coming in 2007.
From the Geronimo dev mailing list:
To me the main open question about 1.2 is whether we can certify on j2ee 1.4 with jee5 spec libraries. If so it is fairly simple to include jee5 preview features.
+10. C/C++ are most often used languages in real life. That's fact.
Java is also used - in data centers and in middle ware. IOW, precisely what I call niche: for every server in the world using Java there are at least ten running PHP or something else. And for every server out there - whatever it is running - there are lots of gadgets and embedded systems around us. PHP == C, embedded == C/C++. GCC is true king of the software world.
People like Java - so let them be. It is unfortunate that Sun still keep the stewardship of Java platform. I'd love to have stripped down Java, so that we could bundle Java applications with our own stack. But Sun doesn't allow to ship one particular version, nor stripped-down version: they do not like embedding (slave JVM inside other application - applets in browsers are notable exception), they want auto-updates (no way we are allowed to have updates from 3rd party), they want plugins, they want megabytes of useless stuff to be shipped. As my company stands, we are not allowed to include untested code - and no way we would be able to test all java libraries Sun includes. And Sun disallows us to ship subset. Dead end, IOW, as I am concerned.
All hope abandon ye who enter here.