The Future of Object Technology and Java

Daryl Plummer
Gartner Group

by Mark Lorenz


Mark

Object technology (OT) has been the subject of keen interest in the software industry for the last five to ten years. What are the major obstacles that have been overcome and what are the biggest hurdles awaiting in the near future?

Daryl

It is interesting the way that objects have been portrayed in the past - the way they've been thought about - and I think that's one of the biggest obstacles that it's had to overcome: the way some people think about it and approach object-orientation. One of the ways that characterizes the way people think about it is that they think about object-orientation as some magical panacea. They're looking to OT to help them do several things:

One, they're looking to reduce the cost of their projects and to gain some sense of reuse of code in the organization that would solve their management problems. So, they've had some unrealistic expectations of the technology itself and too little expectation of their own participation in the use of the technology to ensure that the things that they value in the technology will actually occur. These unrealistic expectations led them down some roads that didn't pan out for the things that they'd like to see.

Secondly, there was a level of commitment that was a little scattered. The level of commitment was too much or too little. On the "too much" side, there was a belief that OT was going to do stuff that it couldn't do on its own; on the "too little" side, there was a move to make all projects use OT when it wasn't used for very long.

We also have the issue of technological immaturity of OO tools and languages in that they haven't always been ready to perform at levels that we expect - Smalltalk being a perfect example. Smalltalk has come of age for server-side applications building because the tools have matured to provide the kinds of performance that we like to see as well as the APIs and template necessary to do complex calculations and business applications. Besides the tools, there's the infrastructure - having the right kinds of people, knowing where objects are to reside as well as how they will be used and reused - is something that has to grow within an organization. As we go through that, we increase the skills and the understanding of what OT really is and what it can do for the organization. Through that understanding, we can finally get over some of the hurdles that we've seen in the past.

Some of the things that still remain are things like the object-relational mapping that needs to go on between complex relational data and a complex object model. This is still unclear to many organizations. That mapping is going to have to improve over time.

We also have the issue of components - helping to gain the kinds of abstractions as well as to simplify the process of developing and maintaining applications that are growing increasingly complex in a networked world. So, OO components in a distributed world is something that is going to have to be dealt with. That is certainly a hurdle yet to come.

Mark

That leads me into the interest we've seen in the Internet and Java. Do you see dealing with this complexity as the main way that OT and Java will help companies capitalize on the Internet, Intranets, and even Extranets?

Daryl

The interesting thing about Java is that its acceptance in the industry is not necessarily centered around the fact that it's object-oriented. There's so much market hype surrounding Java that a lot of organizations are looking to it as the answer to many of their problems without even realizing that it is object-oriented. However, when you look at the platform that is Java - and we think of Java as more than just a language; it is more of a specification for a source language which has object-oriented capabilities which is more well-specified as an OO language than is C++. Java is simple and concise in its syntax and semantics for specifying business logic, as opposed to C++. So, we'll see Java affect the object-oriented world in a major fashion because it is almost purely object-oriented and it moves a step beyond C++ in that respect. I think, though, it is difficult to suggest that Java is going to solve many more problems than we have been able to solve with C++ or Smalltalk. However, the unprecedented rise of this language and platform's popularity is helping to drive organizations toward object-orientation in ways that we haven't seen them driven in the past. Many people are trying to get COBOL developers to go directly into the Java world. Once they get their people understanding OO concepts, they are finding that Java is a very good language and platform for supporting those concepts and it enables them to get to OT a little more easily. The companies that are looking to doing this on the Internet, Extranets, and Intranets are going to find that Java is going to be a large part of their world and in dealing with the complexity of this networked world. Increasingly, in this network computing style world, we will find that Java is tied through its language to a decent object model and that that object model is tied very closely to a component model - the JavaBeans specification. This will indeed help with the complexity, considering the fact that many organizations are finding Java a bit easier to deal with than they found Smalltalk in the past.

Mark

Why do you think that is?

Daryl

