| By Jason Weiss | Article Rating: |
|
| October 1, 2002 12:00 AM EDT | Reads: |
24,076 |
EJB. JSP. JMS. JMX. JCA. JTA. JAAS. JAXP. JDBC. JNDI. This is a partial list of the acronyms you'll find in the 228-page J2EE v1.4 public draft. Of course, I was able to assemble this list of acronyms before I reached the bottom of page six.
This new version of J2EE is presented as the Web services version, so to be fair I should add SOAP, SAAJ, JAX-RPC, and JAXR to this list. In this age of integration, I wouldn't feel right if I didn't include JCA and JACC. I also feel obligated to at least mention the unfortunate specifications that were absent the day acronyms were handed out, like servlets, JavaMail, J2EE management, and J2EE deployment.
If this list of acronyms overwhelms you, I apologize. I do have a suggested course of action that will help you become educated in J2EE 1.4. Each one of the aforementioned acronyms is a specification unto itself, so all you have to do is read each one, and you'll be set! Let's see here...the EJB 2.1 PFD specification is only 640 pages, so we can cover that on Monday and Tuesday. On Wednesday we can review the Servlet 2.4 PFD specification, which is a more palatable 307 pages. Then Thursday we can download and review the JSP 2.0 PFD specification a mere 374 pages. Hmmm, maybe reading each of these in sequence isn't a solution either, unless you're fortunate enough to be employed by a company that will let you sit and read specifications for a month straight (in which case, where do I apply for a job!).
We must ask ourselves what makes a technology successful. Looking back about 12 years, we saw the popular adoption of client/server technologies, and we saw business solutions implemented rather quickly. The kingpins of client/server were PowerBuilder and Visual Basic. I was fortunate enough at the time to be a Microsoft Certified Trainer and a Certified Power- Builder Instructor. In the course of about five years, I taught a little over 1,000 students, balanced with intermittent consulting engagements that kept my feet in the real world. While client/server had its weaknesses, I think we can reach a consensus that by and far PB and VB were successful at what they did. In fact, both technologies passed Wiseman's Law, which states:
A successful technology will saturate an 80% sampling of programmers only if 80% of the technology can be understood by those same programmers without forcing them to work beyond their regular work hours.
Rarely is there a discussion on the learning curve of a piece of technology. As a manager I'm responsible for a team of programmers and I must ensure that the team maintains a high degree of productivity. One weakness of Wiseman's Law is that it doesn't define any time frame for achieving the 80% milestone.
What is an acceptable time frame for a learning curve? Again, let's look at history. Both PB and VB offered a one week fast-track training course. A developer certainly wasn't ready to pass any certification tests after that one week. However, most students were fluent enough in the technology that after completing the course, assuming they used the technology on a daily basis at work, within three months they could be implementing business solutions.
If we applied these same metrics to Java and J2EE, how would the technology rate? Right now, I believe the answer is very poorly. The problem, however, lies not with Java or J2EE, but with the way Java evolves through the Java Community Process. The formal goals of the JCP are found at www.jcp.org:
The Java Community Process is the way the Java platform evolves. It's an open organization of international Java developers and licensees whose charter is to develop and revise Java technology specifications, reference implementations, and technology compatibility kits.
Specifications don't solve business problems they solve technology problems. Companies expect their programming teams to solve business problems. Take any average Fortune 500 programming team with little or no Java experience a team with a deadline to meet. Show them the number of specifications being released with J2EE 1.4. When you multiply that number by the complexity, size, and learning curve of each specification, I bet they become scared and want to reconsider the use of Java. If Java can't continue to entice new programmers while retaining the programmers it already has, how will our community survive?
The original premise behind a J2EE container was glorious: abstract multithreading issues, server memory management, wire protocols, etc., from the programmers and allow them to focus on implementing solutions, not server infrastructure. Somewhere during this journey the JCP has shifted from its solution-oriented roots to merely implementing specifications. This trend must be reversed for the sake of our community!
At present, the open-source community appears to be the only one focused on building solutions, but signs of strain are clearly evident among even the most popular projects. As a case in point, consider the Apache Axis project. Axis is an innovative next-generation Web services engine that, when completed, will transform a number of interrelated Web services specifications into a solution that can stand strong as one of the cornerstones in any enterprise-scale project. The most disconcerting aspect of Axis is that since its inception in late 2000, there has yet to be a production-quality integer release issued. In my opinion, this is due largely to the deluge of specifications the project must digest. Each time I visit the project's Web site, I'm amazed at how the acronyms are multiplying like rabbits.
To the vendors and active members of each of the ongoing JSRs, hear your constituents speak! We need a break from this explosion of TLAs (three-letter acronyms). We aren't interested in expanding our already voluminous library of specifications we can't get our arms around what we have today. As a community, we must pay attention to the beleaguered JCP process and realign it with creating solutions, like those routinely released by the Apache Software Foundation.
By taking steps now, we are investing in the future of both Java and the community that grew up around Java. The entire JCP process must thematically reflect our desire to build solutions that simplify complex technologies for programmers. In fact, the JCP process should continue to use the JSR acronym, but with new meaning: Java Solution Request.
Published October 1, 2002 Reads 24,076
Copyright © 2002 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Jason Weiss
Jason Weiss has over 12 years of real-world design and development experience. He's a published author and frequently lectures at industry trade shows.
![]() |
Rene 10/04/02 07:30:00 AM EDT | |||
Good point: The ideal language could solve all probs with minimum specs. So far, minimizing specs was not a main goal but should be. Maybe another language will solve that and, heureka, by definition will be fast to learn! Also: Solution focus = avoid overtraining! |
||||
![]() |
Alexander Jerusalem 10/04/02 12:25:00 AM EDT | |||
You're attacking a real problem but your arguments are completely wrong. The page count of the J2EE spec doesn't tell you anything about the learning curve for the average applications developer. For the greater part the specs give a formal unambiguous definition of what the contractual responsibilities of an application server implementer are. In fact, you can learn JSP in a day. VB and PowerBuilder are heavily based on SQL right? Do you think that even a single one of your former VB or PowerBuilder students has read the 700 page SQL 92 standard? And then counting acronyms doesn't prove anything. All you need to know to use JDBC for example can be said in about 100 lines of code and explained in two hours. JNDI is about as hard to learn as java.util.Map. The real problem on the server side is EJB. It's just flawed. It doesn't solve the right problems and what it does is unnecessarily complicated and inflexible. Let's just throw it out and be done with it. Regards, |
||||
![]() |
John Slaman 10/03/02 11:17:00 PM EDT | |||
Blaming JCP is a cop-out. Ask yourself a question. If you were to start from scratch to build a application to be delivered over the internet - what tools would you choose? How would you do your O/R mapping? Your persistance? Where would your business logic go (inside domain objects or inside Session Beans)? Would you cache your objects in the appserver or webserver? If so - how? What product, what strategy, .... |
||||
![]() |
Alex EL HOMSI 10/03/02 07:21:00 PM EDT | |||
As a matter of fact, Trilog Group is the first tool to create the J2EE-equivalent of VB, PowerBuilder and Lotus Notes combined. It's called the Visual XSP Studio and has been designed for Java dummies :-) |
||||
![]() |
Alex EL HOMSI 10/03/02 07:21:00 PM EDT | |||
As a matter of fact, Trilog Group is the first tool to create the J2EE-equivalent of VB, PowerBuilder and Lotus Notes combined. It's called the Visual XSP Studio and has been designed for Java dummies :-) |
||||
![]() |
Frank Silbermann 11/06/02 03:31:00 PM EST | |||
I think part of the problem is that for any given level of functionality, web applications are inherently more complex than client-server applications. HTML was not designed to be a GUI for computer programs, and the CGI concept which forms the basis of all web applications was a kludge from the start. When you try to enhance and improve a bad design you end up just digging the hole deeper. We need JSPs with JSTL so non-programmers can write the HTML, Servlets to tie the JSPs together, Struts to organize the combination, and XML to deploy each and every object. We now need XML and XSL so we can factor out the commonality in HTML pages, and Cocoon to manage our XML tools. The need for new APIs is never ending. OK, 2-tier client-server applications didn't scale, but now we have EJBs, RMI and object serialization to support middle tiers. We couldn't distribute and update thousands of Java runtimes and client applications over the internet and Applets took too long to download, but now we have the Java PlugIn and WebStart. Firewalls would not allow clients to talk to servers across firewalls, but now we have HTTP tunneling. For the vast majority of sophisticated applications, this _ought_ to be enough. OK, maybe web applications are more appropriate if all I want to do is sell a screwdriver over the internet to some Joe in Indiana -- but who needs cascading APIs for that, anyway? For enterprise applications it seems to me that putting everything but the web browser on the server is as inelegant as putting everything but the RDBMS on the client. People invent new APIs to ameliorate the clumsiness, but we needn't suffer the object-to-HTML impedence mismatch in the first place. |
||||
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- Confessions of a Ulitzer Addict
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- It's the Java vs. C++ Shootout Revisited!
- Cloud Computing Can Revitalize Your Career as Software Developer
- IBM Could "Reinvent" Java: Mills
- Oracle & Cloud Computing: Exclusive Q&A with SVP Richard Sarwal
- A Brief History of Cloud Computing
- Kindle 2 vs Nook
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- i-Technology Predictions for 2007: Where's It All Headed?








































