Coding By Numbers
Rambling about Java, Swing, JavaFX, Android and iPhone development
Rambling about Java, Swing, JavaFX, Android and iPhone development
Nov 5th
Since I’m effectively relaunching this blog, I thought I would close the loop on JavaFX, which was primarily why I started the blog in the first place. Since the news that Oracle was buying Sun, I’ve not been convinced about the future of JavaFX. In the last couple of months I’ve come to the conclusion that it doesn’t matter what Sun or Oracle does with JavaFX, it’s future as an RIA technology looks pretty bleak anyway. And it’s not alone. Adobe Flash and Microsoft Silverlight are in the path of the same train that is starting to build up a head of steam, namely the combination of HTML 5, CSS 3 and JavaScript. Let’s take a look at the evidence and see why I have jumped to this conclusion!
Two of the biggest proponents of the HTML 5 and associated standards are Google and Apple. Let’s start by looking at their recent behaviour.
About a year ago, Google launched their Chrome browser with the express intent of creating a platform to deliver HTML 5 applications. A few months ago, they announced Chrome OS, a lightweight operating system whose whole user interface appears to be web based. The next release of their Android operating system for mobile devices is also going to feature a HTML 5 browser. Apple have also been making sure that HTML 5 support is in all their products. Version 4 of their desktop Safari browser supports HTML 5 as does Safari on the iPhone. So they are both doing their utmost to ensure that people can use HTML 5.
Google has been re-encoding all the YouTube content in H.264 instead of Flash video. HTML 5 includes a <video> element which will eventually mean that webpages can include video without the need for additional plugins, like Flash Player for example. Apple’s iPhone has special support for YouTube so that the H.264 encoded content can be played, again avoiding the need for a Flash plugin. Apple’s steadfast refusal to allow Flash on to the iPhone is creating a headache for Adobe, as the iPhone becomes ever more popular and web developers are forced to provide Flash free sites (or at least Flash free alternatives) to avoid losing potentially lucrative audience.
The only thing slowing down the adoption of HTML 5 is bickering over the fine details. Everyone agrees that there should be a <video> tag, but no-one can agree which codec(s) should be supported in the standard, meaning that all browsers will have to include them. Most of the arguments are over potential patent claims but the three lead contenders are H.264 (an ITU-T standard), Flash Video (proprietary) and Theora (open source). As well as re-encoding YouTube content, Google has also been trying to buy On2, the company that owns the Flash Video codec (also used as the cross platform codec in JavaFX). Sounds to me like they are hedging their bets!
So two of the most successful technology companies of this millennium would appear to be set on a course to rid the web of Adobe Flash and replace it with standards based HTML 5. If they are making headway against Adobe Flash then the relative minnows of JavaFX and Silverlight stand no chance. Fortunately Sun/Oracle and Microsoft don’t have as much to lose as Adobe, who generate a significant income from Flash related authoring tools. In my humble opinion, they already ought to be thinking about how to leverage their well known and respected tool chain to produce HTML 5 based solutions. I figure that’s their best bet to keep their existing customer base if Flash use starts to decline.
Sadly the same cannot be said for Sun and JavaFX. If it isn’t going to be used for RIAs, what else can it be used for? There’s set top boxes of course, but many of them already use HTML under the hood and HTML 5 will probably do most of what they want. BluRay is another possibility, but you’ve got to figure that the days of physical media are numbered. I think the best bet for JavaFX is as a replacement for the Java language itself. It’s a modern language with some really nice features and would be a worthy competitor to the likes of Scala as the “new” Java. Here’s hoping!
Nov 4th
Originally posted on my personal blog.
Since the start of last week I have been using the beta release of IntelliJ IDEA Community Edition and I have to admit I’m really rather impressed. It hasn’t been completely plain sailing but I’m prepared to give it the benefit of the doubt given that it is still in beta and it’s only fair to expect a few hiccups along the way.
One of the things I like most about IDEA is it’s keyboard centric and code centric approach. To call it a glorified text editor is doing it a disservice, but the feeling I get when I’m using it takes me back to my first job using vi on HP-UX terminals to write software for telephony switches. I don’t mean that it’s primitive, far from it, just that it gets back to basics and puts the emphasis back on writing code.
And yet it provides a tremendous amount of support. The code insight and refactorings are excellent. The inspections help keep you on the straight and narrow as far as good coding practice goes. It’s Maven and version control support is top notch too. The biggest problem is remembering all the keyboard shortcuts in the mammoth keymap.
The distraction free, code and keyboard centric approach means that it also works very well on my 13″ MacBook screen, and for the first time I can remember, I’m actually enjoying coding with it’s limited screen real estate!
In fact the only thing I’m missing from NetBeans is auto closing a line when you enter a semicolon!
Will it sell more copies? I don’t know. As I said in my last post, there’s usually the best option and there’s the option that’s good enough. I think IntelliJ is probably the Apple of the Java IDE world, in that the attention to detail in IDEA is much better than Eclipse and NetBeans. But both those IDEs are good enough for the purposes of most developers. If IntelliJ ever make IDEA Ultimate Edition available for free then the others might be in serious trouble though.
If I were writing web apps every day, then I would definitely trial the Ultimate Edition and if the extra plugins are as good as the Community Edition, I would pay for it out of my own pocket, which is about as big an endorsement as I can give it! I’m also going to continue using it as my preferred Java IDE.
Having said all that I still doubt that this move will significantly increase it’s market. I hope I’m wrong, but in the current economic climate especially, people are going to be prepared to compromise!