Heroku to Java: Welcome to Our Cloud

Heroku announces support for Java on its cloud application platform that already supports Ruby, Node.js and Clojure.

Heroku, a cloud application platform provider, has announced support for Java on its cloud platform.

The addition of Java for Heroku adds another popular language and helps to round out the company's strategy of delivering a polyglot language platform. In May, Heroku rolled out its Celadon Cedar stack that was touted to be able to run any language.

Java is the fourth official language available on the Cedar stack, said Heroku co-founder Adam Wiggins in an August 25 blog post. The other three supported languages are Ruby, Node.js and Clojure.

"Java is, by many measures, the world's most popular programming language," Wiggins said. "In addition to its large and diverse developer base, it offers a huge ecosystem of libraries and tools, an extremely well-tuned VM for fast and reliable runtime performance, and an accessible C-like syntax."

"New Relic and Heroku have been long-standing partners and it's great to see them expand their multi-language platform with support for Java, said Bill Lapcevic, vice president of business development at New Relic. "This puts Heroku in a key position to serve Salesforce.com's developer audience as their platforms are largely Java- based. It also puts Heroku on the same playing field with existing solutions like Amazon Elastic Beanstalk. I expect there will be a significant uptake from enterprise developers looking for easy deployment and multi-language support for their critical apps."

Wiggins said Heroku chose Java for obvious reasons of its popularity but also because it is a solid language for building Web apps. However, Java is not without criticism and "baggage,' he said.

As reasons for adopting Java, Wiggins listed:

  • The JVM is one of the best runtime VMs in the world, offering fast performance and a reliable memory footprint over time.
  • Java boasts an estimated population of six million developers, with a vast ecosystem of tools, libraries, frameworks and literature. It is the most mature and established programming language for building server-side applications in existence today.
  • Born at the beginning of the Internet age, Java began with the goal of "write once, run anywhere." Though it took a long time to get there, this goal has been largely achieved. The universal JVM runtime environment is available on an incredibly wide range of platforms and offers near-perfect portability between those platforms with no changes in application code, and even build artifacts are binary-compatible.

Yet, Wiggins also noted that Java 2 Platform Enterprise Edition (J2EE) derailed Java. However, Heroku works to put Java back on track and enables developers to enjoy the capabilities promised by Java before it got bogged down.

Heroku provides "the capabilities promised by J2EE application containers for managing your app include deployment, restart, logging, service binding (config), and clustering (horizontal scaling)," Wiggins said. "Running your Java app on Heroku, you achieve these ends via the platform instead."

Moreover, "Using Heroku's platform to run Java apps finally solves the impedance mismatch between application containers designed for traditional software distribution, and the modern world of software-as-a-service," Wiggins said.

Wiggins also said "Future language packs will span the gamut from venerable (like Java) to cutting-edge (like Clojure and Node.js) to squarely in-between (like Ruby). Our desire is to be as inclusive as possible. Choice of language is up to the developer."

Indeed, Heroku is driven by a simple first principle: do what's best for developers, Wiggins added.

"Supporting Java is what's best for the large world of Java developers; it's what's best for developers who want to use other JVM languages; and it's even good for users of other languages, who will benefit indirectly from the learning their community may gain from contact with Java," he said.