Do We Need a JVM Based Web Browser?
‘Is It Time For a JVM Based Web Browser?’ according to Axel Rauschmayer, the answer is a resounding yes. Rauschmayer sees the world of the app developer as being split into two potential platforms: The Java Virtual Machine (JVM) and the web browser.
Both excel in different areas. The JVM supports many languages,
there is a rich ecosystem of JVM-compliant tools, and it supports
the OSGi framework and other module systems. Meanwhile, apps
developed for the browser can be tested without the user having to
download anything – which has a definite appeal for the user.
Application states can also be easily cloned using tabs, and
different data streams can be integrated.
Both have different strengths and weaknesses, but Rauschmayer proposes that these needn’t be the case:
what about building a browser on the JVM? “It seems like a missed
opportunity for the JVM that all major browsers now have JITs for
browser as being modular and extensible; what he calls “a new kind
of web/desktop application hybrid.”
He proposes combining the JVM/browser hybrid with the JWebPane
component, which provides basic web page browsing functionality,
renders web pages and provides basic user interaction. He suggests
using the JWebPane component to port Webkit to the Java2D API,
which would bring advanced 2D graphics and imaging to the
He acknowledges there are applets that can integrate the JVM and
the browser, but this integration isn’t yet tight enough for
Rauschmayer’s liking: “one still feels the barrier between Java and
But are we closer to a Java web browser than we think? According
to Dominique De Vito, Google Web Toolkit (GWT)
provides a programming model for the Java browser proposed by
allowing “more and more pieces of a browser edition of Java (to)
run on top of JS engines, inside browsers.” However, Rauschmayer
disagrees that GWT will ever be able to translate all of the JVM
platform to a browser. To him, GWT is missing one crucial function,
the ability to install the server functionality locally.
A modular, extensible web browser implemented in Java has been
attempted before, in the form of Sun’s HotJava Browser. HotJava was actually the first
browser to support Java applets, however it was held back by the
performance limitations of Java virtual machine implementations at
the time, and was discontinued. It is now no longer supported. The
last release was HotJava 3.0 in 2007.
Another potential player in the JVM/browser debate, is Project Lobo. Lobo is an open source web
browser that is written completely in Java. It also supports JavaFX
rendering, although it is still at the experimental stage. The Lobo
team make a compelling argument for the web browser written in Java
as oppose to a language compiled into native code. They propose
several advantages, one of which is security. The Lobo team claim
that “in principle, a Java program is less susceptible to certain
types of vulnerabilities such as a buffer overflow attack.” As a
Java program, Lobo has access to both a rich portfolio of
cross-platform plugins and cross-platform mechanisms to represent
web content. However, things seem rather quiet on planet Lobo at
the moment – the last release was over a year ago.
In theory, a Java-based web browser offers many advantages, but
the fact remains that if there isn’t a widely-adopted, JVM/browser
currently under active development, then is there really much need
for such a browser?