| By Steve Benfield | Article Rating: |
|
| March 5, 2004 12:00 AM EST | Reads: |
34,407 |
I have a love/hate relationship with J2EE. I love the idea of standards that we can all use in our development to improve interoperability, ease integration issues, create a pool of skilled developers, etc. I hate the idea that I have to wait years for the standards to evolve and become usable. And I hate having specs that seem to work well in theory but have no practical implementation behind them. This brings me to the JSF specification.
How long have we heard about JSF (JavaServer Faces) and how it will make it easier to build Web pages? Why did it take more than two and a half years to come up with JSF, which is essentially an event model for Web pages? And it happened at a time when Microsoft was coming out with major innovations (a debatable point, I concede) and huge pushes targeted at providing ease of development for the corporate developer. Visual Studio/.NET developers look at the J2EE community and basically say "these guys don't get it."
Let's take a look back at JSPs. Isn't one of J2EE's goals to encourage encapsulation and object-orientation? If so, why create a standard that encourages a mixture of presentation logic, application logic, business logic, and data access into one page class? The answer is Microsoft. It was a reaction to what Microsoft had: "Hmm, we need something to compete with ASP. Hey, let's make JSP. We'll have tag libraries so we can easily embed components on a page and call it encapsulated." Obviously things have evolved a bit since then and we can now separate the flow of the application from the pages with frameworks like Struts. Well, last time I looked, Struts isn't part of J2EE - which means you're doing nonstandard development - but it is open and has an ecosystem of developers so it's a pretty safe choice. Of course, if you like editing XML, Struts is for you. There are Struts editors out there to help you, but in the end you're still dealing with a lot of complexity.
Now we have JSF, which promises to apply the "ease" of Swing to page development.
My expertise is in building corporate business applications and the needs of the business application developer. What I see in JSF is overengineering. Let's think of every possible usage pattern for Web pages and address them, not necessarily a bad thing. The resulting standard is one in which there are several layers of abstraction, many, many moving parts, and ultimate flexibility.
The problem is that ultimate flexibility comes at a cost - it's called ultimate complexity. From what I can tell, JSF won't actually reduce the complexity of creating Web applications. In fact, it greatly adds to the complexity. Just as JSPs did too little to provide granularity in building pages, JSF goes too far and makes things too granular. Do I really need a separate event to be called for each piece of data that has changed on a form? And possibly separate handlers for each? Be prepared for the framework that will sit in front of JSF to simplify its complexity.
In defense of JSF, it does follow many of the object-oriented Web page design concepts that we had at SilverStream in, oh, 1998. And it does have some appeal to the PowerBuilder developer that I used to be in the mid-'90s. However, experience has shown that building page-based applications with the level of object granularity shown in JSF doesn't make life easier; it makes it more complicated. I've architected and used many frameworks in my career and the trick is to perfect the balance between the ultimate flexibility that the architect wants and the ultimate usability by nonengineer developers.
I just joined ClearNova, and for several years our product, ThinkCAP, has provided a rapid way to build applications and presentations, one thing that attracted me to the company. We're doing the R&D needed to move parts of the platform toward JSF, but I'm concerned we'll lose a lot of the productivity that our current product has by implementing a spec that only object-oriented theorists could love. If we don't allow developers to have complete control over everything that JSF can do, we'll take flak from the purists, even if doing so makes the tool so hard to use that it appeals only to experienced J2EE developers.
Ultimately, my fear is that JSF will once again play into the hands of Microsoft's "complexity attack" and tempt business developers to run for the J2EE exit.
Published March 5, 2004 Reads 34,407
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Steve Benfield
Steve Benfield is CTO of Agentis Software. A technology marketeer and strategist with 20 years of software entreprenuerism experience, he is both a gifted writer and a technical visionary, a combination of qualities that made him the perfect choice of Editor-in-Chief for SYS-CON Media's inaugural publication 12 years ago, PowerBuilder Developer's Journal. Steve's proven ability to determine marketing and technology strategies that align with market needs led to successful stints at SilverStream, where he started as technology evangelist and ended as CTO, and at ClearNova where he was CTO.
![]() |
Fred 03/22/05 04:24:11 PM EST | |||
Oh Doctor, maybe you should give another 3 months try to JSF, and particularly with MyFaces implementation. They have a pager and sorting for tables, and a lot more. |
||||
![]() |
Doctor 03/22/05 06:55:28 AM EST | |||
I had practical experience with JSF 1.1 for three month. By the way, anybody knows any JSF-based professional commercial projects? |
||||
![]() |
Busy retail developer 04/05/04 08:35:44 PM EDT | |||
Agreed, pity I didn''t use my bogometer earlier. I was not impressed by the Coldtags suite suggestion, it costs (which would be inconvenient) and I''m sick & tired of tag spagetti, I think only layout should be done by tags, everything else should be in well designed beans or configuration files. |
||||
![]() |
Java software architect 04/05/04 10:32:32 AM EDT | |||
I go with "guy", looks like Steve only looks at the pictures. In the end, flexibility rules. JSF is very powerful, and, you can do it simple if you want. My experience with Microsoft is that everything looks so simple, but in the end you discover that you need the same complexity as any other framework/technique. The difference is just, that Microsoft tries to sell itself to managers with its appearent simplicity (one manager told me that with .NET we can build 6 times faster than with java, and he believed it), whereas java sells itself to (software) architects. Maybe this leads to the following conclusion: Steve looks only skin deep (regarding technology) or listens to the wrong people, just like managers. |
||||
![]() |
guy 03/31/04 02:03:20 AM EST | |||
well; |
||||
![]() |
Dan Novik 03/26/04 11:39:06 AM EST | |||
Check out Coldtags suite for example: |
||||
![]() |
Busy retail developer 03/21/04 11:25:22 PM EST | |||
OK, so which projects are worth looking at, which are not merely a reaction to Microsoft, but offer genuine benefit for web developers? I''m interested in the answer because I may have to more a client off the, over-priced, coding nightmare that is Informix Web DataBlade. |
||||
- Cloud People: A Who's Who of Cloud Computing
- New Relic Q1 2013 Blazes Past Growth Targets and Reaches 40,000 Active Customer Accounts
- Cloud Expo New York: Delivering Digital Marketing on the Cloud
- Cloudant to Exhibit at Cloud Expo & Big Data Expo New York
- Cloud Expo New York: Rethink IT and Reinvent Business with IBM SmartCloud
- The Accessibility of the Cloud
- Learn How To Use Google Apps Script
- Cloud Expo New York: Basics of SSD Technology and Its Use in Cloud
- Cloud Expo New York: Real-Time Analytics Using an In-Memory Data Grid
- Cloud Expo NY: Best Practices for Delivering Oracle Database as a Service
- Cloud Expo New York: The Big Challenge of Big Data & Hadoop Integration
- Measuring the Business Value of Cloud Computing
- Cloud People: A Who's Who of Cloud Computing
- Cloud Expo New York: Best CIO Practices Shared from SHI’s Customers
- Examining the True Cost of Big Data
- Cloud Expo New York: How to Use Google Apps Script
- New Relic Q1 2013 Blazes Past Growth Targets and Reaches 40,000 Active Customer Accounts
- Software Defined Networking – A Paradigm Shift
- Cloud Expo New York: Why Big Data Is Really About Small Data
- Cloud Expo New York: Delivering Digital Marketing on the Cloud
- Small Cancers, Big Data, and a Life Examined
- Cloud Expo New York: Requirements of a Cloud Database
- Cloudant to Exhibit at Cloud Expo & Big Data Expo New York
- Cloud Expo New York: Rethink IT and Reinvent Business with IBM SmartCloud
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- 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
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- Where Are RIA Technologies Headed in 2008?


























