Friday, December 26, 2008

Significant Software Development Developments of 2008

At about this time last year, I posted my personal perspective on the top ten software development happenings of 2007. This blog post will be a similar effort for the year 2008. I make no effort to highlight the overall most important happenings of 2008 in the software development world, but instead highlight the software development happenings of 2008 that have been most significant for me so far. In some cases, I will be stretching the concept of an individual occurrence by grouping together highly related events under a single category for my top ten.


10. Release of JavaFX 1.0 SDK (4 December 2008)

After being rather disappointed (I wasn't the only one) when first trying to generate a JavaFX Hello, World type example shortly after the 2007 JavaOne announcement and after not particularly liking the idea of the new syntax associated with JavaFX Script, I have not put significant effort into learning JavaFX since then. The 2008 JavaOne conference re-emphasized JavaFX, but it is the actual release of the JavaFX 1.0 SDK (early December 2008) that is the JavaFX event of the year.

This particular event is a little different from the others in this blog post because it is one that I have not directly been associated with. However, the majority of my work is in Java-based development and with the primary steward of Java (Sun) betting the farm on JavaFX, it certainly has potential to impact me in the future. That being said, I am not confident enough in its future to bet my house on it or even my career on it. I felt a little burned by the too-early release at 2007 JavaOne and will be more cautious in spending additional time on it. On the other hand, there are some good things being said about it and Sun has put considerable resources into it, so I am not ruling it out in the future either.

It is almost certain that 2009 JavaOne will be JavaFX-heavy as were the two previous editions of JavaOne. The more interesting editions of JavaOne will be in 2010 and 2011. By the time those events are held (especially 2011 JavaOne), we should all have a pretty good idea if JavaFX was worth the gamble or if JavaFX was too little too late and should never have had so much investment.

For now, though, the long-awaited release of JavaFX 1.0 SDK makes my top ten events of 2008 because of its potential and because of the impacts (both good and bad) it has on the rest of Java (especially Swing).


9. Second Edition of Effective Java (May 2008)

The second edition of this Java classic is updated to cover J2SE 5 and Java SE 6 concepts and even has some older items refreshed to reflect current state-of-the-art thinking in Java programming. The release of this second edition came seven years after the first edition and was released at 2008 JavaOne.


8. Consolidation and the Clash of the Titans (16 January 2008)

You don't need to wait until 2010 to see the remake of the 1981 movie The Clash of the Titans because we have our own real-world clash of the titans going on already. Oracle's long-rumored acquisition of BEA was somewhat obscured by the same-day Sun announcement of its acquisition of MySQL. It doesn't take an MBA degree to see that Sun's acquisition of a high-profile database product enables it to better challenge Oracle or that Oracle's acquisition of BEA and its application server and ESB products helps Oracle compete more successfully with Sun and others (IBM) in the enterprise Java world.

Other examples of consolidation include SpringSource's acquisition of G2One.


7. General Java SE 7 News (mid-December 2008)

It would have been a higher-ranking event in 2008 had Java SE 7 itself been released, but even getting new and more definitive information on what is expected to be in and not be included in Java SE 7 has been significant enough to justify making this list. We have still not seen the Java Specification Request (JSR) for the overarching Java SE 7 (though many JSRs exist for likely constituents that will make up the Java SE 7 advancements). The overall JSR is expected in early 2009 and Java SE 7 itself is expected to be released in early 2010. Although the release of Java SE 7 is still over a year away, the announcements of what won't be included in it (especially closures) has already been controversial.


6. Improvements for Flex Developers (December 2008)

2008 saw several improvements for Flex developers. One improvement, the availability of Flash Player 10 for 64-bit Linux (16 December 2008), is a benefit for OpenLaszlo as well (when the target runtime is Flash). Another significant improvement, the announcement and release of 1.0.0 Milestone 1 of the Spring BlazeDS Integration project (8 December 2008), also demonstrated the significance of Flex in the Java development world. It is not surprising that this was a big deal for me because the announcement and release of BlazeDS itself was #8 in my count-down last year.

I mentioned Flash Player 10 for 64-bit Linux above. In fact, the release of the Flash Player 10 itself for Windows, Linux, and Macintosh is a major event for Flex developers because Flash 10 has many new and exciting features for Flex developers to exploit.


5. JMX 2.0 News and Real Code (last half of 2008)

While Java SE 7 as a whole struggled a bit in 2008 (see item #7 above), the likely-to-be-included-in-Java-SE-7 JMX 2 (JSR 255) work was the subject of many positive announcements in 2008. Eamonn McManus's blog post Playing with the JMX 2.0 API (6 August 2008) was just one of several he posted on new ready-to-be-evaluated features of JMX 2. Other interesting entries related to JMX 2 posted by Eamonn included JMX Namespaces Now Available in Java SE 7 and a blog posting on the Event Service. Like the overall Java SE 7 itself, some features had to be dropped from the JMX 2.0 API as well. I also posted some blog entries regarding JMX 2: Querying in JMX 2.0 and Playing with JMX 2.0 Annotations.

Besides JSR 255, another significant JMX-related JSR likely to be included with Java SE 7 is the JMX Web Services Connector (JSR 262). I posted three blog entries on using the JMX Web Services Connector: A First Look at the JMX Web Services Connector, A Second Look at the JMX Web Services Connector, and A Third Look at the JMX Web Services Connector.


4. Developments in OpenLaszlo Runtimes Support (30 June 2008 and 20 December 2008)

One of the most attractive features of OpenLaszlo its ability to have source code compiled into varying target runtime formats. In 2008, OpenLaszlo 4.1 was announced and released. This was significant because this was the first release in which the DHTML runtime support was out of beta. OpenLaszlo 4.2 was just released a few days ago in time for the end of the year and in time to help earn this spot in my top ten. This version of OpenLaszlo is noteworthy for its support of the Flash 9 (SWF9) runtime. OpenLaszlo now supports SWF7, SWF8, SWF9 and DHTML. It was announced in 2008 that OpenLaszlo has been downloaded over one-half million times.


3. ECMAScript Harmony (August 2008)

Many of us who looked forward to a dramatically improved ECMAScript 4 were disappointed to here that the two major sides of the disagreement could not come to agreement on how to get to that point. Rather than having this impasse prevent further progress on ECMAScript, the two sides agreed to what has been coined ECMAScript Harmony. The positive news here is that some progress can be made for future implementations of ECMAScript (JavaScript, JScript, ActionScript, etc.) to come together. The disappointing part is that ECMAScript could have been so much more (witness ActionScript 3).

Either way, this is major news for the web development community. The major browsers have slowly been converging to support standard JavaScript/ECMAScript and DOM across browers and this may be one more step in that direction.


2. Flex 3, AIR 1.0 and Open Sourcing of Flex and AIR (25 February 2008 and )

In last year's assessment of the top ten most significant software development events of 2008 (again admittedly only applicable to my own perspective), the top event that I appreciated in 2007 was Adobe's announcing the open sourcing of Flex. In 2008, Flex 3 was released under an open source license at the same time that Adobe Integrated Runtime (AIR) 1.0 (25 February 2008) was released. An updated release of AIR, AIR 1.5 (Cosmo), was released this year as well (17 November 2008).

If the releases of Flex 3 and AIR 1.0 as open source products had not been enough to justify this high ranking, another factor to consider is that Adobe also announced the OpenScreen Project (1 May 2008). This project relaxes the previous constraints associated with the Flash Player such as removing license fees for future Flash Players and AIR runtimes on devices and opening many of the standards upon which the Flash Player is based.


1. Significant Updates to Java SE 6

While we did not get Java SE 7 in 2008 (not even an umbrella JSR), there were some really nice advances made in the Sun Java 6 SDK and JRE. These significant improvements made the minor releases associated with them more significant than what we usually associate with minor releases.

Of specific interest to me were Update 7 (VisualVM), Update 10 (Next Generation Plugin/Applet, Nimbus LNF, better deployment and performance, and more), and Update 11 (JavaFX released simultaneously).

VisualVM is a tool that I believe is underused by many Java developers who are using the Sun JVM. The other advancements mentioned above are long overdue in the Java client side.




Honorable Mention

The remainder of the developments listed here did not make my top ten for 2008, but carry enough significance to be worth a mention.


Silverlight 2.0 Released (October 2008)

At this point, JavaFX is trying to catch up with Flash and Silverlight, so it seems only fair that the release of Silverlight 2.0 at least earn honorable mention. Frankly, this would likely be in the top ten for the year if I used Silverlight at all. However, I focus on Flex and Java and so cannot rank Silverlight 2.0's release in my top ten.


Google Web Toolkit 1.5 Released (28 August 2008)

The release of Google Web Toolkit (GWT) 1.5 was significant because it addressed hundreds of bugs and requests and added J2SE 5 support.


Google Chrome (2 September 2008)

Google's release of its own web browser, Chrome, created quite a stir in the blogosphere. The long-term impact of this is yet to be determined, but I have been concerned since the announcement about potential detrimental effects on my favorite web browser, Firefox 3. Chrome could contribute to the declining market share of the still-dominant Microsoft Internet Explorer or could mostly siphon support from the non-IE browsers. While the announcement of Chrome was exciting and I have found it to be a useful browser with some desirable characteristics, there are still some questions about its long-term impact.


Microsoft Office Open XML (OOXML) Standardized (1 April 2008)

In last year's countdown, the rejection of OOXML was listed in the honorable mention section as a major event of 2007. With this in mind, it is only fitting that its subsequent acceptance as an ISO standard in 2008 would make this year's honorable mention.


⇒ Continually Improving Java IDEs

The year of 2008 saw significant improvements to the major Java IDEs. NetBeans 6.1 (28 April 2008), NetBeans 6.5 (19 November 2008), JDeveloper 11g (7 October 2008), Eclipse 3.4/Ganymede (25 June 2008), and IntelliJ IDEA 8.0 (November 2008) were all released in 2008 and all provide significant new functionality and support, making Java and related development easier than ever.


⇒ Dynamic Languages on the JVM

The acquisition of G2One by SpringSource mentioned earlier is evidence of the rising popularity of dynamic languages (such as Groovy) on the Java Virtual Machine. JRuby 1.1 was released on 5 April 2008 followed by several point releases later in the year: 1.1.1 (28 April 2008), 1.1.2 (27 May 2008), 1.1.3 (19 July 2008), 1.1.4 (28 August 2008), 1.1.5 (3 November 2008), 1.1.6 (17 December 2008).

Other common dynamic languages used on the JVM include Jython and Rhino. The JavaWorld article Year in Review: Java in 2008 - What Just Happened? looks at this in more detail.


⇒ Scala

Scala seems to be one of the big winners in 2008. It is particularly difficult to put a single event or date on Scala's popularity rising, but it seems one can hardly go a day without seeing multiple feedback comments on various blogs stating that Scala would handle whatever issue or problem was being discussed on that blog post with ease. There are also many IDEs and other tools adopting Scala and Scala has some well-known software developers in its camp. Scala will need a couple more good years like 2008 to move into the league of Java, C++, C#, and the other major league programming languages (in terms of users), but it certainly seems to have the momentum to do so right now.


⇒ Merger of Ruby Frameworks Merb and Ruby on Rails (23 December 2008)

UPDATE (19 January 2009): This item, the merger of Ruby-based web frameworks Ruby on Rails and Merb, has been added since the original post.

The announced merger of the two most significant Ruby-based web frameworks, Merb and Ruby on Rails, is certainly noteworthy, especially in the Ruby community. This merger in many ways is to the Ruby community what the Struts/WebWork merger was to the Java community, but arguably has an even larger impact on Ruby-based web development than that decision had on Java-based web development.


Conclusion

It is likely a rare event for two software developers to come up with the same list of most significant events in a given year. I don't expect anyone else's list to match mine, but I hope that this blog post will be a reminder of how much happens in one year and how much happened in particular in 2008.

This list also clearly shows my biases towards things affecting Rich Internet Applications in conjunction with Enterprise development using Java EE. Someone more familiar with the .NET technologies or with mobile/devices would likely have lists closely reflecting those areas of development.

2 comments:

James Iry said...

IMHO Scala deserves more than an honorable mention - if for no other reason than what it indicates regarding larger trends. F# is getting no small amount of attention and books about Haskell and Scala are finalists in this year's Jolt awards. http://lambda-the-ultimate.org/node/3134

The larger trends are two-fold: 1) functional programming is on everybody's radar (see also Clojure and Erlang) and 2) people are beginning to see that static typing doesn't necessarily mean verbosity - the engineering trade-offs between static and dynamic typing can finally be discussed without bogging down in Java's baroque way of expressing typeful programming.

@DustinMarx said...

James,

I appreciate the feedback. I think you make a nice case for Scala or, perhaps more accurately, for the larger trends you mention. In fact, had I been able to articulate those trends as you did, I may have included the category/trends in the top ten.

Either way, I suspect that if Scala's popularity continues to grow as it did in 2008, there will be no question about it being a top ten development of 2009 in its own right.