Welcome!

Java IoT Authors: Yeshim Deniz, Elizabeth White, Pat Romanski, Liz McMillan, Zakia Bouachraoui

Related Topics: Java IoT

Java IoT: Article

JSF: The Ultimate in Flexibility? Or Complexity?

JSF: The Ultimate in Flexibility? Or Complexity?

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.

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.

Comments (7)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


IoT & Smart Cities Stories
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
Atmosera delivers modern cloud services that maximize the advantages of cloud-based infrastructures. Offering private, hybrid, and public cloud solutions, Atmosera works closely with customers to engineer, deploy, and operate cloud architectures with advanced services that deliver strategic business outcomes. Atmosera's expertise simplifies the process of cloud transformation and our 20+ years of experience managing complex IT environments provides our customers with the confidence and trust tha...
Where many organizations get into trouble, however, is that they try to have a broad and deep knowledge in each of these areas. This is a huge blow to an organization's productivity. By automating or outsourcing some of these pieces, such as databases, infrastructure, and networks, your team can instead focus on development, testing, and deployment. Further, organizations that focus their attention on these areas can eventually move to a test-driven development structure that condenses several l...
The graph represents a network of 1,329 Twitter users whose recent tweets contained "#DevOps", or who were replied to or mentioned in those tweets, taken from a data set limited to a maximum of 18,000 tweets. The network was obtained from Twitter on Thursday, 10 January 2019 at 23:50 UTC. The tweets in the network were tweeted over the 7-hour, 6-minute period from Thursday, 10 January 2019 at 16:29 UTC to Thursday, 10 January 2019 at 23:36 UTC. Additional tweets that were mentioned in this...
Over the course of two days, in addition to insightful conversations and presentations delving into the industry's current pressing challenges, there was considerable buzz about digital transformation and how it is enabling global enterprises to accelerate business growth. Blockchain has been a term that people hear but don't quite understand. The most common myths about blockchain include the assumption that it is private, or that there is only one blockchain, and the idea that blockchain is...
Never mind that we might not know what the future holds for cryptocurrencies and how much values will fluctuate or even how the process of mining a coin could cost as much as the value of the coin itself - cryptocurrency mining is a hot industry and shows no signs of slowing down. However, energy consumption to mine cryptocurrency is one of the biggest issues facing this industry. Burning huge amounts of electricity isn't incidental to cryptocurrency, it's basically embedded in the core of "mini...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
The term "digital transformation" (DX) is being used by everyone for just about any company initiative that involves technology, the web, ecommerce, software, or even customer experience. While the term has certainly turned into a buzzword with a lot of hype, the transition to a more connected, digital world is real and comes with real challenges. In his opening keynote, Four Essentials To Become DX Hero Status Now, Jonathan Hoppe, Co-Founder and CTO of Total Uptime Technologies, shared that ...
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
Every organization is facing their own Digital Transformation as they attempt to stay ahead of the competition, or worse, just keep up. Each new opportunity, whether embracing machine learning, IoT, or a cloud migration, seems to bring new development, deployment, and management models. The results are more diverse and federated computing models than any time in our history.