- The Java Virtual Machine (JVM). Advantages: Great tools, hosts many languages, lots of free software is available for it (databases, support for many file formats, etc.), support for modularity (OSGi, Jigsaw).
- The web browser. Advantages: Quickly trying out an application without downloading anything, URLs that encode application states and are bookmarkable, the ability to clone application states via tabs, integrated hypermedia.
I do realize that applets go a long way in the direction of this vision, but many minor details add up so that one still feels the barrier between Java and the browser. I could never get excited about JavaFX, it always felt like Java was trying to be like Flash. But the idea of a JVM-based web browser, HotJava 2 if you will, does excite me in ways I cannot all explain rationally. I can see myself extending such a browser with many tools and writing all my future applications based on it.
Update: See my comment below on a refinement of these ideas.