This blog is about my observations and thoughts related to software development. These observations include tips and tricks that I have learned, solutions to problems I have faced, and other concepts I have found interesting and useful. This blog is intended to provide information to help other developers facing the same issues as well as providing me a method to document things in a well-known location for my own future reference.
In this blog post, I summarize and reference some recent software development blog posts that I have found to be particularly interesting. These cover subjects such as the future of Java, the need for developers to have database skills, locating Java class files used in an application, Java sorting algorithms, and anticipated new Java dynamic language support on the JVM.
Future of Java: 2010
Most of us have read countless articles and blogs predicting what the future holds for Java and for Java developers. The recent Oracle acquisition of Sun Microsystems has renewed and even increased the desire to know what's in store for Java. There are a couple recent online resources covering opinions of some Java community members regarding Java's future that are particularly interesting.
A Discussion with Josh Bloch on the Future of Java
A Discussion with Josh Bloch on the Future of Java features one of the best-known names in the world of Java. The author of Effective Java and a large portion of the Java Collections Framework approaches the future of Java from a very practical, enterprise-oriented approach. This Josh Long interview of Josh Bloch is a follow-up to a talk Bloch gave at RedHat Middleware 2020 virtual conference and which Long describes as a talk with "guarded optimism and concern about the future of the Java platform under Oracle's stewardship."
I appreciated that this Josh/Josh collaboration was candid (Bloch stated "several factors that have combined in the past few years to take the wind out of Java's sails" and stated one of these primary factors as "Sun's lack of support, leadership, and clarity has kept Java 7 from making perceptible progress"), had an insider perspective ("Sun allocated [few resources] to Java SE in the past few years"), was balanced ("none of these languages [JVM languages other than Java] make Tiobe's top 20. That doesn't mean they aren't important or valuable; they are. But they aren't mainstream, yet"), and was realistic about the future ("With the exception of CLR which is in-practice a Windows-only platform, there's no real alternative to the JVM on the horizon" and "I think there is some danger of a decline, but I'm counting on Oracle and the Java community to prevent it").
Java Platform Roundtable, Spring 2010
Two former JavaWorld editors (Jenni Aloi and Athen O'Shea) collect and organize the thoughts and opinions of "nine leading thinkers in the Java community" (Alex Miller, Neal Ford, Ted Neward, Rick Hightower, Andrew Glover, Steven Perry, Mik Kersten, Dan Allen, and Chris Mackie).
Like Bloch, the panelists in this roundtable mentioned that some of Java's biggest current problems are related to the Java Community Process and licensing issues. Panelists also express concern about the effect on Java-related open source projects. Panelist discussion also covers Java 7 and other aspects of Java's future with specific discussion on closures, modularity and Project Jigsaw, multiple languages on the JVM, Spring Framework, OpenJDK, Apache Harmony, and cloud computing.
What the Heck is Going on at Former Sun Microsystems?
Markus Karg is not nearly as optimistic about the future of Java as either Bloch's or the panelists' "subdued optimism." Karg writes about the numerous departures of long-term Sun employees from Oracle and writes this ominous statement: "In the long term, Oracle will merge every valuable asset (like Java) into a proprietary product, and exterminate the rest. ... Then, there will be only Oracle, but no Java anymore." For people who doubt this, Karg issues this challenge: "Let's meet again in five years if you doubt it."
Developers Still Need Database Skills
This blog post caught my attention because it resonates with my recent post Sqlphobia: The Irrational Fear of SQL. Some of the things that stood out to me regarding this post were its .NET perspective (my post was largely from a Java perspective), its focus on database architecture knowledge as well as the SQL language, and its realistic assessment ("Lets be frank here, no ORM will handle all of you query needs. At best we are talking 90%, sometimes only 80%, for a typical application. At some point you either have to go to the metal, or you end up coding things in a very strange way.").
As a side note, this same blog has a post called Say 'No' to 'Null' that made me think of my blog post Effective Java NullPointerException Handling.
Finding Out Where Your Class Files Are
Axel Rauschmayer's Finding Out Where Your Class Files Are succinctly describes how to use the JDK ProtectionDomain class to find out where the class definition file for a particular class was found. This was not new to me (I blogged about it previously), but I still liked the conciseness in which this handy tip was covered and I really enjoyed the feedback, especially the Artur Biesiadowski reply. That made me laugh because it is all too true. The original post is short and an easy read and the lengthier feedback from Artur Biesiadowski is humorous too.
17 Clean Implementations of Java Sorting Algorithms
I have not looked at or used the algorithms discussed in 17 Clean Implementations of Java Sorting Algorithms, but I do like the idea and think it could be a potentially valuable source of information for Java developers.
Dynamic Java Language Support on the Java Virtual Machine
This article has more detail on upcoming JVM support for dynamic languages than I really need. That being said, I find myself using dynamic languages (especially Groovy) increasingly and it is typically beneficial to know more details about the underlying support than what I need on the surface level. Even for Java developers who may not be using dynamic languages, this article has interesting details regarding Java byte code that could be beneficial to understand better.