Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


advertisement
 

Server-side Subjects Drop Java's GPA

There's a lot to love in Java, but it can be far from a cakewalk. Find out why, in some scenarios, Java scores only a middling B-.


advertisement
'll get right to the punch line: The choice between implementing real-world server-side solutions in Java vs. alternate technologies is not a foregone conclusion. More often than not, the concrete APIs and services offered by the Java 2 Standard Edition and Java 2 Enterprise Edition platforms meet or exceed the competition, but in several key areas related to server development, the tools available on these popular platforms are weak.

When a project's requirements coincide with Java's server-side weaknesses, the resultant Java solution can be difficult to build, non-portable, and hard to maintain. This is why my overall grade for using Java to build the various real-world servers businesses demand is only a B-.

This assessment of Java's advantages and disadvantages regarding server-side development breaks along three somewhat orthogonal axes. I examine the platform's facilities imbuing Java solutions with key server attributes: scalability, extensibility, throughput, security, manageability, and code-base maintainability. Java provides wonderful support for some of these attributes, but for others it falls far short of ideal in terms of convenience and support.



J2SE has several advantages for real-world services. An analysis of Java's performance against its competition indicates that its platform independence, binary standards for code distribution, and J2SE's inherent stability combine to give the Java platform portability advantages that far outweigh the competition. In fact, projects whose requirements coincide with these strengths simply can't be built on alternate platforms (at least, not without exponentially more effort).

Examining non-technical areas and focusing on project management, the J2SE and J2EE platforms enjoy a large base of developers, decent tool sets, and wide industry support. From a project-management perspective, Java is in a league whose only other member is the suite of tools and technologies soon to be offered by Microsoft Corp.—those of the Visual Studio .NET platform.

With that in mind, let's now get to the bottom of the strengths and weaknesses of Java as an enterprise server technology.

J2SE Report Card   J2EE Report Card
Category Grade Comments Category Grade Comments
Scalability C Reliance on blocking I/O libraries limits potential. Java 2 v1.4 non-blocking APIs should help. Scalability B+ Frameworks target scalability well. Complex component models and weaknesses inherited from J2SE can hamstring implementations.
Extensibility A+ Late-linking plus platform-independent binary class definitions—awesome! Extensibility B Open component model definitions are great! Need more guidance on patterns and usage.
Throughput B- See blocking I/O comments above; interpretive nature of Java degrades performance vs. platform-specific compilation. Throughput Varies Very container-dependent.
Security B+ Very nice framework; lower marks for poor documentation of advanced techniques and capabilities. Security C Portable security descriptors are nice, but lack expressiveness—can't handle complex security portably. No integration with J2SE security.
Manageability D No facilities provided; very recent JMX shows promise, but lots of work still to be done. Manageability D- No portable solution provided. (See J2SE comments in this area as well.)
Maintainability B+ Single, simple language and stable platform—love it! Deployment can be hazardous, but Java Web Start plus third-party tools fill most gaps. Maintainability B- Complex component models, lack of usage patterns and portability difficulties inhibit code-base and deployment maintenance efforts.


Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap