SlideShare a Scribd company logo
A quick introduction to: 
BRANDON L. GULLA 
CS722 - FALL 2014
History of Scala 
 Founded in 2001 by Martin Odersky at the Ecole 
Polytechnique Fédérale de Lausanne in France 
(surprise). 
 Wanted to create a language to solve functional 
programming problems from the research/scientific 
fields while maintaining the awesomeness that 
comes with object-oriented programming 
languages such as Java. 
 Scala's codebase had roots in Martin's previous 
work named Funnel. 
 Martin was lazy* though... 
*you'll get the pun later.
Scala for n00bs by a n00b.
Java as a foundation. 
 Odersky decided to create his new language on top 
of the Java Virtual Machine. 
 Scala is actually a library included in the Java 
CLASSPATH. 
 Martin decided to make the Scala language translate into 
Java byte code, a instruction set that could be read on 
everything from toasters to high-end enterprise work 
stations. 
 Confused?
Java Byte Code, Demystified
What's Scala look like? Hello World! 
• Scala source code files are saved as ___.scala just like ___.java 
• You compile scala with the scalac tool (included in the scala binary libraries)
But I like bells and whistles... 
 Scala was born to solve functional problems that mathematicians 
and Data-Scientists were facing. 
 Just because the language is powerful for extremely nerdy 
problems, it doesn't mean that it can't be pretty too! 
 Since Scala shares the same VirtualMachine as Java, it can actually 
use ANY Java package available, including GUI libraries such as 
Swing!
JOptionPane in Scala
But Why Scala? Isn't Java awesome enough? 
 No! 
 Well, actually Java is pretty awesome, but you can extend that 
awesomeness in Scala by using the same packages! 
 Example: import apache.commons.io._ 
 Scala was created to meet the increasing scalability concerns of 
distributed computing clusters. 
 Big Data Big Data Big Data.
How is Scala Different?... 
 Like languages such as SmallTalk and Objective-C, everything in Scala is 
an object. 
 There are no primitives in Scala (int, double, etc) but have been replaced 
by Int, Double, Float, etc. Even operators (+,-) are objects and thus can be 
re-defined! 
 Lambda / Anonymous Functions: 
 Scala allows you to create anonymous or Lambda functions. Lambda functions 
are functional definitions that are not bound to an identifier. They are often 
passed to another function as an argument. An example is below. 
 You can actually pass a function as an argument parameter to another 
function!
How is Scala Different?... 
(continued) 
 Reduced boilerplate. Map Reduce job in Java takes ~130 lines, but it 
only takes 4 lines in Scala. 
 val s = for (x <- 1 to 25 if x*x > 50) yield 2*x 
 While everything is technically an object, Scala is a strictly-typed 
programming language. This is a huge improvement over previously 
used programming languages such as python and ruby. 
 Scala code can be decompiled to readable Java code, with the 
exception of certain constructor operations. 
 The return operator is unnecessary in a function (although allowed); 
the value of the last executed statement or expression is normally the 
function's value. 
 Polymorphism in Scala is identical to Java.
How is Scala Different?... 
(continued some more ) 
 Functions do not need parenthesis to be called. Function or method 
foo() can also be called as just foo and method foo.toString() can 
also be called as just foo toString. 
 Default visibility in Scala is ‘public’. 
 It's fast.
