Just in case you don't know, I love Java. This month was a good month for loving Java. Some months, I have to confess, one does curse the little guy, but this month he was standing tall. Nothing of particular note happened in the media world, but it was something we did that made us sit back and be glad we chose this crazy Java world to try and make some pennies. But more on that later...I have a column to write.
How Are We All?
Are we doing well? I do hope so. It's springtime and the wee flowers are just rolling over from their winter nap, looking forward to a joyous summer. Isn't spring a wonderful time of year? We're coming out of winter and we can look back and see what riches the colder months have brought us, and have a guess at what the warmer months are going to be offering.
This column is the last roadstop of controversy on the superinformation highway. The purpose of this column is to make you think. I'm not out to change your views, or even push my opinions on you. What I write you probably won't agree with, and this is good. This stimulates the brain and gets people talking. I want to unite people and get us all talking about various different topics. 'Tis why I drop a little variance into the column every so often. I want to anger some of you. I want to hear your views on subjects and if I have to push your morality a little to do so, then so be it.
Each month, you fill my inbox with e-mail and this is wonderful. I love debating issues with you all and on the way I learn more about the type of reader who reads this column. Do you have any idea of the diversity of characters that pick up this journal? The one fact that amazes me is that you're not all Java developers. In fact, many of you have never coded a single line of Java in your lives and probably never will. So for a developer's journal this is good - means we're reaching a much wider audience.
I've had readers take this column to bed, much to the joy of their wives; I've had people reading on a plane; I even had a couple of people who read me while on the toilet (which for some strange reason makes me feel violated!). The diversity was there. But one person started me thinking of how to further unite these people. I was in deep dialog with one Miles Parker. Miles was putting forward some fantastic points and we thoroughly enjoyed debating the issues between us. But I was frustrated because I wanted some of my colleagues to be involved in this conversation as they would have had an awful lot to contribute.
It was then that I decided to create a mailing list dedicated to this column and the issues it brings up. I wish now to formally invite you all to join. It's not a spam list, and we don't abuse your e-mail address. It's just some good, clean conversation. To join, send an e-mail to [email protected] with subscribe straight_talking-l in the body of the e-mail. From there you'll get instructions on how to participate. I will no longer be debating issues on personal mail. If you have a point to raise, join the list and we can all talk around it. I look forward to "seeing" you there.
What Did Winter Bring Us?
The most notable addition to our lives was the official release of Java 2.0 just before Christmas. Along with Java 2.0 came a whole host of new APIs that finally made it out of the beta phase. The Servlet API got a major upgrade to version 2.1. The Java Communications API made it out into the wide world. The new Apple G3 platform was released, promising much for the support of Java natively. On the whole, not a bad winter.
Summertime plays host to JavaOne in San Francisco. I'm sure a number of new technologies will be released in that one special Java week. I'll be making my annual pilgrimage over the Atlantic to attend, and I hope to meet some of you there.
Speaking of San Francisco, I read the other week that it was voted the most connected Net-friendly city in the world, for the third or fourth year running. Please! Did that come as a big shock to anyone? I suspect not. San Francisco, or to be more precise the Bay area, plays host to the majority of the shakers and makers in our industry. It's like voting for the city with the best Empire State building! A bit pointless, methinks!
Love Is in the Details
I opened this month's rant with a paragraph hailing our love for the little guy. I guess I better explain why. Well, we're close to shipping our flagship product, n-formant. This is a Java application that monitors the performance of servers, alerting via phone/e-mail/fax should a problem arise. The Java application hosted a number of modules including a Web server that provided an intranet-style administration section controlled by a number of Java servlets. The application was quite a complex system, with a number of core technologies that allowed us to generate voice and fax calls. We bundled everything up into nice, small, maintainable JAR files.
Now, my first point of love is the JAR format. Aren't these just gifts from heaven? Much cleaner than DLLs and far easier to upgrade. Let me illustrate the foundation of our love with this problem. Our product, n-formant, ships as a complete hardware/software solution. As a company we made the decision to offer free upgrades. This meant we weren't supporting x different versions of the software. But it did give us a little headache on how we were going to ship the upgrades. Sure, the Web site would be utilized for this, but that would necessitate someone regularly checking the site for new versions. We figured that if anything needed upgrading, it would be one of the core JAR files we built.
So we built a generic automatic upgrade class that would periodically check a known site for a newer version and, if found, download and install it. Now the installation part was no more complicated than copying a single file. We would flag the administrator that a change was about to be made, and give them the change to yea or nay it. If the update was a small change or bug fix, then we could do this without alerting the client to the problem area.
A system that would update itself! A wonderful idea, and one we can't take full credit for. We got the idea when the RealPlayer software decided to throw up a dialog box on my desktop one day indicating that a newer version was available and would I like to upgrade. With a single click of a button it downloaded the necessary upgrade, did the upgrade and restored my session back to normal. I was impressed. I thought, What a wonderful way to update our software!
By packaging our software in a JAR file, we could easily download the small file and restart that part of the system to allow the virtual machine to reload the classes without having to shut down or restart the whole system. A perfect solution. So, to the person who came up with the JAR file format, we salute you.
My tip is thus: don't go packaging up the whole class tree into one big JAR file. Try to break it down into small, logical units. Of course, this all depends on the target application. If you're coding a small applet, then sure - I can see where one JAR file is good. But if you're doing large deployment applications, then have a wee think about the structure of your JARs before you start producing 1 MB size .JAR files.
Getting to Know You
As indicated earlier, I'm all for knowing more about you - more about the person who picks up this column to read. To this end, a number of months ago I developed a simple voting servlet for our Web site that collates your views on a number of issues. The first month, I asked: "Was Sun correct to rename Java 1.2 to Java 2.0?" The results for this one were rather interesting: 51% of the total votes said they were correct. So it was cut cleanly down the middle as to the move of version number. Each month a new poll goes live on the Web site (www.n-ary.com/consultancy/), so check back and let us know your views.
Another recent question was: "Do you still find Java applets to be slow in execution?" This proved to be a bit more decisive. At this writing 70% of the voters believe that applets are still slow to run. Which is surprising, really, considering the amount of work that has been done to improve this state. But at the end of the day, when you have a 450 MHz running an applet the speed of a 33 MHz machine running Windows 3.1, you have to sympathize with the masses. Java 2.0 hasn't really made any significant improvement on this. But more on Java 2.0 in next month's column, when I'll look at another aspect of Java that has made us thankful....
April Book Review
This month's book review comes to you with the letter "C" and the color pink - sorry, had a Sesame Street moment there. The book that has captivated me this month is Customers.com, penned by Patricia B. Seybold. This book looks at how the big companies have embraced the Web and how they have made it work for them. It is a good book for companies that are thinking about expanding their Net presence and discovering what they need to do to bring their customers closer. However, one of the problems with any Net presence is getting people to visit. Smaller companies simply don't have the brand recognition to pull in hordes of visitors to their site. Therefore, a significant amount of their marketing budgets have to be deployed to raise the profile of their URL. This is an area I feel a lot of analysts have missed when talking about the billions to be made on the Net with e-commerce. Sure, local traders can suddenly start trading on the Net without too much hassle, but they aren't going to see the sort of sales growth that has been evangelized without investing serious money in external brand marketing. Which sort of goes against the grain of the low overhead of the virtual shop.
The days of getting thousands of people to come to your site just because you have a Java applet running are long gone. Who remembers the early Yahoo submission forms, where they asked if you had Java running on your site? This was supposed to increase your rating within the Yahoo indexing system. Looking back at it now seems quite amusing.
One wonders what systems we have today that will provide a chortle in a few years. I think this is what we'll look at next month. So stay tuned....
About the Author
Alan Williamson is CEO of n-ary ltd. A Java consultancy company with offices in Scotland,
England and Australia, they specialize solely in Java at the server side. Alan is the author of two Java Servlet books and contributed to the 2.1 Servlet API. He can be reached at [email protected] (www.n-ary.com) and welcomes all suggestions and comments.