⁂ Scala programming language

Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages, enabling Java and other programmers to be more productive. Code sizes are typically reduced by a factor of two to three when compared to an equivalent Java application.

Many existing companies who depend on Java for business critical applications are turning to Scala to boost their development productivity, applications scalability and overall reliability.

For example, at Twitter, the social networking service, Robey Pointer moved their core message queue from Ruby to Scala. This change was driven by the companies need to reliably scale their operation to meet fast growing Tweet rates, already reaching 5000 per minute during the Obama Inauguration. Robeys thinking behind the Twitter Kestrel project is explained in the developers live journal. His concise 1500 lines of Scala code can be seen as he has generously made them available as an open source project.

Many top-notch programmers and industry leaders have already been captivated by Scala. They have become quite vocal encouraging others, creating a growing range of books on Scala and an almost endless supply of tips for Java programmers new to Scala, some of which are collected in "Java to Scala with the help of experts".

Scala runs on the Java platform (Java Virtual Machine) and is compatible with existing Java programs.

Scala is a pure object-oriented language in the sense that every value is an object. Data types and behaviors of objects are described by classes and traits. Class abstractions are extended by subclassing and by a flexible mixin-based composition mechanism to avoid the problems of multiple inheritance.

Scala is also a functional language in the sense that every function is a value. Scala provides a lightweight syntax for defining anonymous functions, supports higher-order functions, allows functions to be nested, and supports currying. Scala's case classes and its built-in support for pattern matching model algebraic types used in many functional programming languages.

Furthermore, Scala's notion of pattern matching naturally extends to the processing of XML data with the help of regular expression patterns. In this context, sequence comprehensions are useful for formulating queries.

Implementing some of the most advanced functional programming constructs in Scala may occasionally be limited by the fact that tail call optimizations are not supported completely, because the JVM lacks the byte codes for implementing them efficiently. In these situations one simply has to go back to traditional procedural programming.

http://www.scala-lang.org

1 comment

Learn Scala Programming

Submitted by Guest on Thu, 07/30/2009 - 06:08.

Scala is a hybrid Object-Oriented/Functional Programming language on the JVM. When I heard that Twitter was using Scala, I was curious and started collecting all the sites and articles to learn scala programming. If you are interested check the link below for the big list I have gathered (more than 200 sites) for learning scala programming.
http://markthispage.blogspot.com/2009/06/more-than-100-sites-to-study-sc...

© 2010 Devis Lucato.