
J2EE Is Dead - Completely Dead - Garbage
http://www.adam-bien.com/roller/abien/entry/j2ee_is_dead_completely_dead
======
rb2k_
copy pasta because the server is dead (completely dead) ;)

J2EE 1.4 or officially: "JSR 151: JavaTM 2 Platform, Enterprise Edition 1.4
(J2EE 1.4) Specification" was released at 24 Nov, 2003 and was designed to be
used with JDK 1.4, J2EE 1.3 was released at 24 September 2001 and is more than
9 years old now. In JDK 1.4 there were no annotations available, so you had to
configure everything with XML. J2EE 1.4 is more Configuration Over Convention,
than the current - more reasonable opposite principle of Configuration by
Exception or Convention over Configuration. If I read or hear "J2EE" I always
have to think about xdoclet with about 50 lines of XML, a Home Interface,
Remote Interface and an unrelated Bean class just to implement a helloWorld()
method. ...with Java EE 6 a helloWorld() takes exactly one line of code - as
it should be.

Even JDK 1.5 is End of Service Life and so officially dead for greenfield
projects as well. Most of the J2EE 1.4 application servers were not even
officially supported on JDK 1.5, so it is truly ancient technology. However:
there is more interests in Java EE 6 - measured in number of session attendees
at conferences, blog statistics, number of sold books :-) and project
requests, than ever. What also amazed me was the result of my informal surveys
after talks at various conferences (JAX, W-JAX, JavaOne and Devoxx). The
majority of attendees do use Java EE 5. The minority is using J2EE 1.4. Even
the number of Java EE 6 projects seems to be slightly higher, than J2EE.
...and Java EE 6 is only one year young... So J2EE is dead, but Java EE 6
rocks.

~~~
brown9-2
_I always have to think about xdoclet with about 50 lines of XML, a Home
Interface, Remote Interface and an unrelated Bean class just to implement a
helloWorld() method_

It amazes me that when people say "J2EE" they're really describing "EJB"

~~~
va_coder
And not everyone was using xdoclet.

One lesson from that fiasco: Just because all the giants of the day are
supporting something doesn't mean it's any good.

~~~
drtse4
Struts comes to mind, possibly one of the worst web frameworks ever created.

------
sgt
So before anyone thinks he is referring to Java on the enterprise in general;
he is not.

Java EE 6 is the current Java enterprise solution.

J2EE is the old, e.g. 1.4 or 1.5. Java EE 6 is far better, and technologies
like JPA and JTA are quite powerful. There's also a lot less boilerplate code
than before. As another poster said, Java EE 6 rocks for enterprise
development, particularly with large teams.

~~~
al05
I tried out Java EE6, I was impressed on the improvements they have made. Once
you set it up correctly, you get quite a lot of stuff for free.

------
swah
Anyone else noticed this: when you Google for Java related stuff, Google's
magic stops working, and you get into a sea of outdated and confusing pages
from all kinds of sources.

Also, for most of those results, you'll get some horrible unusable web site,
probably with serif fonts to compliment.

~~~
retube
No, I never noticed that. It's weird how everyone in the startup community
hates on java, when it's probably the most popular language in use today
(source: SO tags) - far outstripping trendier languages like ruby, python,
erlang, go, or this seemingly insatiable desire to re-write every framework in
javascript.

It seems to me that the number of third-party OS libraries and frameworks
available in java, both in terms of breadth and state-of-the art, far
outstrips the resources available in other languages. It's virtually the
default choice for enterprise systems, and a vast array of academic research
is also java-based, resulting in a hugely rich eco-system.

I just don't understand why java is not better embraced or more widely adopted
amongst the startup community.

~~~
mgkimsal
There's a hell of a lot of stuff out there written in C as well, that
integrate quite nicely with PHP, Python, Ruby and other 'trendy' languages.

Having GD embedded in PHP makes many image processing tasks far easier and
less painful than trying to do stuff using Java image libraries (for example).

"It's virtually the default choice for enterprise systems" then "I just don't
understand why java is not better embraced or more widely adopted amongst the
startup community"

"Startups" and "enterprise systems" are, in many (most? all?) cases, _worlds_
apart in terms of needs.

