# Scala/Setup
## Setting up Scala

The following gives a guide on how to install Scala on different operating systems:

### Linux

** Ubuntu/Debian (dpkg based): sudo aptitude install scala or sudo apt-get install scala. You may also install scala-doc for the documentation and examples.

### Windows

* Go to the Scala official download page: http://www.scala-lang.org/download/
* Download and open the Scala installation file from the above mentioned site to start the installation.
* Read and follow the instructions on screen.
* When installed, the Windows Command Prompt or Windows Powershell is used to utilize the Scala Compiler, the Scala Interpreter ("REPL") or any precompiled Scala written programs.

### Mac OS X

* Using homebrew: brew install scala
* Or download from the package official site:
** extract the tar ball
** and append xxx/scala-x.x.x./bin directory to PATH
** use scala as in a REPL environment

## Setting up Scala IDEs

* Using a tool Lightbend Activator or sbt to bootstrap your development project
* Or install one of the fabulous Scala IDEs:
** IntelliJ IDEA with the Scala plugin;
** The Scala IDE (based on Eclipse);
** NetBeans IDE with the Scala plugin.

## Running Scala

Scala can be written and run in different ways, by using the interpreter, by compiling, or by running it as a script. The "Hello World!" program will be used to illustrate these different ways.

### Interpreting Scala

The Scala interpreter is an interactive shell that supports easy writing and running of commands and programs. The Scala interpreter is generally included in the basic Scala installation and can be initiated from the command-line (typically by writing scala), but is also supported in some Scala IDE plugins (such as Scala-IDE for Eclipse).
Once initiated, the prompt looks like this:
The simplest way to write "Hello world!" is to write the following command:
println prints the given string and adds a newline. If only print is used, no newline is added. If you write this in the interpreter and press enter, the result should look like this:
The println command was interpreted and run, and the result (printing to the terminal) is shown.
There are also special commands in the interpreter; for more information on these, type “:help”.
The interpreter is generally well-suited for small tests and experiments, and less for program development. When learning Scala, the interpreter is often a very useful tool, since it gives immediate feedback. The interpreter is actually a REPL.
Additionally, in a scala IDE such as eclipse or Intellij, there is a worksheet that can be used in a REPL as well.

### Compiling Scala

Scala is a JVM based language, and like Java it is compiled into java bytecode files (.class). Below is the Scala version of Hello World:
We can simply use scalac hello.scala to build and then there would be two class files: HelloWorld.class and HelloWorld$.class. Using scala HelloWorld to execute and the screen should print:
scalac supports other options like -classpath,-verbose, also it provides advanced options beginning with -X and private options beginning with-Y.

### Scripting Scala

We can use scala as a script.For a scala source file script.scala
We can use scala script.scala world to run it, just like the Python script. However As of 23 December 2012, there is no support for shebang in Unix like system.
For eclipse and Intellij, there is also a scala script that can be used in the development environment.