Summer 1999: I was fortunate enough to be working on a Java project to write an Internet airline ticket reservation system for a client. It was one of my first Java programs and many a sleepless night was had. It opened my eyes to the travel industry and how the International Air Transportation Authority (IATA) used EDI data to communicate airline, hotel, and rail information to travel agents (it was also my baptism of the ways of StringTokenizer and Socket classes).
Fast forward to 2002: I was reading some of the Java Community Process papers online and stumbled across the "Travel Industry Reservation Booking Foundation API Specification" initiated by Sherry Shavor at IBM. At first I was elated that someone was taking the travel industry seriously and wanted to create an API. I took another gulp of coffee (with a small amount of smug pride) and continued reading. When I went back to the top the of page I noticed one word that changed everything - in a big bold red font I saw the word "withdrawn."
Okay, I was deflated, but the withdrawal of the specification was due to the lack of community support, not industry support. The likes of British Airways, Open Travel Alliance, and Galileo International were in full support, so why can't we be?
Let me put it into perspective: Internet travel is one of the biggest areas in e-commerce and the turnover by 2004 is estimated to be over $30 billion. It seems to me the community has just turned down an incredible opportunity. Even if Java was accountable for 2% of that $30 billion, that's $600 million we've just turned down due to our lack of motivation to support an industry. Even the small airline carriers such as easyJet (a European airline modeled on Southwest Airlines' basic structure) adopted an Internet booking system. As of the summer of 2000, easyJet was handling 70% of its bookings through the Web. It was an easyJet employee who suggested to management that they have a small booking system on the Internet. From humble beginnings come mighty things.
It's all very well that the Java community is shouting from the sidelines, "You have to use our technology - it's great!" but then not embracing the needs of the industries that have the power and the money to adopt such technologies. The same people who stand on the sidelines are usually the ones screaming that .NET is inferior (that's a debate I steer clear of). At the end of the day it's attitude and humility that will win work for Java programmers and development teams. It's important for a client to know a team is passionate about the vision of the client instead of the single-minded vision of the programmer. The sooner we call ourselves servants to our clients the sooner we have a chance of making this whole thing work; we are all major links in the supply chain, not the end of it.
What is ahead for the future? Is there anything we should be watching out for? Well, I've been doing a lot of work on business intelligence using the Web as a big fact-finding engine. Companies are willing to pay to have these types of applications do large amounts of work that would take human intervention an age to complete. Think about the potential. If you have a hunch, go with it; what could possibly go wrong? Leave venture capital funding for the time being, until you're sure what you have is going to work. Anyway, VCs are so 1997.
The opportunities are out there; it's a change of mindset that's required from time to time. I'm certainly not saying we're all guilty, but a short pause to think about where we are and where we're going is always a good thing. I think the Pet Store demo benchmark fiasco was a wake-up call for some of us and it came at a welcome time. Yeah, we saw the cracks in the woodwork, but did we stop and think about it?
The longer we stand on the sidelines watching the world go by, the more time we give the competition to come along and steal Java's glory.
Jason Bell is a programmer and chief technical officer for a B2B Web portal in York, England. He has been involved in numerous Web projects over the past five years, the last two of which have been servlet-based.