I say this as someone who's done PHP for 14 years and Groovy/Grails for 3.

~~~
retube
> "Startups" and "enterprise systems" are, in many (most? all?) cases, worlds
> apart in terms of needs.

Sorry, I didn't mean to imply that they were; more that the wide adoption by
both enterprise and academia has driven the development of a great number of
world-class libraries and platforms in java.

------
milkinm
Ok. Can we please, please, please, please stop proclaiming things dead.

In the past year i have read at least half a dozen articles proclaiming
various technologies dead.

The Web, Grails, Java, Telephones, ect...

PS I declare that declaring preemptive postmortems to be dead!

------
fierarul
Sadly so is the web server.

Google Cache seems to have it, but it's overall rather thin:
[http://webcache.googleusercontent.com/search?q=cache:Fbn8cjc...](http://webcache.googleusercontent.com/search?q=cache:Fbn8cjcBmukJ:blog.adam-
bien.com/+&cd=5&hl=en&ct=clnk) Something along the lines the king is dead long
live the king.

------
kondro
Sigh, more sensationalist headlines that really have no content.

Unsurprisingly, old technology is old and new technology is new.

------
ra
Seems that link is completely dead.

Maybe it's getting DDoSed by a disorganised horde of anonymous pro J2EE
teenagers.

------
mark_l_watson
I agree, Java EE 6 is a huge improvement to older J2EE versions. I am going to
spend some time next year helping a friend's company with a Java EE 6 project
so I have recently spent a few evening brushing up on for a much improved
platform. Not at all what I would consider to be _agile_ but solid
infrastructure that saves time on projects that require many components, high
level error handling, uniform messaging, etc., etc.

------
petervandijck
Thank god for that. As a funny related story: a former boss once made me (told
me to) give a talk about J2EE, and I had NO idea what I was talking about. I
was a PHP developer. My first year employed on the web. I should have refused,
but was too unexperienced. If you were there (Scotland 2001), apologies!

~~~
glhaynes
Wow! Sounds like a scene from a (nerdy) sitcom. What'd you do?

~~~
petervandijck
I gave the talk. Died a little inside that day.

------
wallflower
J2EE is dead because Spring/Hibernate have replaced them because they are the
lightweight transactional enterprise application framework that J2EE _never_
was.

We have come a long way from the Java Pet Store.

------
swah
Can anyone show the one line hello world?

~~~
mgkimsal
The author links to a page that's not accessible. The google cache shows this
page:
[http://webcache.googleusercontent.com/search?q=cache:3cGnLJF...](http://webcache.googleusercontent.com/search?q=cache:3cGnLJFTP3gJ:www.adam-
bien.com/roller/abien/entry/simplest_possible_ejb_3_1+http://www.adam-
bien.com/roller/abien/entry/simplest_possible_ejb_3_1&cd=1&hl=en&ct=clnk&gl=us)

copy/paste from the link above

=================

@Stateless

public class SimpleSample {

    
    
        public void doSomething() { /*business logic*/  }
    

}

How to compile:

You will need the the EJB 3.0 / 3.1 API in the classpath, or at least the
@Stateless annotation.

How to deploy:

Just JAR the class and put the JAR into e.g:
[glassfishv3-prelude-b23]\glassfish\domains\domain1\autodeploy

How to use:

e.g.:

import javax.ejb.EJB;

public class MyServlet extends HttpServlet{

@EJB

private SimpleSample sample;

}

And: there is no XML, strange configuration, libraries, additional frameworks
or jars needed...

=================

Looks a slight bit more than 1 line to me. Note: the page was linked to from
another page indicating you can do 'hello world' in JEE6 in 'one line' of
code. Java people have a funny way of counting lines sometimes.

~~~
drtse4
He should have left out that "exactly". The main point is something he
highlights at the beginning, J2EE was the triumph of configuration over
convention, it had a lot of xml descriptors and interfaces/utility classes to
be implemented (this caused by the some architectural decisions that remind me
of CORBA). This stuff was usually auto-generated but you still often had to
tweak these file manually. The polar opposite of modern web frameworks.

