The Source for Java Technology Collaboration
User: Password:



John Reynolds

John Reynolds's Blog

Is Java popular in spite of its standards?

Posted by johnreynolds on April 19, 2004 at 02:30 PM | Comments (9)

Mention JSPs positively in a blog and you will undoubtably get flamed. Encourage colleagues to use Entity Beans and you may never be taken seriously again. JDO was crippled for many by the lack of a standard for O/R mapping. EJBQL, and JDOQL lacked the functionality that many legacy RDBMS schemas demanded.

These are just a few of the "standard" features of Java that are reviled by ardent Java supporters... but for some reason developers stay loyal.

Are we loyal because we fear domination by Microsoft? Judging by the paranoid reactions of many to the Microsoft-Sun cease fire there's probably some truth to that conjecture.

Are we loyal because we ignore "standards"? Ignore might too mild a term, armed resistance might be more accurate. From the very beginning we've engaged in civil disobediance, rolling our own solutions and banding together to support projects that openly challenge the wisdom of the "standards". For every Jakarta project that implements a JCP standard, there's at least one that opposes the same standard.

So what should we make of all this?

I'm not sure myself, but I do think that the "major" players need to take notice and adjust their approaches. The user community does not respond to edicts from "on high", and doesn't care how much money has been spent to push a feature. In the egalitarian world where anyone can post an opinion the best laid plans of corporate marketeers aren't worth much. Bad solutions may linger, but they'll never prosper.

