I was introduced to Java in the Fall of 1995 when most of the industry viewed Java as a language to be used for developing applets. At the time, several colleagues of mine were looking at Java with great excitement but not as an applet development platform. These were developers working to bring distributed computing solutions to the average corporate IS organization. Unfortunately, things were not going well. It was painfully obvious that distributed computing was just too difficult, and much of that difficulty revolved around development of business logic in C or C++. Java offered the promise of a development language that was easier to learn than C or C++ yet robust enough to be used for complex business applications. Today, that same group of developers that introduced me to Java is still developing distributed applications; however, they are a lot more optimistic about the future of distributed computing. Java is proving to be an outstanding language for business rules development in distributed systems.
The typical IS organization is not in a position to develop multi-tier applications that require significant expertise with C or C++. Given the current shortage of developers, most organizations are looking to train existing employees in the latest technologies. From this perspective, Java is a much better choice for large organizations as it is easier to learn than C. That does not make it simple. As most of us know, you still need a background in object-oriented principles to be successful with Java. There has been much talk of how easily C developers pick up Java. As someone who has been there, I can say that client/server developers skilled in PowerBuilder or Visual Basic can also overcome the Java learning curve in record time.
Performance is a common concern when considering the use of Java for middle-tier business logic. Those of us who have been promoting the use of Java over the past 24 months are relieved to see legitimate progress in the area of JVM performance. In particular, there have been some interesting benchmarks showing Just-In-Time compilers performing comparable to C++. I would recommend taking a look at some of the more recent benchmarks, which provide concrete evidence that the performance argument against Java is weakening. Some of the greatest challenges in distributed development are integration issues. This involves making disparate software such as databases, middleware and legacy applications all work together and communicate with one another. While C is still a sound choice in this regard, Java is rapidly gaining ground as all software vendors work on some type of Java integration. Java APIs provide the same type of integration that C developers enjoy when integrating application logic with third party products. Where Java APIs are not available, the Java Native Interface provides an alternative for leveraging C APIs from within Java code.
Finally, there is Java's promise of platform independence. I say promise because we are still seeing numerous inconsistencies across JVMs. Java's "write once, run anywhere" message is much more relevant on the server than it is on the clients. Anyone who has been involved in the development of a distributed application knows that you can encounter significant problems when attempting to migrate code from one server operating system to another. The ability to run Java classes on any platform's JVM will greatly reduce the aggravation that exists when integrating products within a distributed application.
Distributed computing must become accessible to the average developer if it is to achieve widespread success. The emergence of Web development and e-commerce adds a sense of urgency to the distributed computing problem. Java stands the best chance of being the answer to this problem largely due to the industry-wide support it enjoys. With recent estimates indicating the number of Java developers at 750,000 with 1,000 new developers being added daily, it seems unlikely that such momentum can be stopped.
About the Author
Tom Flynn is the Product Marketing Manager for Greenbrier & Russel. He spends much of his time working on the technical marketing aspects of Greenbrier & Russel's Java application server, Jamaica. Tom can be reached at [email protected]