Get the latest Java books
h t t p : / /w w w . j a v a c o f f e e b r e a k . c o m /
Looking for Java resources? Check out the Java Coffee Break directory!
Qusay H. Mahmoud
Qusay H. Mahmoud lives in Ottawa, Canada. He provides Java and WAP consulting and training services through JavaCourses.com. Qusay is the author of Distributed Programming in Java, and has published dozens of articles on Java. Two of his most recent articles are: WAP for Java Developers (JavaWorld, June 2000), and Writing Jini Services (Software Development Magazine, August 2000).
Qusay also comoderates the Java in the Enterprise discussion forum for JavaWorld and ITWorld. In this exclusive interview, he talks to us about the distributed computing, networking, and wireless communication using Java.
Q: What do you see has been the biggest change affecting the Java community in the last year?
A: Over the last year or so there has been a number of changes affecting the Java community. The Java Enterprise Edition (J2EE) is probably the biggest change where more Java is being used for Enterprise Applications.
The Java Micro Edition (J2ME) is going to play an important role in the next while. Another technology to watch for is Jini (a connection technology) that will enable all types of electronic devices to work together in a community put together with "free administration" -- no dervice drivers, no operating system issues, and no weird cables.
Q: What do you see as the main advantages of Java, compared to other languages like C++?
A: Both C++ and Java are object-oriented languages. However, in C++ (unlike Java) OO is not really enforced. C++ is really a hybrid language meaning that it can be used as a procedural better-C language or as an OO language. On the other hand Java is truly OO language and OO features are enforced when programming in Java.
Also in Java there are certain things that a programmer doesn't have to worry about including: memory management and dangling pointers. Being architectural-neutral and platform-independent though doesn't come for free: Java is slower than C++ but lately we have been seeing much increased performance and performance is not an issue with Java anymore.
Q: What's your opinion of the networking support of Java? Are there areas that you feel need improvement?
A: I LOVE the networking support that Java offers. This may include the java.net.*, java.rmi.*, and java.lang.Thread packages. Developing network applications in Java is seamless. I don't know of any other programming language that makes network programming any easier. Even low-level sockets programming is so damn easy in Java!
The area I would like to see improved is security. The security model supported in Java is unique and I personally don't know of any other programming language that has this kind of security model. The security model in earlier release of Java (JDK1.0 and 1.1) was crude but it has evolved in JDK1.2 and 1.3 but unfortunately it is getting complex!
Q: What's your opinion of emerging networking and distributed computing technologies, like Sun's Jini? Do you think Jini will live up to its hype, or will we see it superceded by other technologies?
A: Jini is an awesome technology. I do believe that it will live up to its hype. However, I also believe that it will end up being used for applications we never thought of and for things it wasn't designed for. But I think that is OK. Distributed Events and Transactions are features that can be very useful for e-commerce and event-driven applications.
Q: One of the topics your book, "Distributed Programming with Java", covered was mobile agency. I'm particularly interested in the topic of software agents myself, and was quite surprised to find coverage on this often neglected topic. Do you think we'll see mobile agents used extensively in the next few years, or is it just a passing fad?
A: Mobile agent technology has been under development for a number of years. However, it was only in late '96 that some useful mobile agent systems appeared. Java (with its architectural neutral feature) has made mobile agency a reality. I believe that software agents are going to play an important role in the very near future -- we will start seeing agents everywhere. Not only in e-commerce applications but also in wireless data networks and push technology as well.
Q: The Common Object Request Broker Architecture (CORBA) is a popular mechanism for communicating and implementing distributed systems. I noticed in your book that you chose to cover a third party ORB, and not the Java 2 ORB that Sun Microsystems ships. Why was that, and do you perceive problems with the ORB that Sun offers?
A: The reason I used a third party ORB (VisiBroker for Java) is mainly
Q: Looking to the future, where do you see Java heading? Is there a particularly dominant technology (e.g. J2EE, CORBA, Jini) that you feel will change the way we look at Java?
A: In the future we will see Java everywhere -- Jini-enabled consumer devices, Java-enabled cell phones. But I don't think one particular technology will change the direction of Java.
Personally, I am interested in using Java in developing wireless software for WAP-enabled as well as Java-enabled cell phones. Welcome to the Wireless Internet!
Q: Wireless devices that are Internet ready are predicted to be a hot growth area. Will we see Java-powered web services, blending WAP & servlets, or will we see Java code executing inside WAP devices?
That is a good question. There is no doubt that Java will play an important role in the wireless market. Developing wireless applications can be done using either browser-based environments as in the case of WAP-enabled devices (and this is the technology being used today). However, if wireless devices are Java-enabled then we can write more sophisticated and useful applications, and we can achieve cross-platform compatibility by writing our applications according to the CLDC and MIDP profile specifications. I expect to see some commercially available Java-enabled cell phones by the first quarter of 2001. Nokia is having a Java-enabled phone coming out next year.
Thank you, Qusay, for this intriguing look into Java distributed computing. Readers who would like to learn more will find "Distributed Programming with Java", by Qusay Mahmoud, an excellent start.