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.
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 JVM/browser experience.
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 the browser.”
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?