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.
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

What's hot

Introduction to Scala language
Introduction to Scala languageIntroduction to Scala language
Introduction to Scala language
Aaqib Pervaiz
 
Scala - the good, the bad and the very ugly
Scala - the good, the bad and the very uglyScala - the good, the bad and the very ugly
Scala - the good, the bad and the very ugly
Bozhidar Bozhanov
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its Ecosystem
Petr Hošek
 
Haskell vs. F# vs. Scala
Haskell vs. F# vs. ScalaHaskell vs. F# vs. Scala
Haskell vs. F# vs. Scala
pt114
 
Scala basic
Scala basicScala basic
Scala basic
Nguyen Tuan
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
Synesso
 
Preparing for Scala 3
Preparing for Scala 3Preparing for Scala 3
Preparing for Scala 3
Martin Odersky
 
What To Leave Implicit
What To Leave ImplicitWhat To Leave Implicit
What To Leave Implicit
Martin Odersky
 
Functional programming in scala
Functional programming in scalaFunctional programming in scala
Functional programming in scalaStratio
 
Lecture1
Lecture1Lecture1
Lecture1
Muhammad Fayyaz
 
flatMap Oslo presentation slides
flatMap Oslo presentation slidesflatMap Oslo presentation slides
flatMap Oslo presentation slidesMartin Odersky
 
Scala: An OO Surprise
Scala: An OO SurpriseScala: An OO Surprise
Scala: An OO Surprise
Apostolos Syropoulos
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCL
Edward Willink
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
Edward Willink
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
Edward Willink
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCL
Edward Willink
 
An Introduction to Scala - Blending OO and Functional Paradigms
An Introduction to Scala - Blending OO and Functional ParadigmsAn Introduction to Scala - Blending OO and Functional Paradigms
An Introduction to Scala - Blending OO and Functional ParadigmsMiles Sabin
 
Applicative style programming
Applicative style programmingApplicative style programming
Applicative style programming
José Luis García Hernández
 
Why Scala Is Taking Over the Big Data World
Why Scala Is Taking Over the Big Data WorldWhy Scala Is Taking Over the Big Data World
Why Scala Is Taking Over the Big Data World
Dean Wampler
 

What's hot (20)

Introduction to Scala language
Introduction to Scala languageIntroduction to Scala language
Introduction to Scala language
 
Scala - the good, the bad and the very ugly
Scala - the good, the bad and the very uglyScala - the good, the bad and the very ugly
Scala - the good, the bad and the very ugly
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its Ecosystem
 
Haskell vs. F# vs. Scala
Haskell vs. F# vs. ScalaHaskell vs. F# vs. Scala
Haskell vs. F# vs. Scala
 
Scala basic
Scala basicScala basic
Scala basic
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
Preparing for Scala 3
Preparing for Scala 3Preparing for Scala 3
Preparing for Scala 3
 
What To Leave Implicit
What To Leave ImplicitWhat To Leave Implicit
What To Leave Implicit
 
Functional programming in scala
Functional programming in scalaFunctional programming in scala
Functional programming in scala
 
Lecture1
Lecture1Lecture1
Lecture1
 
flatMap Oslo presentation slides
flatMap Oslo presentation slidesflatMap Oslo presentation slides
flatMap Oslo presentation slides
 
Scala: An OO Surprise
Scala: An OO SurpriseScala: An OO Surprise
Scala: An OO Surprise
 
OCL in EMF
OCL in EMFOCL in EMF
OCL in EMF
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCL
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCL
 
An Introduction to Scala - Blending OO and Functional Paradigms
An Introduction to Scala - Blending OO and Functional ParadigmsAn Introduction to Scala - Blending OO and Functional Paradigms
An Introduction to Scala - Blending OO and Functional Paradigms
 
Applicative style programming
Applicative style programmingApplicative style programming
Applicative style programming
 
Why Scala Is Taking Over the Big Data World
Why Scala Is Taking Over the Big Data WorldWhy Scala Is Taking Over the Big Data World
Why Scala Is Taking Over the Big Data World
 

Viewers also liked

King Joseph Personal Persona Project
King Joseph Personal Persona ProjectKing Joseph Personal Persona Project
King Joseph Personal Persona Project
Joseph King
 
Ems tool-implementation
Ems tool-implementationEms tool-implementation
Ems tool-implementation
Dr Madhu Aman Sharma
 
Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02
Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02
Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02Bayram Altınöz
 
RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453Shekhar Parkhi
 
ISO 9001:2015
ISO 9001:2015ISO 9001:2015
ISO 9001:2015
Dr Madhu Aman Sharma
 
Apache Mesos Distributed Computing Talk
Apache Mesos Distributed Computing Talk Apache Mesos Distributed Computing Talk
Apache Mesos Distributed Computing Talk
brandongulla
 
Purpose of clauses
Purpose of clausesPurpose of clauses
Purpose of clausesSarah Naser
 
ISO documentation 9001
ISO documentation 9001ISO documentation 9001
ISO documentation 9001
Dr Madhu Aman Sharma
 
Occupational health and safety implementation
Occupational health and safety implementationOccupational health and safety implementation
Occupational health and safety implementation
Dr Madhu Aman Sharma
 
ISO 9001: 2015
ISO 9001: 2015 ISO 9001: 2015
ISO 9001: 2015
Dr Madhu Aman Sharma
 
Introducing iso 45001
Introducing iso 45001Introducing iso 45001
Introducing iso 45001
Dr Madhu Aman Sharma
 

Viewers also liked (15)

King Joseph Personal Persona Project
King Joseph Personal Persona ProjectKing Joseph Personal Persona Project
King Joseph Personal Persona Project
 