I think one of the reasons why that is is a better level of understanding of OO in the world. Another reason is the hype surrounding the language - it is certainly something that has been pushed. Add to that the excitement of the web which has been generated over the last two or three years in groups that were not traditionally OO in nature - in other words, Smalltalk was being used in groups that we would consider "Type A" companies; we like to say that "Type A" companies are ones that jump off the cliff and hope they survive the fall. They are the ones on the leading edge. They have been using languages like Smalltalk, but now the excitement of the web and the hype surrounding Java has pushed most every business into the consideration of this new OO tool. Smalltalk wasn't associated with that kind of excitement - that kind of fast-growing entity. Smalltalk didn't have that to support it. In addition, Smalltalk came at a time when OO was not well-understood by organizations. It's not that much better understood today, but it is certainly something that is much more visible and viewed as an acceptable technology.

Mark

So, you see the web focus in the last couple of years as being the biggest driving force to pull Java and therefore indirectly OT?

Daryl

Yes, indirectly OT has been pulled forward by Java and Java is a part of the major excitement going along with the web and the Internet. This is not the only reason why OT is still around - it is a very useful technology.

Mark

Where do you see Java today, as well as in two and five years down the road?

Daryl

Today, the real value of Java is in providing some degree of mobile code to a browser client. That being applets delivered though web browsers. That's something that can be done without fully understanding all of the implications of Java - its platform and OT. There are many tools out there to help organizations get there. They're experimenting with Java today and understanding how to deliver applets. The "Type A" companies are moving beyond applet experimentation into server experimentation - understanding how Java will play on the server side of the network. We believe it will be as important on the server side as it is in clients. We also talk about "peer" code - Java code that will operate across clients and servers and be mobile within a distributed architecture. So, if we at "today" we see that the Java client is key and building Java applets is the primary goal.

Two years from now, we're seeing Java becoming much more dominant for peer code. Using peer code requires certain middleware options and the organizational infrastructure to support code in many locations as opposed to the traditional tiers of the application architecture.

Finally, server code will appear in the two to five year timeframe. Server Java will become much more significant, where the building of complex business logic through an object model is going to be much more important. Not so much for building infrastructure-type software, such as lower-level systems software or the more high-performance middleware that is necessary. But certainly for the building of application logic - the primary means of stitching together a large, complex system is going to be something we expect to see.

Mark

Where do you see Java moving from what you call a "Type A" company to a "Type B" company?

Daryl

We are already moving from an applet to a server application with Java. The companies that are "Type B"s today could benefit greatly from using Java as a front-end technology to any back-end system. One of the things we see a lot of, and we expect to see "Type B"s using more, is the traditional client-server enterprise-class tool vendors - vendors such as Forte, Dynasty, or Progress Software. Using their traditional enterprise-class back-end and front-ending them with Java applets. Companies like Unified and Oracle have delivered this kind of functionality. Seeing these front-ends available for Java, we can take advantage of them to produce "self-service" applications - more complex ones than could be built with HTML. Self-service applications allow the user to do the job without needing help. This is an area where "Type B" companies could gain a great deal of value today. They're less likely to be looking at "servlets" - enterprise JavaBeans architecture on the server side. They're going to be less likely to be looking at the protocols that bypass the web server, such as IIOP and DCOM in the Microsoft world. But certainly "Type A" companies are getting into using those things today and are beginning to understand what the pitfalls are.

Mark

So, when do you see "Type B"s starting to use JavaBeans and perhaps even considering something like IIOP?

Daryl

Well, "Type B" companies, in contrast to the "Type A"s, "Type B" will look over the cliff and ask the question "Will I survive the fall if I jump?" What they're doing right now is looking at those technologies - they're looking at IIOP and beans. Expect "Type B"s to adopt beans as rapidly as the tools to support beans are available in the industry. The component idea is embraced by type "A"s and type "B"s. As far as the connection-based protocols - IIOP, RMI, DCOM - they're just looking at them right now and they're saying "well, how can we get the usage of these types of protocols without having to deal with the complexity of them?" Because coding of object references through IIOP is not as trivial as using HTTP with HTML. They're using HTML in web technology. What's going to likely help them get over the hurdle is the incorporation of these technologies in every suite of tools that's available. IIOP has already become available in the Netscape Communicator. It is being touted as the future of all applications that currently use some type of proprietary socket communications. By the way, proprietary socket communications are right now the dominant means of getting client to server communications to happen over the web for complex messaging. When you look at the tools being built, it is expected that organizations will adopt those technologies as they become more a part of the tools.

There is one hurdle they have to overcome that many of these organizations are not even familiar with yet: security mechanisms that have to be compromised within the user's organization because of these protocols. IIOP calls have to go through a firewall over a port and opening another port or sharing a port that's already open is something that security administrators are not happy about doing.

