Scala Tutorial Scala References

Scala - Introduction



Scala is a modern multi-paradigm programming language which supports both object-oriented programming and functional programming. Scala source code can be compiled to Java bytecode and run on a Java virtual machine (JVM). Scala provides language interoperability with Java so that libraries written in either language may be referenced directly in Scala or Java code. Scala has been created by Martin Odersky and first version was released in January, 2004. Some important features of Scala are given below:

Language Features:

  • High-Level Language - Scala is a high-level language and enables development of a program in user friendly way and generally independent of computer's hardware architecture.
  • Statically Typed Language - Scala, unlike some of the other statically typed languages (C, Pascal, Rust, etc.), does not expect a user to provide redundant type information. A user don not has to specify a type in most cases.
  • Object-Oriented Programming Language - Scala is a pure object-oriented programming (OOP) language. Every variable is an object, and every operator is a method.
  • Functional Programming Language - Scala is also a functional programming (FP) language, so functions are also variables, and a function can be passed them into other functions. A code can be written using OOP, FP, or combined in a hybrid style.
  • Concise and Expressive Language - Scala syntax is concise but still readable.
  • Concurrent & Synchronize Processing- Scala programming allows you to express general programming patterns effectively which reduces the number of lines and helps the programmer to code in a type-safe way. It allows you to write codes in an immutable manner, which makes it easy to apply concurrency and parallelism.
  • Execute Java Code - Scala allows you to use all the classes of the Java SDK and also your own custom Java classes, or your java open source projects. Scala also works extremely well with the thousands of Java libraries that have been developed over the years.