Scala can be run in an interactive 
shell!
Examples
Examples Continued
Future of Scala in Industry
Scala is the Hipster of Programming 
Languages
• Who Uses Scala?
Questions? 
****( I'm no expert, so be nice) 
 Scala is open-sourced! Check it out on GitHub (github.com/scala) 
 Check out books such as Scala for the Java Developer and Scala 
for the Impatient.

More Related Content

ZIP
Why Scala for Web 2.0?
KEY
PPTX
Scala for C# Developers
PPTX
Introduction to Scala
PPTX
Scala - The Simple Parts, SFScala presentation
PPT
PDF
Why Scala?
PPTX
Scala-Ls1
Why Scala for Web 2.0?
Scala for C# Developers
Introduction to Scala
Scala - The Simple Parts, SFScala presentation
Why Scala?
Scala-Ls1

What's hot (20)

PPTX
Introduction to Scala language
PPTX
Scala - the good, the bad and the very ugly
PPTX
Lessons Learned: Scala and its Ecosystem
PDF
Haskell vs. F# vs. Scala
PPTX
Scala basic
ODP
Introduction to Scala
PDF
Preparing for Scala 3
PDF
What To Leave Implicit
PDF
Functional programming in scala
PDF
Lecture1
PPTX
flatMap Oslo presentation slides
PDF
Scala: An OO Surprise
PPTX
OCL in EMF
ODP
Enrich Your Models With OCL
ODP
Eclipse OCL Summary
ODP
OCL Integration and Code Generation
PDF
Enriching Your Models with OCL
PDF
An Introduction to Scala - Blending OO and Functional Paradigms
PDF
Applicative style programming
PDF
Why Scala Is Taking Over the Big Data World
Introduction to Scala language
Scala - the good, the bad and the very ugly
Lessons Learned: Scala and its Ecosystem
Haskell vs. F# vs. Scala
Scala basic
Introduction to Scala
Preparing for Scala 3
What To Leave Implicit
Functional programming in scala
Lecture1
flatMap Oslo presentation slides
Scala: An OO Surprise
OCL in EMF
Enrich Your Models With OCL
Eclipse OCL Summary
OCL Integration and Code Generation
Enriching Your Models with OCL
An Introduction to Scala - Blending OO and Functional Paradigms
Applicative style programming
Why Scala Is Taking Over the Big Data World
Ad

Viewers also liked (15)

PDF
King Joseph Personal Persona Project
PPTX
Ems tool-implementation
PPTX
Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02
PPT
Question
PDF
RCAMM_IEEE_RAICS_2013_6745453
DOCX
TAHIRU MUHAMMAD FAREEDU - CV
PPTX
ISO 9001:2015
PPTX
Apache Mesos Distributed Computing Talk
PPT
Purpose of clauses
PPTX
ISO documentation 9001
RTF
There are
PPTX
Occupational health and safety implementation
PPTX
ISO 9001: 2015
PPTX
Introducing iso 45001
King Joseph Personal Persona Project
Ems tool-implementation
Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02
Question
RCAMM_IEEE_RAICS_2013_6745453
TAHIRU MUHAMMAD FAREEDU - CV
ISO 9001:2015
Apache Mesos Distributed Computing Talk
Purpose of clauses
ISO documentation 9001
There are
Occupational health and safety implementation
ISO 9001: 2015
Introducing iso 45001
Ad

Similar to Scala for n00bs by a n00b. (20)

PDF
Scala, Akka, and Play: An Introduction on Heroku
ODP
A Tour Of Scala
PDF
Scala Programming A comprehensive beginner s guide to Scala 2nd Edition Claud...
PPT
Scala Days San Francisco
PDF
Martin Odersky - Evolution of Scala
PDF
A Brief, but Dense, Intro to Scala
PPTX
Spark - The Ultimate Scala Collections by Martin Odersky
PPTX
Learn scala and it's componenents learn it
PPTX
Scala final ppt vinay
PPTX
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
PDF
Scala and jvm_languages_praveen_technologist
PPTX
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
PDF
The Evolution of Scala / Scala進化論
PPTX
The Evolution of Scala
PDF
Martin Odersky: What's next for Scala
PDF
Principled io in_scala_2019_distribution
PPTX
An Introduction to Scala
PPTX
Beginning scala 02 15
PPTX
Introduction to scala for a c programmer
PPTX
Scala Introduction - Meetup Scaladores RJ
Scala, Akka, and Play: An Introduction on Heroku
A Tour Of Scala
Scala Programming A comprehensive beginner s guide to Scala 2nd Edition Claud...
Scala Days San Francisco
Martin Odersky - Evolution of Scala
A Brief, but Dense, Intro to Scala
Spark - The Ultimate Scala Collections by Martin Odersky
Learn scala and it's componenents learn it
Scala final ppt vinay
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Scala and jvm_languages_praveen_technologist
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
The Evolution of Scala / Scala進化論
The Evolution of Scala
Martin Odersky: What's next for Scala
Principled io in_scala_2019_distribution
An Introduction to Scala
Beginning scala 02 15
Introduction to scala for a c programmer
Scala Introduction - Meetup Scaladores RJ

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
cuic standard and advanced reporting.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Approach and Philosophy of On baking technology
PPTX
Cloud computing and distributed systems.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Programs and apps: productivity, graphics, security and other tools
20250228 LYD VKU AI Blended-Learning.pptx
Unlocking AI with Model Context Protocol (MCP)
Digital-Transformation-Roadmap-for-Companies.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
cuic standard and advanced reporting.pdf
The AUB Centre for AI in Media Proposal.docx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Dropbox Q2 2025 Financial Results & Investor Presentation
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Empathic Computing: Creating Shared Understanding
Network Security Unit 5.pdf for BCA BBA.
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Reach Out and Touch Someone: Haptics and Empathic Computing
Approach and Philosophy of On baking technology
Cloud computing and distributed systems.

Scala for n00bs by a n00b.

  • 1. A quick introduction to: BRANDON L. GULLA CS722 - FALL 2014
  • 2. History of Scala  Founded in 2001 by Martin Odersky at the Ecole Polytechnique Fédérale de Lausanne in France (surprise).  Wanted to create a language to solve functional programming problems from the research/scientific fields while maintaining the awesomeness that comes with object-oriented programming languages such as Java.  Scala's codebase had roots in Martin's previous work named Funnel.  Martin was lazy* though... *you'll get the pun later.
  • 4. Java as a foundation.  Odersky decided to create his new language on top of the Java Virtual Machine.  Scala is actually a library included in the Java CLASSPATH.  Martin decided to make the Scala language translate into Java byte code, a instruction set that could be read on everything from toasters to high-end enterprise work stations.  Confused?
  • 5. Java Byte Code, Demystified
  • 6. What's Scala look like? Hello World! • Scala source code files are saved as ___.scala just like ___.java • You compile scala with the scalac tool (included in the scala binary libraries)
  • 7. But I like bells and whistles...  Scala was born to solve functional problems that mathematicians and Data-Scientists were facing.  Just because the language is powerful for extremely nerdy problems, it doesn't mean that it can't be pretty too!  Since Scala shares the same VirtualMachine as Java, it can actually use ANY Java package available, including GUI libraries such as Swing!
  • 9. But Why Scala? Isn't Java awesome enough?  No!  Well, actually Java is pretty awesome, but you can extend that awesomeness in Scala by using the same packages!  Example: import apache.commons.io._  Scala was created to meet the increasing scalability concerns of distributed computing clusters.  Big Data Big Data Big Data.
  • 10. How is Scala Different?...  Like languages such as SmallTalk and Objective-C, everything in Scala is an object.  There are no primitives in Scala (int, double, etc) but have been replaced by Int, Double, Float, etc. Even operators (+,-) are objects and thus can be re-defined!  Lambda / Anonymous Functions:  Scala allows you to create anonymous or Lambda functions. Lambda functions are functional definitions that are not bound to an identifier. They are often passed to another function as an argument. An example is below.  You can actually pass a function as an argument parameter to another function!
  • 11. How is Scala Different?... (continued)  Reduced boilerplate. Map Reduce job in Java takes ~130 lines, but it only takes 4 lines in Scala.  val s = for (x <- 1 to 25 if x*x > 50) yield 2*x  While everything is technically an object, Scala is a strictly-typed programming language. This is a huge improvement over previously used programming languages such as python and ruby.  Scala code can be decompiled to readable Java code, with the exception of certain constructor operations.  The return operator is unnecessary in a function (although allowed); the value of the last executed statement or expression is normally the function's value.  Polymorphism in Scala is identical to Java.
  • 12. How is Scala Different?... (continued some more )  Functions do not need parenthesis to be called. Function or method foo() can also be called as just foo and method foo.toString() can also be called as just foo toString.  Default visibility in Scala is ‘public’.  It's fast.
  • 13. Scala can be run in an interactive shell!
  • 16. Future of Scala in Industry
  • 17. Scala is the Hipster of Programming Languages
  • 18. • Who Uses Scala?
  • 19. Questions? ****( I'm no expert, so be nice)  Scala is open-sourced! Check it out on GitHub (github.com/scala)  Check out books such as Scala for the Java Developer and Scala for the Impatient.