Designed to be concise, as opposed to Java, Scala is a general-purpose programming language with support for a strong static type system and functional programming.
Scala runs on the standard Java platform, operating smoothly with all of the Java libraries. Scripts written in Scala can pull together all of the Java components, but its strengths are especially evident when it is used for building large systems and frameworks of reusable components.
Scala is a blend of object-oriented and functional programming concepts in a statically typed language, aspects that complement one another when it comes to scalability.
Scala was designed to be a scalable language, to grow with the needs of its users. In fact, it was named for these aspects, as a sca(lable) la(nguage). The language can be applied to a wide range of tasks, from small scripts to large programs.
Scala source code is intended to be compiled to Java bytecode. The resulting executable code runs on a Java virtual machine. Unlike Java, Scala is object-oriented, but also shares many features of such functional languages like Haskell and Scheme. It embraces functional programming without abandoning object orientation.
ScalaJS, a Scala compiler, emits JavaScript code, allowing programmers to write both the server-side and client-side parts of a web application in a language other than JavaScript.
Scala Native is another Scala compiler. It targets the LLVM compiler infrastructure, creating executable code that uses a lightweight runtime.
Scala is sometimes compared with Clojure and Groovy, both of which also use the Java virtual machine. However, Scala is statically typed, while Clojure and Groovy are dynamically typed.
Scala is open-sourced through an Apache License 2.0.
The focus of this category is on the Scala programming language, any of its implementations or dialects, compilers, editors, or tools designed to be used with Scala, as well as Scala user groups, forums, tutorials, guides, or other resources related to the language.
 
 
Recommended Resources
Presented and maintained by Nadim Bahadoor, the site features a comprehensive tutorial for the Scala programming language, including an introduction and general overview of the language, the foundations of learning the language, its fundamentals, functions, object-orientation using classes, traits and dependency injection, collections, futures, and other coding elements, as well as Apache Spark, SclaTest, SBT, Akka, Apache Cassandra, and a Scala cheatsheet.
http://allaboutscala.com/
Offering two forms of online learning, ScalaCourse has been offering online training courses for more than three years. Self-study students can contact a live instructor whenever they feel the need, and the instructor might reply by email or share a screen with the student. Instructor-led students participate in regularly scheduled video conference sessions with a live instructor. Courses include an Introduction to Scala, Intermediate Scala, and Introduction to Play Framework with Scala.
https://www.getscala.com/
Scala is a modern programming language designed to express common programming patterns in a concise, elegant, and type-safe manner. The Scala mailing list archive and forum includes announcements of new projects or releases, IDEs, compilers, editors, and other tools released for the Scala programming platform. Members of the Scala programming community may post bug reports, ask for assistance, answer questions, or post code examples and other information.
http://www.scala-archive.org/
The Scala Center is a for-profit center established at the École Polytechnique Fédérale de Lausanne (EPFL) in Switzerland, where it is focused on open-source and education. The Center independently guides and supports the Scala community, coordinates and develops open-source libraries and tools for the benefit of all Scala users, and provides educational materials for Scala programming. Its team and sponsors are acknowledged, and its projects are highlighted.
https://scala.epfl.ch/
Scala Exercises is an open-source project for learning different technologies based on the Scala programming language. Members of the community may access them to learn various Scala tools and technologies, play, and contribute. Included technologies include the Scala Standard Library and Cats, a library that provides abstractions for functional programming, Doobie, Shapeless, Monocle, Fetch, Circe, ScalaCheck, and FP in Scala, as well as a Scala tutorial.
https://www.scala-exercises.org/
Led by Denys Shabalin, development began on Scala Native in 2015, and its first release was in 2017. Scala Native is a Scala compiler that targets the LLVM compiler infrastructure to create executable code that uses a lightweight managed runtime, using the Boehm garbage collector. As an open-source compiler, it is available for download from GitHub. A user’s guide is put forth, along with a contributor’s guide, and documentation for various libraries, a changelog, and a blog.
https://scala-native.readthedocs.io/
ScalaIDE provides advanced editing and debugging support for the development of pure Scala and mixed-Scala/Java applications. Its editor includes code completion featured, definition/implicit hyperlinking, semantic highlighting, and error markers. Its features are highlighted on the site, along with tutorials, video presentations, development notes, and answers to troubleshooting questions. Downloads are available for the Windows, Mac, and Linux platforms.
http://scala-ide.org/
ScalaJS is a compiler that compiles Scala source code to equivalent JavaScript code, allowing programmers to write Scala code that can be run in a web browser or other environments where JavaScript is supported. ScalaJS optimizes Scala code into efficient JavaScript. Incremental compilation guarantees speedy turn-around times when the code changes and is able to access JavaScript libraries, including React and AngularJS. Documentation is included.
http://www.scala-js.org/
Available through GitHub, Scalameta is a library to read, analyze, transform, and generate Scala programs. The core purpose of Scalameta is syntax trees, enabling users to read, analyze, transform, and generate Scala programs at a level of abstraction. A guide to its use is put forth, along with quasiquotes and examples, a ScalaFiddle Playground that runs in a browser window, and AST Explorer, as well as a guide and specifications for SemanticDB.
https://scalameta.org/
ScalaNLP is a suite of machine learning and numerical computing libraries, including Breeze, which is the core set of libraries for ScalaNLP, including linear algebra, numerical computing, and optimization, as well as Epic, a statistical parser for eight languages, and Puck, which is a fast GPU-powered parser, each of which are highlighted here, and made available for downloading from GitHub. Documentation, development notes, and a blog are included.
http://www.scalanlp.org/
Free and open-sourced, ScalaTest is released under the Apache 2.0 license and designed to be a flexible testing tool for the Scala programming language. It will allow the testing of Scala, Scala.js (JavaScript), and Java code, and will integrate with Ant, EasyMock, Eclipse, IntelliJ, JMock, JUnit, Maven, Mockito, NetBeans, sbt, ScalaMock, Selenium, and TestNG. Installation instructions, a quick-start guide, user guide, and an overview of the program are put forth.
http://www.scalatest.org/
The Scala Programming Language
Maintained by Scala Center and Lightbend, the official website of the Scala programming language features an overview of the language and its features, and the language can be tried out in their web browser. Integrated development environments (IDEs) that are known to be optimized for use with Scala are listed, along with tutorials, APIs, references, style guides, cheatsheets, a glossary, and other documentation. The Scala developer community is introduced.
https://www.scala-lang.org/