VMware has invited Scala programmers onto Cloud Foundry, its open source "platform cloud," an online service for building and readily scaling applications.
When it first launched in April, the service let you build with Java, Ruby on Rails, the Ruby framework Sinatra, and Node.js, the current It Platform of the Silicon Valley development world. Now, VMware had added support for Scala, the Java Virtual Machine–based programming language that drives such big web names as Twitter, Foursquare, and LinkedIn.
In a blog post, the company said that "most" Scala applications written for the Lift and Spring frameworks will "deploy seamlessly" to Cloud Foundry without changes. "Other Scala applications may require minor modifications to bind with application services in the cloud," the post said. VMware was not immediately able to discuss the setup further. But the post goes into some detail.
If you build a Scala web app that does not use application services such as a database, the company says, you can deploy it to Cloud Foundry without any changes. Registered developers can see an example here. Of course, most applications do use services. But if you "externalize" services with the Lift framework or tap "auto-reconfiguration support" with Spring, you should also be able to deploy without modification.
The Cloud Foundry project is meant to provide a common code base for myriad platform-as-a-service" (PaaS) engines, aka "platform clouds". In contrast to an "infrastructure cloud" à la Amazon EC2, a platform cloud lets you build and host applications online without juggling virtual machines and other raw infrastructure resources. The Cloud Foundry code also underpins the VMforce platform cloud that VMware is building in tandem with Salesforce.com.
First released in 2003 by Martin Odersky – a professor at the École Polytechnique Fédérale de Lausanne in Switzerland who just recently launched his own company around the language – Scala is meant to be an improved version of Java. Using functional programming techniques, it's built from the ground up for concurrency, but retains Java's object-oriented nature as well. Reminiscent of Erlang, it offers concurrency and parallelism through an "actor" model, passing messages between computational entities known as "actors".
Because it's based on the JVM, you can build applications using any Java framework, including Spring. Lift is a framework specifically designed for Scala. ®