Ems tool-implementation
Ems tool-implementationEms tool-implementation
Ems tool-implementation
 
Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02
Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02
Hastayaraliveolayyerideerlendirilmesi 140305133107-phpapp02
 
TransCript
TransCriptTransCript
TransCript
 
Question
Question Question
Question
 
RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453
 
TAHIRU MUHAMMAD FAREEDU - CV
TAHIRU MUHAMMAD FAREEDU - CVTAHIRU MUHAMMAD FAREEDU - CV
TAHIRU MUHAMMAD FAREEDU - CV
 
ISO 9001:2015
ISO 9001:2015ISO 9001:2015
ISO 9001:2015
 
Apache Mesos Distributed Computing Talk
Apache Mesos Distributed Computing Talk Apache Mesos Distributed Computing Talk
Apache Mesos Distributed Computing Talk
 
Purpose of clauses
Purpose of clausesPurpose of clauses
Purpose of clauses
 
ISO documentation 9001
ISO documentation 9001ISO documentation 9001
ISO documentation 9001
 
There are
There areThere are
There are
 
Occupational health and safety implementation
Occupational health and safety implementationOccupational health and safety implementation
Occupational health and safety implementation
 
ISO 9001: 2015
ISO 9001: 2015 ISO 9001: 2015
ISO 9001: 2015
 
Introducing iso 45001
Introducing iso 45001Introducing iso 45001
Introducing iso 45001
 

Similar to Scala for n00bs by a n00b.

Scala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on HerokuScala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on HerokuHavoc Pennington
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
fanf42
 
Scala Days San Francisco
Scala Days San FranciscoScala Days San Francisco
Scala Days San Francisco
Martin Odersky
 
Martin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaMartin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaScala Italy
 
A Brief, but Dense, Intro to Scala
A Brief, but Dense, Intro to ScalaA Brief, but Dense, Intro to Scala
A Brief, but Dense, Intro to Scala
Derek Chen-Becker
 
Spark - The Ultimate Scala Collections by Martin Odersky
Spark - The Ultimate Scala Collections by Martin OderskySpark - The Ultimate Scala Collections by Martin Odersky
Spark - The Ultimate Scala Collections by Martin Odersky
Spark Summit
 
Learn scala and it's componenents learn it
Learn scala and it's componenents learn itLearn scala and it's componenents learn it
Learn scala and it's componenents learn it
siddharth30121
 
Scala final ppt vinay
Scala final ppt vinayScala final ppt vinay
Scala final ppt vinay
Viplav Jain
 
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign SolutionsTen Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
MetaDesign Solutions
 
Scala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologistScala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologist
pmanvi
 
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Codemotion
 
The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論
scalaconfjp
 
The Evolution of Scala
The Evolution of ScalaThe Evolution of Scala
The Evolution of Scala
Martin Odersky
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
Marakana Inc.
 
Principled io in_scala_2019_distribution
Principled io in_scala_2019_distributionPrincipled io in_scala_2019_distribution
Principled io in_scala_2019_distribution
Raymond Tay
 
An Introduction to Scala
An Introduction to ScalaAn Introduction to Scala
An Introduction to ScalaBrent Lemons
 
Beginning scala 02 15
Beginning scala 02 15Beginning scala 02 15
Beginning scala 02 15
lancegatlin
 
Introduction to scala for a c programmer
Introduction to scala for a c programmerIntroduction to scala for a c programmer
Introduction to scala for a c programmerGirish Kumar A L
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
Rodrigo Lima
 
Quick introduction to scala
Quick introduction to scalaQuick introduction to scala
Quick introduction to scala
Mohammad Hossein Rimaz
 

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

Scala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on HerokuScala, Akka, and Play: An Introduction on Heroku
Scala, Akka, and Play: An Introduction on Heroku
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
 
Scala Days San Francisco
Scala Days San FranciscoScala Days San Francisco
Scala Days San Francisco
 
Martin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaMartin Odersky - Evolution of Scala
Martin Odersky - Evolution of Scala
 
A Brief, but Dense, Intro to Scala
A Brief, but Dense, Intro to ScalaA Brief, but Dense, Intro to Scala
A Brief, but Dense, Intro to Scala
 
Spark - The Ultimate Scala Collections by Martin Odersky
Spark - The Ultimate Scala Collections by Martin OderskySpark - The Ultimate Scala Collections by Martin Odersky
Spark - The Ultimate Scala Collections by Martin Odersky
 
Learn scala and it's componenents learn it
Learn scala and it's componenents learn itLearn scala and it's componenents learn it
Learn scala and it's componenents learn it
 
Scala final ppt vinay
Scala final ppt vinayScala final ppt vinay
Scala final ppt vinay
 
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign SolutionsTen Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
 
Scala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologistScala and jvm_languages_praveen_technologist
Scala and jvm_languages_praveen_technologist
 
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
 
The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論The Evolution of Scala / Scala進化論
The Evolution of Scala / Scala進化論
 
The Evolution of Scala
The Evolution of ScalaThe Evolution of Scala
The Evolution of Scala
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
 
Principled io in_scala_2019_distribution
Principled io in_scala_2019_distributionPrincipled io in_scala_2019_distribution
Principled io in_scala_2019_distribution
 
An Introduction to Scala
An Introduction to ScalaAn Introduction to Scala
An Introduction to Scala
 
Beginning scala 02 15
Beginning scala 02 15Beginning scala 02 15
Beginning scala 02 15
 
Introduction to scala for a c programmer
Introduction to scala for a c programmerIntroduction to scala for a c programmer
Introduction to scala for a c programmer
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
 
Quick introduction to scala
Quick introduction to scalaQuick introduction to scala
Quick introduction to scala
 

Recently uploaded

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

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.
  • 3.
  • 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.