Mark

This world that you're portraying in the next few years - what part do you see C++, Smalltalk and other OO languages playing in the future?

Daryl

Smalltalk has snuck in and is being used by some organizations to build server side applications that have been successful for them, even though it hasn't had that much hype. It's likely to continue within a small niche of the industry, but certainly not as widespread as C++ or Java.

The interesting thing about C++ is that it's not going anywhere. We expect Java and C++ to be good companions. Java has difficulty with performance with the lower-level functionality that C++ has typically had - C++ can be used as a supplement to Java and is being used by anyone who is serious about creating a Java-based environment. C++ native modules linked to Java over the next few years is going to be very important. So, C++ is not going anywhere and will be used as-needed for more high-performance systems, more solid and reliable systems than Java is able to provide in the near term.

Another language that is overlooked a great deal and is being looked at in large measure by the vendor community is COBOL. There is a very large desire in the business community to have COBOL developers still be able to use COBOL to develop newer-style systems. This means COBOL needs to be updated for today's component world. It certainly needs to get more OO capabilities than it has today. And it needs to be incorporated into the plans of the major vendors - the IBMs, the Microsofts, and the Fortes. The vendors need to incorporate COBOL into their plans and I see a very large market for any vendor that steps up to the plate and turns COBOL into a "Java for the legacy developer", who's been very effective with COBOL in the past.

Mark

Switching gears slightly, you've hinted at some of the key choices that make companies successful using OT. Do you see some of these choices and the things that are going to be key to success changing in this world of Inter/Intra/Extranets?

Daryl

If we look at some of the choices, we said that one of key choices was the way they looked at OO - the kind of strategy for using and reusing objects. That strategy often included repositories for persistent objects. That also included the use of middleware options that filtered requests to object request brokers. This is beginning to show that OO can be extended to the entire architecture, as opposed to being just a language-specific issue. These are some of the choices that are being made by organizations that are being successful with OT.

Also, the idea that an OO environment was going to be a complete, abstract environment that modeled a user's behavior in the user's world has sort of been broken up by the component technology that I mentioned. This makes it easier to understand for a lot of organizations.

All three of those areas will be used within Inter/Intra/Extranets and with using Java. It will differ in that a lot of it will have to be more distributed. That's the key word with regards to network computing - that processes are distributed, people are distributed. Architectures will have to accommodate distribution. This means that the usage of some of the same things we've had in the past in OT will be useful again in the future. Repositories will become more robust and distributed across different areas as well as servers. The usage of components is growing by leaps and bounds and it is going to simplify the concepts of thinking about an OO environment in an abstract way. We're going to continue to improve in our organizations the ability to administer objects by using tools that are a lot more object-focused in their implementation. A perfect example is Microsoft's transaction server. When you consider that product, it pulls together the execution of objects, the plug in and execution of components, with the transaction idea, which is more than to provide business function. This tool now brings together those three areas in one tool to be able to manage complex applications. Without this tool, those applications would have been extremely difficult. That tool has grown from a desire of organizations to be able to take advantage of those three areas: the components, the objects, and the transactions.

Mark

So, what I'm hearing you say is that the world has always been and will continue to be a client-server world. The web is certainly putting a different spin on that, but nevertheless the needs of the customers out there are largely the same. It's a matter of when and how can they most easily build these more and more complicated systems. Along those lines, you've mentioned things such as Java, Smalltalk, and COBOL. Can you relate the VisualAge family of products to this discussion - how do they meet up to this challenge?

Daryl

The VisualAge line of products is certainly one that is well-respected in the industry and in many cases is driving a lot of people's excitement about some of these languages. VisualAge for Smalltalk has certainly become a defacto tool to look at, considering the decline of Smalltalk vendors in the market and the rise of IBM to some degree of language dominance has moved it to the forefront of tools that are going to be considered when you're talking about Smalltalk.