At this particular time, we're at a crossroads. The major players are either working on tools to hide the ugly guts (BEA's Weblogic Workshop's Controls), distract us with shiny new window dressings (Sun Creator Studio's Java Server Faces), or decouple the whole model (JBoss's AOP/Hibernate). All agree that creating a J2EE application is difficult and error prone, and all are scrambling for a fix.

Let's hope the result isn't another set of standards that developers love to hate.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • noone is pleased by everything but everyone is pleased by something
    The J2EE API is large enough that there's something in it for everyone to love and hate both.
    I doubt you'll find many people that love or hate all of it though.

    Personally I love servlets and JSP (while knowing there are weaknesses) and loath all of EJB (considering the tech fundamentally broken).
    Someone else would think me silly for that and love EJB to the exclusion of all else.

    This richness leads to sometimes heated discussions, which to me shows the vitality of the platform more than anything else.

    Posted by: jwenting on April 20, 2004 at 06:19 AM

  • Are you more pleased with the standards, or with the Open Source efforts?
    I find that most of what I like to use on a regular basis was either spawned from Open Source projects (Struts, Hibernate) or has been donated to the community (Eclipse).

    Posted by: johnreynolds on April 20, 2004 at 06:40 AM

  • flame me
    I love JSP. JSP 2.0 that is.. I think it is the coolest thing since sliced bread (or maybe since ASPX).

    JSP 2.0 has the ability to do procedural abstraction w tag files, which the alternatives lack.

    But JSP IS too big ... to much useless functionality.

    EJB is another matter.. seems clunky to me...

    But you're right ... PHP programmers laugh at us becuase of the convoluted way we sometimes come up w solutions.

    Posted by: dog on April 20, 2004 at 06:57 AM

  • nice post..thanks
    i enjoyed reading your blog on java being popular despite its standards.

    the java language is accessible for people to use to whatever ends they see fit. folks are free to develop apis and they have. many have become almost defacto apis despite a lack of endorsement from sun. sometimes we fool ourselves in thinking that an api has to have a blessed jsr in order for it to become a "standard." the truth is that log4j is probably as much of a standard as j2se's logging api. the jakarta folks are among the best in churning out meaningful apis and developing real community. in my eyes sun is more of an honorary position by virtue of having released the language.

    so it's not about sun anymore, it's about a world community each day improving upon software and libraries. it's not controlled by sun and not by microsoft, it cannot be.

    thanks, / eitan

    Posted by: eitan on April 20, 2004 at 08:28 AM

  • That's How I Role
    As silly as this might sound, I still remain as fundamentally enamored with the whole concept of the 'virtual machine' as I was when I first read about it years ago. Within devices that install or embed it, I am free to be anywhere that I so choose. For me, that's Java, regardless of any API size, protocol/standard or any arrogant comment from any programmer anywhere in the world! And it’s getting better every day. Now that’s how I role with it.

    Posted by: hub on April 20, 2004 at 01:22 PM

  • Why some standards are bad
    Take JSPs for instance:
    Lets assume that developers do indeed not like them. Why could that be? JSPs purpose is to allow you to create dynamic web pages without needing to learn Java.

    There are two fallacies:
    (1) A Java developer *already* knows Java(!!!)
    (2) A scripting language is 'simpler' (or merely: 'easier to read') than a procedural language.

    To see why (2) might be false, consider perl. :-)

    But there is a second target audience for JSP: the 'web content designer artiste person thingy' (thats a technical term, btw ;-).

    Now is it easier for them to learn a scripting language or just use Java? What if in order to use the scripting language they would have to have a pretty good understanding of Java anyway??

    So then in order to meet that need, there is this 'specification drift' - away from things that look like Java... (So you get template libraries, tag libraries etc, each trying to look more and more like html or xml than the last).

    But then you have the problem that those things are harder for the Java developer to pick up because they are less like those things which they are already familiar with...

    Hence the flames about JSPs and the derived technologies.

    Now as for EJBQL - this is another one of these solutions looking for a problem. To use it, you would have to already be pretty good with Java and SQL... so why bother learning something which doesn't even do its job particularly well?

    Why not take that time (for learning EJBQL) to learn a few things about your database stored procedure language, and then slap in a bunch of stored procedures and viola! You can hand back to yourself something that is really easy to map from the result to an object.

    You might say 'but what about protability'?? Well, thanks to the modern miracle of XML - you need never worry about portability ever again! Because of the multiple layers of XML (one for J2EE spec, and one for everything where the J2EE guys couldn't make up their minds and left it up to the vendors (also known as the 'too hard basket')) the difficulty of configuration and/or deployment to another platform is such that you are probably better off starting from scratch rather than porting!!!

    (Someone credited James Gosling as saying something like 'every configuration file becomes a language' - in J2EE you have multiple layers of configuration files... oh the horror)

    So portability is very much a non starter.

    Then we have all the specs which try to make nice with the OMG stuff (corba et al). In theory this is a good thing. In practice what this means is that only the features common to all the languages/protocols involved are available. Hence RMI-IIOP is *less good* than just RMI, because it supports the intersection of two protocols.

    If I'm in a pure Java environment, then there is no good reason to use RMI-IIOP. If I'm not in a pure Java environment, then rather than use RMI-IIOP - I'm almost certainly better off writing a Java wrapper/facade/proxy to interface with the non Java bits, and then pretending that I am actually in a pure Java environment. That way it will be faster, easier to develop and maintain, and safer....

    So why would any Java developer want to water down their Java??? (Other than Resume driven development...)

    Posted by: rickcarson on April 20, 2004 at 05:56 PM

  • PHP v JSP
    I have not a bad word to say about PHP nor PHP programmers. But I do find PHP to be very limited to smaller Projects. Now I used to be a PHPer(still am on occasion), but simple found the broader range of Java and it's Apis to more liberating. Furthermore the Servlet Jsp relationship fits beautifully into the MVC Architecture. Which we all know is vital for scalable, long term systems.

    Posted by: pcwheels on April 21, 2004 at 12:57 AM

  • flame me
    PHP looks more like JSP 1.0 or ASP than it does to JSP 2.

    It's incredibly clunky and doesn't do anything to separate business logic from display code etc.

    If PHP users consider our ways convoluted that's because they see separation of responsibilities as bad and like tight coupling.

    Posted by: jwenting on April 21, 2004 at 03:47 AM

  • Why EJBQL "chaps my hide!"
    EJBQL is beast I love to hate most. Consider the "Fast Lane Reader" pattern where I want to read from the database to get a list of something. JDBC is the tool of choice for this, and I'll write an SQL query. Now I want to instanciate Entity Beans from that list. The finder for this has to be written in EJBQL (if I stick to standard CMP).
    Where's the sense in that?

    Posted by: johnreynolds on April 21, 2004 at 06:26 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds