Development Tools available for Scala Language

Due increased popularity of scala language and increase number of user in scala world new development tools for Scala language are evolving now a days. I thought i should gather the list  of  Scala development tools available. Please feel free to add the Scala tools if i have missed any.

SIMPLE BUILD TOOL FOR SCALA LANGUAGE (SBT)

Build Tool for Scala Language

SBT is a simple build tool for Scala projects that aims to do the basics well. It requires Java 1.5 or later.

Features

  • Fairly fast, unintrusive, and easy to set up for simple projects
  • Configuration, customization, and extension are done in Scala
  • Accurate recompilation (in theory) is done using information extracted by a compiler plugin
  • Continuous compilation and testing with triggered execution
  • Supports mixed Scala/Java projects, packages jars, generates documentation with scaladoc
  • Supports testing with ScalaCheckspecs, and ScalaTest
  • Starts the Scala REPL with project classes and dependencies on the classpath
  • Multiple project/subproject support
  • Parallel task execution, including parallel test execution
  • Dependency management support: inline declarations, external Ivy or Maven configuration files, or manual management

SBT Website : http://code.google.com/p/simple-build-tool/

Download SBT: http://code.google.com/p/simple-build-tool/downloads/

SQueryl – Scala ORM Framework

Scala ORM Framework

SQueryl is the Scala ORM Framwork and Domain Specific Language (DSL) for talking with Database with minimum verbosity and maximum type saftey.

Features of  SQueryl :

  • Write compiler validated statements.
  • Explicitly control retrieval granularity and laziness.
  • Write as declaratively as SQL, only with less boilerplate.
  • The Composability of Squeryl statements allows you to define them once and reuse them as sub queries within other statements.

SQueryl Website: http://squeryl.org/

Download SQueryl: https://github.com/max-l/Squeryl/downloads

ScalaCheck – A Powerful Tool for Automated Unit Testing

ScalaCheck is a powerful tool for automatic unit testing of Scala and Java programs. It features automatic test case generation and minimization of failing test cases. ScalaCheck started out as a Scala port of the Haskell library QuickCheck, and has since evolved and been extended with features not found in Haskell QuickCheck.

ScalaCheck Website: http://code.google.com/p/scalacheck/

Download ScalaCheck: http://code.google.com/p/scalacheck/downloads/

ScalaTest – A Scala Test Framework

With ScalaTest, you can test either Scala or Java code. By integrating with popular tools such as JUnit, TestNG, Ant, and Maven, ScalaTest makes it easy to take your testing to a higher, more productive level in new or existing Scala or Java projects.

Because different developers take different approaches to creating software, ScalaTest is designed to facilitate different styles of testing. ScalaTest provides several traitsthat you can mix together into whatever combination makes you feel the most productive.

ScalaTest Website: http://www.scalatest.org/

Download ScalaTest: http://www.scalatest.org/download

LIFT – Scala Web Framework

Lift is the most powerful, most secure web framework available today. There are Seven Things that distinguish Lift from other web frameworks. Lift applications are:

  • Secure — Lift apps are resistant to common vulnerabilities including many of the OWASP Top 10
  • Developer centeric — Lift apps are fast to build, concise and easy to maintain
  • Scalable — Lift apps are high performance and scale in the real world to handle insane traffic levels
  • Interactive like a desktop app — Lift’s Comet support is unparalled and Lift’s ajax support is super-easy and very secure

Lift Website: http://liftweb.net/

Download Lift: http://liftweb.net/download

Akka – Scalability, Concurrency and Fault tolerance Framework

Akka is the platform for the next generation event-driven, scalable and fault-tolerant architectures on the JVM. Writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it’s because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that.
Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. For fault-tolerance we adopt the “Let it crash” / “Embrace failure” model which have been used with great success in the telecom industry to build applications that self-heal, systems that never stop. Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.
Akka is Open Source and available under the Apache 2 License.

Akka is the platform for the next generation event-driven, scalable and fault-tolerant architectures on the JVM.writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it’s because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that.
Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications.
For fault-tolerance we adopt the “Let it crash” / “Embrace failure” model which have been used with great success in the telecom industry to build applications that self-heal, systems that never stop.
Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.
Akka is Open Source and available under the Apache 2 License.

AKKA Website: http://akka.io/

Download AKKA: http://akka.io/downloads/

SPECS – A BDD Library for Scala

specs is designed as an alternative for JUnit when specifying and testing Java or Scala projects. Yet, it is able to reuse the existing JUnit infrastructure for execution and reporting since the specifications can be executed as JUnit4 test suites.

specs also integrates an advanced testing and specification library, the ScalaCheck project in order to be able to generate a numerous cases testing a given property.

specs takes its inspiration from existing frameworks:

  • rspec for trying to have a literate structure to specifications and assertions and also for the possibility to share examples between related specifications (as in the Stack example).
  • jmock for having reusable matchers and expressive assertions.

Specs Website: http://code.google.com/p/specs/

Download Specs: http://code.google.com/p/specs/downloads/

SCALATE – A Scala Template Engine

Scalate is a Scala 2.8 based template engine for generating text and markup which can be used in the following frameworks and environments:

Scalate supports the following template formats

  • Mustache which is a Scala dialect of Mustache for logic-less templates which also work inside the browser using mustache.js
  • Scaml which is a Scala dialect of Haml and is very DRY for generating HTML / XHTML
  • Jade which is an even more DRY dialect of Scaml for HTML / XHTML markup generation
  • SSP which is like Velocity, JSP or Erb from Rails

Scalate Website: http://scalate.fusesource.org/

Download Scalate: http://scalate.fusesource.org/download.html

ScalaQuery – A type-safe database API for Scala

ScalaQuery is an API / DSL (domain specific language) built on top of JDBC for accessing relational databases in Scala. It was designed with the following goals in mind:

  • A Scala API for database access
  • Compile-time checking and type-safety
  • Composable non-leaky abstractions

ScalaQuery is easy to add to your project, commercial or non-commercial alike. It is being made available under a liberal BSD-style licenseand has no dependencies other then the Scala 2.8 library.

The current release is ScalaQuery 0.9.1 for Scala 2.8.0 and 2.8.1, with full support for the following database systems: PostgreSQL, MySQL, H2, HSQLDB/HyperSQL, Derby/JavaDB. SQLite support is under development. Accessing other database systems is possible, with a reduced feature set.

ScalaQuery Website : http://scalaquery.org/

Download ScalaQuery: http://scalaquery.org/download.html

SPDEis an offshoot of the Processing environment to support sketches written in Scala, a powerfully object-oriented and functional language.

Because Scala runs on the Java Virtual Machine and can interface directly with Java code, Spde is able to work with unmodified Processing libraries. Its sketches will look similar to those in the p5 dialect of Java if written in an imperative style, while an embrace of immutability and other functional concepts will lead to entirely different sketches.

SPDE Website: http://technically.us/spde/About

Download SPDE: http://technically.us/spde/Download

Scala Plug -in for Eclipse

For details on the Eclipse Scala plugin, start at this web page, http://www.scala-lang.org/node/94

Plug-in Update Site : http://www.scala-lang.org/scala-eclipse-plugin

Scala Plug-in for IntelliJ

The IntelliJ IDEA team provides a beta-quality Scala plugin. Start here for details:

http://www.jetbrains.net/confluence/display/SCA/Scala+Plugin+for+IntelliJ+IDEA

Scala Plug-in for Netbeans

NetBeans has beta-quality Scala plugins. Start at this web page for details,

http://wiki.netbeans.org/Scala

NetBeans 6.5 or a more recent nightly build is required. The Scalaplugin contains a version of the Scala SDK. The wiki page provides instructions for using a different SDK, when desired.

To install the plugin, download the plugins ZIP file from http://sourceforge.net/project/showfiles.php?group_id=192439&package_id=256544

I would like to reiterate if i missed any of the Scala tools then please feel free to add comment on this post.

2 comments

  1. etorreborre says:

    Note that the specs project is now superseded by the new specs2 project: http://specs2.org.

  2. etorreborre says:

    Note that the specs project is now superseded by the new specs2 project: http://specs2.org.

Please Post Your Comments & Reviews

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.