<< Previous | Home

Firefox 3.5 Means Never Having To Say I'm Sorry (For My Video Format)

Have you 3.5-ed yet?

I installed Firefox 3.5 on my Windows boxes, but not on my Linux boxes because Mozilla.org does not offer 64-bit Linux builds. One of the features of Firefox 3.5 is the support of the Ogg Theora video file format, which is the format of all of the screencasts I posted on this blog.

I use Ogg Theora because it is the native encoding format of the recordMyDesktop screen capture utility for Gnome. Since this format was not natively supported on Windows or Max OS X, every time I post one of my screencasts/demos, I have to put in a disclaimer—"Linuxy format, download VLC to view".

Not any more! Now you can view it directly in Firefox 3.5:

(The video is from an old blog entry of mine showing JavaFX 1.0 playing Ogg Theora video files on Linux.)

Let the next round of the browser war begin!

The JVM Is Not The Center Of The Universe!

If you follow the Java blogs and tweets in the last couple of years, you've heard the argument that the Java vitual machine is where the value of the Java platform is, and Java the language is mrely one language among many languages that allows programmers to write frameworks, libraries, and applications for the JVM.

And according to the stories, the race, of the alternative JVM languages—including Groovy, Scala, JRuby, Jython, Clojure, and others—to become the Java.next is on, and Scala is winning it, if the Java Posse is to be believed.

It is therefore not surprising that in the latest episode of the podcast, JavaPosse #262: The Week Of Controversies, Dick Wall raised the point that Google is leveraging Java in a different way:

Dick Wall [7:39—8:59]: Google has invested a lot of effort into doing Java language centric work. So Android compiles Java to Dalvik executable format. GWT takes Java and compiles it to JavaScript where it runs in various browser environments. And Google App Engine takes Java source code and runs it on a targeted subset of Java SE, minus some features like threads, background processing, and some of the core classes.

So it seems like Google is centered on the Java language. Now this is my point: Of all the Java landscape right now, the Java language is the least interesting to me, important for sure. But honestly why are they centered on Java the language and not Java the platform or more importantly Java the community. That just seems like a crazy thing to be concentrated on.

Java at this point feels like a language which is going into maintenance mode. Why this Java obsession? I think they are missing the much much more important parts of the overall Java landscape, which is the Java platform and the Java community.

And I can't get why they are so focused on the language. It's like they don't seems to get the other parts of Java right now, the more important parts of Java.

A debate ensued both in the podcast and in the JavaPosse Google Group:

While I agree with Dick that the Java platform (by which I assume he means the JVM plus the APIs) is a compelling one to develop and deploy applications, I don't share his puzzlement about the way Google uses Java the language to target platforms other than the Java platform (Dalvik, DOM, GAE, etc.).

One reason Dick gave for paying less attention to Java the language is that large scale innovation seems to have stopped for Java the language. However, that could be a very good reason for teams like those inside Google to adopt the language. After looking at all the alternative languages I mentioned above, my sense is that Java is still the undisputed easy-to-grok, easy-to-write, easy-to-read, and easy-to-maintain language among them all. Given the resources Google has, it is natural for them to experiment with targeting Java the language on different platforms. The era of the thou shall not separate the language, the virtual machine and the API has long gone. And the irony is that that policy has severely limited the reach of Java, as I blogged 810 days ago.

I believe the general Java scene is too much intoxicated in the belief that The JVM's the One True Virtual Machine!. It may seem that way from some perspective. However the history of computing teaches us that there is no One True Thing. Eventually, some of the less mature VMs will catch up with the JVM. And two or three, or even four, of them will dominate the computing scene for some time. By then, the single VM languages will look silly. Groovy and Scala are particularly in danger. Python, with its Jython, IronPython, and python-parrot implementations will win the day.

I see Java the language jumping out of the JVM sea and reaching the land of the lesser known but equally promising runtime environment as a crucial step for the survival of Java.

In case you don't know, Java the language already runs on the .NET platform, as well as the native (amd64, sparc, etc.) platforms.

The JVM may seem to be the center of the universe to some. But it really isn't. And it's Achilles' Heel is the topic of another post. Stay tuned...

Tags :

Tuesday JavaFX Quiz: What Will It Print?

Inspired by the on-going discussion titled Indexing access for Lists and Maps considered harmful? on the coin-dev mailing list, in which the Java language designers are hashing out the true meaning of

map["a"] = map["b"] = "c";

under the List and Map access through array-like indexing proposal, here is a somewhat similar question asked of JavaFX Script sequences.

Q: Will the following program compile? Run without exceptions? And if so, what does it print?

var seq:Integer[];
seq[0] = seq[1] = 1024;
println(seq);

Lenient rules apply: no actual compiling for the first thirty minutes, but Googling, and consulting with books are allowed (and encouraged).

Tags :