KEMBAR78
The Scala Programming Language | PDF
Introduction to Scala
Haim Michael
November 22th
, 2015
All logos, trademarks and brand names used in this presentation, such as the logo of Scala
or any of its frameworks, belong to their respective owners. Haim Michael and LifeMichael
are independent and not related, affiliated or connected neither with Scala, EPFL, TypeSafe
or any of the companies and the technologies mentioned in this presentation.
LifeMichael.com
Table of Content
LifeMichael.com
● What is Scala?
● The Scala Story
● Scala Strengths
● Scala in The Industry
● Scala Comparison
● IDEs for Scala
● The Main Documentation
● Learning Resources
● Questions & Answers
What is Scala?
● Scala is a blend of object oriented programming and a
functional one. This mixture is the source of its strength.
● Scala is compatible with Java. The two languages are
interoperable with each other. We can integrate the code
we write in Scala with our code in Java and vice verso.
● Scala is kind of an improvement to Java. Not only that
Scala re-uses Java's types it also “dresses them up”.
scala-lang.org
LifeMichael.com
The Scala Story
● The development of Scala started in 2003 at EPFL by
Martin Odersky, who had previously worked on
developing the first Java compilers.
● Typesafe was founded in 2011 in order to assist
companies with the development of software
applications using the Scala programming language and
its frameworks.
www.typesafe.com
LifeMichael.com
The Scala Story
● HIT is one of the first academic institutions in the world in
which students learn Scala.
LifeMichael.com
http://www.scala-lang.org/old/node/203.html
Scala Strengths
LifeMichael.com
Scala
Java
● Comparing with Java, when using Scala our code
becomes significantly shorter.
class Rectangle {
private double width;
private double height;
public Rectangle (double width, double height) {
this.width = width;
this.height = height;
}
}
class Rectangle(var width: Double, var height: Double)
Scala Strengths
LifeMichael.com
● Scala runs on top of the JVM. We can seamlessly
integrate the code we write in Scala with code written in
Java.
● We can integrate Scala with .NET. The code in Scala
can be compiled into CLR byte code.
● The Scala compiler inferences the static types been
used. We don't need to tell it the types of our variables.
Scala Strengths
LifeMichael.com
● Revolutionary frameworks (e.g. AKKA, Finagle) that
were developed in Scala allow us to develop reactive
systems. Check www.reactivemanifesto.org for more info
about reactive programming.
● Scala provides us with sophisticated patterns matching
capabilities. The switch statement on steroids.
● Functions in Scala are first class objects. In Scala we
can easily develop and use higher order functions.
Scala Strengths
LifeMichael.com
● The operators in Scala are functions. We can easily
overload operators that already exist and invent new
ones.
● Scala allows us to define either objects, classes or traits.
The use of traits puts a new flexibility to the use of
interfaces.
● Scala provides us with futures and promises, simplifying
the development of concurrent and distributed programs.
Scala in The Industry
● Scala is highly popular on the server side. Many of the
companies that use Scala are either startup based with
highly talented people or very big companies with the
required budget.
LifeMichael.com
Scala Comparison
LifeMichael.com
Learning Curve
Popularity
Java
Scala
Easy Difficult
LowHigh
PHP
JavaScript
C#
Scala Comparison
LifeMichael.com
Object Oriented
Functional
Java
Scala
Weak Strong
WeakStrong
PHPJavaScript
C#
Scala Comparison
LifeMichael.com
Development Process
PlatformDependency
Java
Scala
Easy Difficult
LowHigh
PHP
JavaScript
C#
Scala Comparison
LifeMichael.com
Hosting Services
OpenSourceCommunity
Java
Scala
Few Many
SmallBig
PHP
JavaScript
C#
IDEs for Scala Development
● You can develop in Scala using the command line. You
can alternatively use one of the available Java IDEs. You
will need to install a plugin that allows coding in Scala.
LifeMichael.com
scala-ide.org www.netbeans.org
www.jetbrains.com/idea/
The Main Documentation
● You can find the complete API documentation online at
http://www.scala-lang.org/documentation/.
LifeMichael.com
Learning Resources
● In order to start developing in Scala the minimum would be
installing JDK and the Scala SDK right after.
● You can find the Scala SDK available for free at
http://www.scala-lang.org/download/.
LifeMichael.com
Learning Resources
● You can find an excellent free course by Martin Odersky
available for free at www.coursera.org.
LifeMichael.com
Learning Resources
● You can find the following excellent books written by Martin
Odersky.
LifeMichael.com
Learning Resources
● You can find the Israeli Guide to Scala available for free
personal use at http://www.scalabook.co.il.
LifeMichael.com
Learning Resources
● You can find a growing number of online free courses about
various topics in the Scala at http://abelski.lifemichael.com.
LifeMichael.com
Learning Resources
● You can find the biggest professional group about Scala on
Facebook at
https://www.facebook.com/groups/203788593023488
LifeMichael.com
Questions & Answers
If you enjoyed my seminar please leave me a comment
at http://speakerpedia.com/speakers/life-michael.
Thanks for your time!
Haim.
LifeMichael.com

