John Zukowski is a writer and developer specializing in Java and related Web technologies. He has used Java and written about it right from the very beginning. He is the author of several books on Java and has written over 200 articles on Java related subjects. He was part of the Expert group for JSR 176: J2SE 5.0 (Tiger) Release.
In this interview, John speaks about how the Java language has evolved over the past 10 years. He tells us what he likes in J2SE 5 and about the future of Java in the mobile world. John recently published a book on Swing and he shares his thought about Swing GUI and compares Swing with alternative GUI technologies.
IndicThreads >> Hi John. It’s a pleasure to have you on IndicThreads. A quick word about yourself?
John Zukowski >> My professional tech life started on VAX/VMS systems, doing FORTRAN programming and working with a database system called System 1032. I switched over to Sun’s when they had a 3/50 model, doing C coding with Open Windows and Motif. On the home front, the first computer I remember having was a Commodore Vic 20, before moving on to a Commodore 64. Went to PCs instead of moving on to an Amiga.
doing FORTRAN programming…
IndicThreads >> You have been using Java and writing about it for almost a decade. So how would you say has Java evolved over the years? If Java was a baby 10 years back, what is it today? Teenager/ youngster / middle aged/ old ?
John Zukowski >> Java has grown up a lot since the early days. I started teaching Java for Sun before 1.0 and you could cover the whole “platform” in under a week. If I remember correctly, the source for the core Java libraries fit on a low density 720K floppy, which is now at 18 MB zipped with JDK 5.0, for the
standard edition alone.
which is now at 18 MB zipped...
I’d say Java is at least a teenager with 5.0, maybe a little older. Not close to middle aged. Given the latest language changes and concurrency libraries in 5.0, it is definitely more mature than its earlier days.
IndicThreads >> What would you say have been the key changes in terms of the language and its application?
John Zukowski >> The obvious key change is generics. I’m still mostly in a 1.4 world in the development I’m doing so I haven’t had the privilege of using them much. For some cases, I think their usage improves on the readability and maintainability of code. Of course, that isn’t always the case. I really like the for-each loop.
IndicThreads >> You were part of the Expert group for JSR 176: J2SE 5.0 (Tiger) Release. What are your favorite additions to J2SE 5.0? Are you happy with developer acceptance of the new Java version?
John Zukowski >> Probably my favorite addition is the concurrency libraries. It really brings a new level of standard development to the platform. No longer do you have to grab Doug Lea’s libraries if you feel the need to go beyond the original basic synchronization constructs.
I’ve always tried to avoid having to add third-party libraries where possible, though in some cases like with some of the Jakarta Commons it is necessary. Of course, things like Logging and Thread Pooling are now standard, for 5.0 at least, so Commons bits aren’t as necessary.
“Probably my favorite addition to J2SE 5.0, is the concurrency libraries….
IndicThreads >> Java GUIs were the rage when Java first appeared on the scene. Java GUIs then fizzled out and J2EE took over. However we are now again seeing growing interest in Java GUIs. What do you think is the reason behind this? Has something changed with the technology or is it just people who are now using and applying it differently?
John Zukowski >> I see three main reasons why there is more interest in Java GUIs.
- First, the Java Runtime / Plugin is practically ubiquitous. And for the rare times a user doesn’t have it, there’s the second reason,
- Most people have access to high-speed connections to get it.
- And of course the last reason, graphical interfaces are better than web interfaces.
Life shouldn’t just be spent in a browser. Sure, you’re still accessing content across the Internet in both cases. But the Swing-based GUI will be more usable.
IndicThreads >> You recently published a new book on Swing named The Definitive Guide to Java Swing, Third Edition. What aspects of Swing do you give most emphasis on and think are most useful?
John Zukowski >> I finally caved in with this book and covered the non-Swing based layout managers. With earlier editions, I had a basic rule that if it wasn’t in javax.swing package, it wasn’t covered. That meant that new GUI developers had to look elsewhere for information on FlowLayout, BorderLayout, and my favorite the GridBagLayout. Sounds simple, but it really helps if you get a good grasp on something this low level.
I also spend a good amount of time on the different aspects of event handling with the Swing components. Since the book wasn’t updated for 1.4, the focus management section is new in the latest edition. Drag and drop has gotten so much simpler, too.
IndicThreads >> How does one decide whether the GUI should be HTML/ DHTML / Swing / Flash …?
John Zukowski >> Depends on size of project. Most of the Swing things I’ve worked with were too large scale for something like HTML/DHTML or Flash. Sure, Flash has a purpose for apps with simpler transitions and Google does amazing things on the web front. I just can’t imagine doing something like Outlook or Microsoft Word with something like Flash or HTML.
Microsoft Word with something like Flash or HTML….
IndicThreads >> And when should one definitely stay away from a Java GUI?
John Zukowski >> Swing doesn’t work well when you need to run it on a headless box. 🙂 Definitely stay away there. More seriously though, I might avoid it for prototypes. A graphical designer can throw together a Flash prototype pretty quickly. Once they get the app to look and transition right, they can pass the project off to a developer type person.
IndicThreads >> There’s lately been a lot of hype around AJAX and there have been claims that it will revolutionize all GUIs. What do you think is AJAX’s potential and what could be its effect on Java GUIs?
John Zukowski >> I seem to have avoided that controversy, so far. If you don’t mind living in a browser, it seems to have its purpose.
“If you don’t mind living in a browser, it (AJAX) seems to have its purpose…
IndicThreads >> Mobile applications have added a whole new dimension to Java GUIs. Do you think the next few years will be dominated by Java GUIs on mobile devices?
John Zukowski >> Absolutely. JSR 209 (Advanced Graphics and User Interface Optional Package for the J2ME Platform) even brings Swing to the phone. Great development platform to be on. I’ve been working in this area for a few years now with SavaJe Technologies. Love it.
“JSR 209 is a great development platform to be on
and it even brings Swing to the phone…
IndicThreads >> Some pundits feel that the future of the Java language itself lies in the mobile world. Do you agree?
John Zukowski >> Language, no. Platform, yes. But then, it depends on how you count things. In sheer numbers, the number of mobile Java devices will far exceed all the desktop and enterprise systems out there, if it doesn’t already. There is also all the embedded Java, too. Maybe I’ve just been in the “small” world
of J2ME too much lately. Think of the sales volume for the right app.
“The future of the Java platform lies in the mobile world…
IndicThreads >> Java recently became 10 years old. Any predictions on where Java will be in another 5 and 10 years ?
John Zukowski >> Well, we have had Java toasters for some time now. I’d like to see it become more popular as a mainstream language, where you don’t have to be a serious programmer as much. Sun seems to be trying, but VB still seems like an easier thing to pick up for the newbie.
“I’d like to see Java become more popular as a mainstream language…
IndicThreads >> Thanks John. We look forward to reading your new book. Your blog / email that readers can use to stay in touch?
John Zukowski >> No blog for me. Email is jaz aT zukowski doT net. Please note that this isn’t supposed to be used as a free tech support line.
<< (John’s dog Jaeger, who has featured in several of his books, says good bye!)