IBM has expanded the reach of languages through this VisualAge concept - the idea that they can share parts, they have generators that can be used across all these languages, and they share a certain "vision" from the company. I think that "vision" for the VisualAge line is one of the best advantages that it has. When you consider the other components to that - you've got VisualAge for Java, VisualAge for Smalltalk, BASIC, C++, COBOL - all the bases are covered. The thing that really gets me is this idea that third generation languages like these are still extremely important. IBM, being a company that has support for large-scale, big iron, transaction processing, and very good middleware options for gateway processing really brings credibility to some of the tools that might not otherwise have credibility in this vein. For instance, looking at VisualAge for COBOL - it is a tool that is providing more support for today's COBOL than we would've seen from other versions of COBOL. I think that's being carried through across all the VisualAge tools. They are saying "we are going to put our force behind it and we're going to update these languages to today's architectures, projects, and people." So, we're going to use code generators and visual wiring techniques from visual palettes to build applications. We're going to use these visual builders alongside a nice componentized architecture with the correct number of APIs and libraries to support it. That means that you can now select your tool and you won't have to reselect your architecture or your framework for using the tool. That's a useful thing for people looking to use languages across the suite of products that IBM offers.

VisualAge for Java has really entered the marketplace with a lot of fanfare. It immediately jumped up into the top three or four Java development tools to be evaluated by companies, along with its competitors like Cafe and VisualJ++. VisualAge for Java has been seen as a tool that's going to allow us to build the application quickly, but has one thing the others don't have as much of: the support of IBM. This pushes it into a larger framework. The San Francisco project is offering more vertical market templates for complex processing, as well as the integration of this product with their transactional middleware and the support of their component broker and web component technology. This pushes beyond just simple applet building and beyond simple wiring and visual building into an area where we expect to see a lot more growth - that being complex Java-based applications. So, across the board they have done a pretty good job with the VisualAge line of being able to say "we can push these languages into the future and make them usable with one another to get a lot of benefit.

Mark

Do you see all three of those pieces you mentioned before being met here? For example, IBM's support for CICS, RMI, JavaBeans, Distributed Smalltalk, and so on across this product family. Do you see that, along with the language support built into the tools, as meeting all three of those key pieces?

Daryl

Yes. Certainly IBM's support for network computing is as large as anyone else. Support for Java is very large and their direction is very much in that way. They're looking to provide distributed computing mechanisms across the board. Their support for middleware, components for middleware as well as for client side development is very very good across these tools. I expect to see them be a very large player in this area for quite some time. The use of these tools, along with methodologies, repository, and administrative mechanisms to help manage the complexity is something they've been focused on for quite some time.

Mark

Could you briefly mention how each of the VisualAge products compete in the marketplace, summarizing their greatest strengths and weaknesses?

Daryl

If you consider those tools' competitors in the marketplace, they are positioned differently depending on which language you're talking about.

VisualAge for Smalltalk is going to be positioned exceptionally well against the competition, as the other vendors of Smalltalk are beginning to fall by the wayside. If you're going to pick a Smalltalk, VisualAge for Smalltalk is becoming the defacto choice in the industry today. Its greatest strength is IBM pushing the infrastructure surrounding it and its place in the "vision". Its greatest weakness is that Smalltalk is a niche language in the industry today and not likely to expand further beyond that unless something changes. When you consider that, you've got the "best of the breed", but a breed that's not necessarily going to be the most important breed.

If you consider VisualAge for COBOL and VisualAge for BASIC, those products are not going to have the visibility in the market that you're going to find Microfocus COBOL or Microsoft Visual BASIC. Visual BASIC is the number one client-server development tool in the world, even though it's not really a client-server development tool, but it's got visibility and acceptability that VisualAge for BASIC will never have. Likewise, VisualAge for COBOL is in competion with Microfocus COBOL as well as a lot of legacy COBOL environments. Although it's got good acceptance in the marketplace, it's going to suffer from being sort of in the middle - not being a legacy COBOL, but not being the best COBOL in the world.

VisualAge for C++ - Microsoft C++ is very dominant in the marketplace today. VisualAge for C++ is going to have to compete with that, as the market for C++ had come down to Microsoft and Borland. IBM has an opportunity for VisualAge for C++ to fill some of the vacuum being left by the Borland products as they decline in the marketplace.

As I mentioned before, VisualAge for Java is one of the top three for evaluation. Its strengths being: its wiring technology and the use of components with IBM's commitment to 100% pure Java beans. Its challenges to come up with the kind of performance that is going to be necessary for Java applications to increase the existence of complex bean components in the world for building large applications, which really don't exist today.

Mark

Thanks Daryl. I appreciate your comments. I'm sure they'll be of value to our readers. Thanks again for your time.


Home Page