Play is a web application framework designed to make web development simpler. It is inspired by convention-based frameworks such as Ruby on Rails and Djnago. Play seems to be trying to take the best from the Java web development ecosystem and strip away some of the more cumbersome parts.

Major differences From other Java frameworks:

Stateless: Play 2 is fully RESTful – there is no Java EE session per
connection.

Integrated unit testing: JUnit and Selenium support is included in the core.

API comes with most required elements built-in.

Static methods: all controller entry points are declared as static (or
equivalently, in Scala, methods on Scala objects). After requests were made
for this to be customisable, Play 2.1 now supports other styles of
controllers, so controllers need not be static/Scala objects; however, this
is still the default.

Asynchronous I/O: due to using JBoss Netty as its web server, Play can
service long requests asynchronously rather than tying up HTTP threads doing
business logic like Java EE frameworks that don’t use the asynchronous
support offered by Servlet 3.0.

Modular architecture: like Rails and Django, Play comes with the concept of
modules.

Native Scala support: Play 2 uses Scala internally, but also exposes both a
Scala API, and a Java API that is deliberately slightly different to fit in
with Java conventions, and Play is completely interoperable with Java.

Simple but powerful syntax which enables you to write tests very quickly, using
only Javascript and CSS selectors. No need to initialize other objects and
classes, you only need to write the test specs.

Built-in command-line test runner which enables you to run the tests either
altogether, by group or single.

Manages the Selenium server automatically; can be disabled if Selenium runs on
another machine.

Continous Integration support: JUnit XML reporting is built-in so you can
integrate your tests in your build process with systems suchs as Hudson or
Teamcity.

Use CSS selectors or Xpath to locate and verify elements on the page or execute
commands.

Easy to extend if you need to implement your own commands specific to your
application.

libgit2 is a portable, pure C implementation of the Git core methods provided as a re-entrant linkable library with a solid API, allowing you to
write native speed custom Git applications in any language which supports C bindings.

I have to confess that I don’t quite understand how this works. I’m quite familiar with virtualization products like VMWare or VirtualBox. They are virtual servers complete with virtual hardware to install a complete Operating System on.

…a lightweight open-source hypervisor created by LiteStack and built to run
cloud applications. ZeroVM breaks down the barriers between compute and
storage. Where traditional cloud architectures have needed to move the data
to the app for processing, ZeroVM flips that approach and moves the app to
the data. This dramatically increases speed of access and decreases latency.

ZeroVM is efficient because it is made to virtualize applications, not
machines. The runtime virtualizes only the server parts that do the actual
work at hand – making it much faster. Today, the fastest virtual servers
take at least two minutes to create, while ZeroVM takes less than 5
milliseconds – or 1/20,000th as long. ZeroVM is fast enough that you can put
every request into its own mini-VM to spread horizontally.

Making things smaller, lighter and faster also provides greater security.
ZeroVM is fast enough to isolate each individual user in a separate
container, which delivers greater granularity of security and control.

I sort of have a thing for back-end systems: RPC calls, middleware, serialization protocols. A well put together and well-documented API makes me smile. MessagePack (via) looks like another great tool for my tool-belt.

MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it’s faster and smaller.
Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves.