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)
SBT is a simple build tool for Scala projects that aims to do the basics well. It requires Java 1.5 or later.
- 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 ScalaCheck, specs, 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 : https://www.scala-sbt.org/
Download SBT: http://code.google.com/p/simple-build-tool/downloads/
SQueryl – 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 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
- stand alone in any JVM or as a Servlet Filter in any Java in a web application
- with JAXRS with Jersey
- in the Play Framework via play-scalate
- in Apache Camel for transforming messages and templating
- to generate your static or semi-static website
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
- 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
SPDE – is 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:
Scala Plug-in for Netbeans
NetBeans has beta-quality Scala plugins. Start at this web page for details,
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.