Wednesday, April 18, 2012

Java is such a great language and platform for any kind of application. It is open, fast, powerful, runs on any platform, and there are more jobs for Java than any other programming language. After reading more FUD and Java bashing from Ruby land I thought it would be fun to put together a list of truly amazing uses of Java that covers a wide spectrum.

10 - Sun SPOT

The Sun SPOT Device is a small, wireless, battery powered experimental platform. It is programmed almost entirely in Java to allow regular programmers to create projects that used to require specialized embedded system development skills. The hardware platform includes a range of built-in sensors as well as the ability to easily interface to external devices. The SPOT Development Kit contains two complete, free-range Sun SPOTs (with processor, radio, sensor board and battery) and one basestation Sun SPOT (with processor and radio). Also included are all the software development tools and cables required to start developing applications for your Sun SPOT.

9 - Project Looking Glass

Project Looking Glass is an open source development project based on and evolved from Sun Microsystems' advanced technology project. It supports running unmodified existing applications in a 3D space, as well as APIs for 3D window manager and application development. At the moment, existing application integration is supported for Solaris x86 and Linux platforms. The library for 3D application development is available for Linux, Solaris and Windows.

8 - Flying Saucer & Mozilla Rhino

Flying Saucer is 100% Java XHTML+CSS renderer, including support for table pagination, margin boxes, running elements, named pages, and more. It is CSS 2.1 compliant (currently working on CSS 3 compliance), can be embedded into your Swing applications, and uses the open source LGPL license. This is a very impressive library! Equally impressive is Mozilla Rhino. Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. Imagine combining Flying Saucer, Applets/JavaFX Script support, Rhino, and the hugely improved "Consumer JRE"!

7 - UltraMixer

UltraMixer is a DJ mixing software which enables you to mix digital music in various formats such as MP3, WMA, AAC, OGG, WAV or CDs in real time. All you need is a sound card. The DJ's turntables are replaced by two digital SoundPlayers, the "vinyls" are available within seconds through the integrated FileArchive. There are three versions of UltraMixer available: the Free Edition and the Basic Edition for private users and the Professional Edition for high demands and commercial use. It can interface with a number ofhardware controllers so you don't have to use a mouse.

6 - Blu-ray BD-J

The Blu-ray Disc Association (BDA) selected Java technology to be used as the platform for their advanced interactive application specification. Java technology was selected because:

Java technology has proven to be a technically sound solution in the mobile domain and in interactive television (MHP/OCAP)

Java technology has proven cross-platform technology support in embedded devices

Java technology provides an open-ended platform for content development with secure network support

I have seen a live demo of BD-J at JavaOne and was very impressed. Blu-ray seems to be winning the battle. It might finally be time to pick up a Blu-ray player.

5 - JavaFX Script & JavaFX Mobile

JavaFX Script is a compiled declarative scripting language that will soon be built into Java that enables Java developers and graphics designers to create rich user interfaces comparable to Adobe Flash. Recently key-frame animation support was added. The graphical designer tool being developed will be an Adobe Illustrator plugin. Rich Internet Applications built using JavaFX Script will run in the browser as an applet. An effort of cosmic proportions has been done to the Java Runtime Environment to improve startup time and responsiveness of applets.

JavaFX Mobile is a complete mobile operating and application environment built around Java and Linux open source technologies. JavaFX Mobile includes support for Java ME applications and other standard Java APIs to enable a broad range of new and existing Java applications. I think JavaFX Mobile brings a nearly complete Java SE environment to mobile devices (minus some things such as Corba, JMX, etc). Sun is a bit late in the game, but I think this will really pick up. I know I would prefer a full Java RIA over Adobe Flex.

4 - NASA World Wind

World Wind lets you zoom from satellite altitude into any place on Earth. Leveraging Landsat satellite imagery and Shuttle Radar Topography Mission data, World Wind lets you experience Earth terrain in visually rich 3D, just as if you were really there. It is very much like Google Earth, but written 100% in Java. There is an SDK for embedding it into your Java Swing applications.

3 - Team Jefferson's Tommy Junior bot

Tommy Jr. is based on a Scion xB vehicle platform. The team's secret weapon is the patent pending MAX software platform from Perrone Robotics. MAX represents the DNA and core robotics operating system that enables the rapid drop-in of commercially available and affordable sensors, hardware, and actuators. MAX is based 100% on Sun Microsystems' Java technology. Tommy Junior's micro-controllers and single low-cost standard car PC run the MAX robotics platform atop of standard, micro, and Java Real Time System (Java RTS) profiles.

The team's after-market drop-in approach enables any vehicle whatsoever to be made fully autonomous within a short period of time. Tommy Junior's cost in parts has been a mere $50,000 which includes the automotive platform itself. After actuators and hardware were dropped in, Tommy Junior was up and running in just 24 hours with Tommy senior navigation and obstacle avoidance capabilities. While Tommy Junior and Tommy senior share the same MAX DNA, Tommy Junior has since surpassed his father's wits with new rules of behavior rapidly evolved for city driving.

2 - ThinkFree

ThinkFree is the compatible alternative to Microsoft Office. It includes ThinkFree Write (word processing), ThinkFree Calc (spreadsheet), and ThinkFree Show (presentation) applications that let you create, edit, and update your documents. The ThinkFree interface is designed to look, feel, and behaves like Microsoft Office, eliminating the learning curve. Because ThinkFree application use the same formats as Word, Excel, and PowerPoint, you can rest assured that your documents will look the same in ThinkFree as they do in Microsoft Office-no matter what editing features you are using. It can also save as PDF.

ThinkFree is written in Java, so it runs on Windows, Mac and Linux. There is a free online edition with 1 GB of storage, collaboration tools, publishing to blogs, web pages or ThinkFree Docs. I think it loads using Java Web Start? You can also host it on your own server, or run it as a desktop application.

1 - JPC

JPC is a pure Java emulation of an x86 PC with fully virtual peripherals. It runs anywhere you have a JVM, whether x86, RISC, mobile phone, set-top box, possibly even your refrigerator! All this, with the bulletproof security and stability of Java technology.

JPC creates a virtual computer upon which you can install your favorite operating system in a safe, flexible and powerful way. It aims to give you complete control over your favorite PC software's execution environment, whatever your real hardware or operating system, and JPC's multi-layered security makes it the safest solution for running the most dangerous software in quarantine - ideal for archiving viruses, hosting honey pots, and protecting your machine from malicious or unstable software.

It was hard to choose only ten application when there are so many cool looking scientific applications, 3D games, IDEs, languages that run on the JVM, etc. It's incredible what people are doing with Java these days.

Also, there has been talk about aging mission critical real-time control systems transitioning to Java Real Time System (RTS) such as Nuclear Power Plants, Aircraft Control, Submarine Control, Factory Automation, Airport Aviation Flight Control, Energy and Power Systems Supply, Telecommunication Satellite and so forth. I saw a demonstration of the world's fastest moving robot arm being controlled by a Java RTS application at JavaOne 2007. Very cool stuff.