August 23, 2010 5:09 PM
jaaloi 120000JEBE Visits (1575)
J. Steven Perry is a technology writer and software consultant who came to my attention a couple of years ago when he submitted a proposal for an introduction to Joda-Time, an open source date/time library for the Java platform. Since then, Steve and I have worked on several projects together, including the "Java platform roundtable, Spring 2010," to which he was a voluble (and valuable) contributor, and our recently published, and seriously needed, revamp of our "Introduction to Java programming" tutorial series.
Updating the tutorials turned out to be a bigger (and better) project than either Steve or I had anticipated, fueled by his enthusiasm for the technology and commitment to guiding developers new to Java technology through the fundamentals of Java programming:
Even with the long lag between formal updates, Java technology has evolved quite a bit over the past six years (the original tutorials were written back in 2004), so I thought I'd ask Steve about his experience of weeding through those changes and deciding which ones were most important to cover in the new tutorials.
JA: What would you say have been the most important changes to the technology since those tutorials were first published in 2004?
JSP: Generics would be at the top of my list. I loved templates in C++ and with the introduction of generics -- not true templates, I know -- I think the Java language made a quantum leap forward. My biggest gripe about using collections was code readability. When researching a problem, even in code I had written, it took time to figure out "What the heck does this List contain?" I'm all about code readability, so for me generics was a giant leap for Java technology.
Other language features like the compact loop syntax make coding more of a joy, as do typesafe enums and autoboxing and unboxing. I also have a personal interest in Java Management Extensions, so I was excited when support for JMX came out.
The biggest thing for me is that the Java language continues to evolve, which means there is a committed and still growing community and marketplace for it.
JA: What newer aspects of Java technology were you most excited to introduce to developers new to the Java platform?
JSP: Generics, for sure. I still run across code that doesn't use it. One thing that I stressed in writing the tutorial is that Eclipse by default flags the use of Java classes that are defined to be generic. I fix these when I find them (after I spend time figuring out how), and encourage developers just starting out to also get into that habit.
JA: Obviously, every article or tutorial comes with space limits; were there topics you really wished you could have covered, or that you hope readers will follow-up with on their own?
JSP: Absolutely. JMX is one of my favorites. It seems like management is always an afterthought in software projects. With support built right into the JDK, and commitment from the tools community and marketplace (Tomcat and Spring support JMX, among others), there's no reason not to plan management into a project. Nothing is cooler than being able to control an application while it's running, and users look at you like you're a genius when you build in management into their apps -- which is sad in a way, because it means they're not used to it. Also, I love Hibernate, but there are times when JDBC is just the way to go. I would have liked to cover some simple JDBC usage in the tutorials.
JA: You've mentioned elsewhere (in the "Java platform roundup, Spring 2010") that you see the paradigm of Java programming changing a lot in the current moment. How do you think those changes will affect developers just getting into Java programming now; or will they?
JSP: Speaking from my own experience as a software consultant, customers look to me to help them simplify the technology landscape, and I see myself as more of a systems integrator than a software developer. Rather than doing everything by hand (as I might have done even in 2004) today I write a lot of glue code to get various pre-written, usually open source components talking to one another. Based on that I see this industry evolving in a direction where there are more and more "plumbers" (like me) and fewer "manufacturers" (like open source projects). When there is a problem with my plumbing I don't call the company that made the pipe, I call a plumber.
That's it from Steve for now, but keep an eye out for upcoming projects from him. In the meantime, if you're curious about the result of the update, or simply want a refresher, take a look and let us know what you think. You may also want to visit (or revisit) the lively "Java platform roundtable, Spring 2010," where Steve and other dW contributors discuss factors redefining the Java industry today.
Thanks to Athen O'Shea for his assistance with this post.
Disclaimer: The content of this blog is my opinion and does not represent the opinions or strategies of IBM.