Over a million developers have joined DZone.

Scala Goes Dynamic with JavaRebel

DZone's Guide to

Scala Goes Dynamic with JavaRebel

· Java Zone ·
Free Resource

Java-based (JDBC) data connectivity to SaaS, NoSQL, and Big Data. Download Now.

As a scalable language Scala can be used both for scripting and for large enterprise applications. We at ZeroTurnaround respect and support the vision of a statically typed and powerful language that builds on the Java platform to improve the productivity and maintainability of Java language.

One of the challenges to productivity is the failure of Java platform to provide a facility to reload changes to classes, i.e. exactly the problem that we solve with JavaRebel. Dynamic languages like Ruby tend to have instant turnaround, whereas developing Java web software is a constant cycle of redeployment.

At the Scala Lift Off unconference we met with the representatives of the Scala/Lift community and decided that we can facilitate the Scala adoption by putting its productivity on par with the dynamic languages. To do that we have created a special JavaRebel license that can only be used to reload Scala classes, which we donated to the Scala community for free use for a year. We will extend this license on a yearly basis to help drive Scala adoption.

We are currently discussing with the Scala and Lift communities the necessary licensing for embedding JavaRebel in Scala and Lift distributions, but until then you can just download the nightly build that includes support for Scala-only licenses and the free license itself (just put it in the same directory as javarebel.jar).

Using the free Scala-only JavaRebel license you can now evolve your application non-stop getting the powerful Scala static type system, higher-level abstractions and dynamic code reloading all in one package.

Connect any Java based application to your SaaS data.  Over 100+ Java-based data source connectors.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}