Q&A: The State of Java with Jamie Thomas of IBM
Q. How has .NET impacted Java in the Web Services space? How is Java and .NET coexisting in the market? Are we going to see radical enhancements in the support for Web Services in Java in the near future?
A. Microsoft appears to have dedicated themselves to a business model that attempts to limit their dependence on open system standards. I'm sure that gives them a lot of flexibility to optimize the efficiency of their innovation processes. However, given their dominance in the market place, that focus on proprietary technologies has in many ways constrained the growth of the information technology industry at large. It's as if GE were to declare that their appliances will only support outlets of a certain proprietary shape or voltage. It might give their appliances some sort of technological advantage, but it would limit the utility of electricity in our homes because we'd have to install different outlets for different appliances. Given that Microsoft has finally overcome its reluctance to support an open standard for interoperation, that has put a lot of importance on web services. The web services specification has its own intrinsic value to the extent that it enables a service-oriented architecture for business composition. However, it now has the added advantage of being the only technology specification that enables open interoperation with Microsoft. In that sense, .Net has validated both SOA and the use of web services to enable standard interoperation with Microsoft's proprietary platform. This further legitimizes the support in Java for web services, and in doing so indirectly expands the information systems marketplace by increasing the utility of business composition. The only 'radical' enhancement I envision happening for web services support is simply the result of an accelerated understanding of the role of business composition in application design, and the skills, methodologies, patterns and tools that enable it to be used more efficiently, and to enable greater value to customers and their businesses.
Q. Java began as a cross-platform technology with a small footprint for small devices. How has Java kept this promise with the Java 2 Mobile Edition (J2ME)?
A. One of the greatest challenges we face with the Java platform specifications is in harvesting and cross-pollinating them for mutual benefit. J2ME has retained its focus on the small footprint requirements for pervasive devices. However, increasingly, ISVs and customers want to be able to share their development skills and tools between a variety of deployment platforms for their applications. Building the presentation logic for an application that will be hosted on a J2EE application server should not require a completely different set of tools, technologies and programming practices than those that are needed to build the presentation logic for an application that will be hosted on a cell phone or PDA. In essence, there is a driving need to incorporate some of the programming model concepts introduced by J2EE into the J2ME platform. Likewise, the reduced footprint characteristics and provisioning concepts employed in the J2ME platform have benefit to the J2EE platform -- for reducing the hardware and deployment components of the total-cost-of-ownership (TCO) equation. Ideally, there would be one core programming model for J2ME and J2EE supporting a range of quality of service and scale objectives that can be measured along a continuum. I think there is a growing interest in the community to achieve that goal.
Q. How promising is the Desktop Java technology?
A. It's hard to imagine Java ever fulfilling its 'write once run everywhere' mantra without providing an attractive set of services for all of the major styles of information computing. Desktop computing is clearly an important style of computing, and Desktop Java is targeted at catering to that need. The fact that you can leverage your existing Java skills for building desktop applications combined with the premise that desktop applications built to Java and Desktop Java services will be portable between Windows and other desktop platforms such as Linux is going to make it very attractive to a lot of application developers.
Q. Considering the growing popularity of Eclipse, what new development tools can we expect from the IBM stable for Java?
A. We believe that greater developer productivity and increasing business agility can be drawn from model driven architecture (MDA) approaches to application development. This is a leading premise in the Rational tools suite, and was driving force behind the decision to acquire Rational last year. The fact that the Rational tool suite was already based on the Eclipse framework means that Rational modeling tools can already be incorporated into an integrated development environment; it enables us to deliver that value proposition to ISVs and customers immediately.
Q. How is Java growing and evolving to serve the needs of the developer community?
A. Information computing technology was introduced to corporate businesses fifty years ago. Since that time, the developer community has faced the same challenge: to reduce the backlog of application development requirements that the business has put on information computing. This translates into the need to both increase developer productivity (the rate at which application assets are created) and application durability (the period and conditions under which those assets continue to return value to the business). Java has already gone a long ways towards increasing programmer productivity simply by enabling portability of programming skills -- moving from one project to the next no longer requires that you completely retrain all of your developers, even if the next project is trying to address a completely different set of computing needs. The J2EE platform goes a long ways towards making application assets more durable -- component technologies separate the concerns of the business logic from the concerns of the underlying information technology to enable the component to be re-used in a larger variety of conditions. It also allows for specialists in different information technologies to all contribute collaboratively to delivering an application solution to the business.
Java continues to evolve and introduce even more benefits in both of these areas. The J2EE platform vendors continue to improve the quality, scalability, and ubiquity of their respective products -- which in turn increases the value and efficiency of applications that are implemented to the J2EE specification. J2EE 1.4 has introduced support for web services for business composition that in turn will increase the efficiency and agility of business processes. The focus for the J2EE 1.5 JSRs is on further reducing the barrier to entry for programmers that want to gain the benefits of the J2EE platform for their application development needs.
Q. Why did IBM choose not to join the Java Tool Community?
A. There hasn't been a compelling reason to join it. The JTC has yet to publish a clear definition of what it intends to accomplish -- other than to be a community. IBM has focused its time and attention on ensuring that Eclipse succeeds as an open systems tools platform standard. It is not clear that supporting another tools community beyond Eclipse has any benefit for IBM, our customers, the tools industry or the information computing industry at large. That's not to say that Eclipse.org may not get involved with the JTC in the future.
Q. What does 2004 hold for Java? What improvements are necessary to maintain its momentum?
A. I expect Java to improve on two fronts this year: First, the major J2EE platform vendors will deliver commercial implementations of the J2EE 1.4 specification for use in production environment. This will further extend the utility of the J2EE specification for use in common and mission-critical application deployments, and in turn further the expansion of intellectual capital built on the Java foundation. The inclusion of web services standards in the J2EE 1.4 specification will enable the exploitation of the benefits of business composition within application design. I expect ISVs and application developers will hone their skills in service-oriented architecture; businesses will see an acceleration in the user of Java to achieve the benefits of business composition and agility that can be achieved with service-oriented architecture. Second, we will see improvements in the development tools to further productivity of application developers and to lower the barrier of entry to exploiting the value of the J2EE platform. These advances will likely be incorporated in the next release of the J2EE platform specification.
Page 2 of 2