The Scala Programming Language

  • 1.
    Introduction to Scala HaimMichael November 22th , 2015 All logos, trademarks and brand names used in this presentation, such as the logo of Scala or any of its frameworks, belong to their respective owners. Haim Michael and LifeMichael are independent and not related, affiliated or connected neither with Scala, EPFL, TypeSafe or any of the companies and the technologies mentioned in this presentation. LifeMichael.com
  • 2.
    Table of Content LifeMichael.com ●What is Scala? ● The Scala Story ● Scala Strengths ● Scala in The Industry ● Scala Comparison ● IDEs for Scala ● The Main Documentation ● Learning Resources ● Questions & Answers
  • 3.
    What is Scala? ●Scala is a blend of object oriented programming and a functional one. This mixture is the source of its strength. ● Scala is compatible with Java. The two languages are interoperable with each other. We can integrate the code we write in Scala with our code in Java and vice verso. ● Scala is kind of an improvement to Java. Not only that Scala re-uses Java's types it also “dresses them up”. scala-lang.org LifeMichael.com
  • 4.
    The Scala Story ●The development of Scala started in 2003 at EPFL by Martin Odersky, who had previously worked on developing the first Java compilers. ● Typesafe was founded in 2011 in order to assist companies with the development of software applications using the Scala programming language and its frameworks. www.typesafe.com LifeMichael.com
  • 5.
    The Scala Story ●HIT is one of the first academic institutions in the world in which students learn Scala. LifeMichael.com http://www.scala-lang.org/old/node/203.html
  • 6.
    Scala Strengths LifeMichael.com Scala Java ● Comparingwith Java, when using Scala our code becomes significantly shorter. class Rectangle { private double width; private double height; public Rectangle (double width, double height) { this.width = width; this.height = height; } } class Rectangle(var width: Double, var height: Double)
  • 7.
    Scala Strengths LifeMichael.com ● Scalaruns on top of the JVM. We can seamlessly integrate the code we write in Scala with code written in Java. ● We can integrate Scala with .NET. The code in Scala can be compiled into CLR byte code. ● The Scala compiler inferences the static types been used. We don't need to tell it the types of our variables.
  • 8.
    Scala Strengths LifeMichael.com ● Revolutionaryframeworks (e.g. AKKA, Finagle) that were developed in Scala allow us to develop reactive systems. Check www.reactivemanifesto.org for more info about reactive programming. ● Scala provides us with sophisticated patterns matching capabilities. The switch statement on steroids. ● Functions in Scala are first class objects. In Scala we can easily develop and use higher order functions.
  • 9.
    Scala Strengths LifeMichael.com ● Theoperators in Scala are functions. We can easily overload operators that already exist and invent new ones. ● Scala allows us to define either objects, classes or traits. The use of traits puts a new flexibility to the use of interfaces. ● Scala provides us with futures and promises, simplifying the development of concurrent and distributed programs.
  • 10.
    Scala in TheIndustry ● Scala is highly popular on the server side. Many of the companies that use Scala are either startup based with highly talented people or very big companies with the required budget. LifeMichael.com
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    IDEs for ScalaDevelopment ● You can develop in Scala using the command line. You can alternatively use one of the available Java IDEs. You will need to install a plugin that allows coding in Scala. LifeMichael.com scala-ide.org www.netbeans.org www.jetbrains.com/idea/
  • 16.
    The Main Documentation ●You can find the complete API documentation online at http://www.scala-lang.org/documentation/. LifeMichael.com
  • 17.
    Learning Resources ● Inorder to start developing in Scala the minimum would be installing JDK and the Scala SDK right after. ● You can find the Scala SDK available for free at http://www.scala-lang.org/download/. LifeMichael.com
  • 18.
    Learning Resources ● Youcan find an excellent free course by Martin Odersky available for free at www.coursera.org. LifeMichael.com
  • 19.
    Learning Resources ● Youcan find the following excellent books written by Martin Odersky. LifeMichael.com
  • 20.
    Learning Resources ● Youcan find the Israeli Guide to Scala available for free personal use at http://www.scalabook.co.il. LifeMichael.com
  • 21.
    Learning Resources ● Youcan find a growing number of online free courses about various topics in the Scala at http://abelski.lifemichael.com. LifeMichael.com
  • 22.
    Learning Resources ● Youcan find the biggest professional group about Scala on Facebook at https://www.facebook.com/groups/203788593023488 LifeMichael.com
  • 23.
    Questions & Answers Ifyou enjoyed my seminar please leave me a comment at http://speakerpedia.com/speakers/life-michael. Thanks for your time! Haim. LifeMichael.com