SlideShare a Scribd company logo
SCALA :
language of the future
by Robin Syihab
Mindtalk: @robin
Twitter: @anvie
Email: robin@mindtalk.com
Scala is
a Modern Programming language.
Created by Martin Odersky.
Static Typing
OOP + FP
Compiled into bytecode and run on top of JVM.
Java compatible binaries.
a better Java.
“If I were to pick a language
to use today other than
Java, it would be Scala”
~ James Gosling (father of Java).
Scala is
JVM Language
Java & Scala timeline
JVM Languages available today
Scala
Groovy
Fantom
Clojure
JRuby
Jython
Kotlin
Java & JVML timeline
“The legacy of Java will be the
platform, not the language.”
~ Martin Fowler (OOP programming expert)
Scala is
Scalable Language
“No other language on the JVM
seems as capable of being a
"replacement for Java" as Scala.”
~ Charlies Nutter (JRuby lead)
Scala in production
Scala Job Trends
Java vs Scala
(syntax)
Java
Scala
Scala
Java
Singleton
Scala
Java
Singleton Use
Scala
Java
Regex
Scala is powerful for
functional
programming
Scala
Java
Partitioning
Scala
Java
Calculating average
Scala is more than
“syntactic sugar language”
Scala is OOP
http://www.ibs.ro
Scala OOP
Object inheritance
Object and method accessibility
(public, protected, private).
Static method.
Mutable & Immutable variable.
Scala OOP
Scala : language of the future
Everything return value
Traits
Like interfaces in java, but
can have implementations
can have fields
can mix-in
Scala : language of the future
Scala is Functional
XML Literals
Scala support XML literals inside of code
XML literals
Lazy variable evaluation
LazyVariable Evaluation
// Use case
Pattern Matching
animal match {
case cat:Cat =>
cat.meow()
case tiger:Tiger =>
tiger.hoa()
}
Pattern Matching
Pattern Matching:
data extraction
Pattern Matching:
data extraction + guardian
Implicit definition
http://www.iwallscreen.com
“robin@mindtalk.com”.md5
Implicit definition: View bounds
robin say “hello”
robin.say(“hello”)
Lenient Invocation Syntax
object method parameter
Lenient Invocation Syntax
h(x) = y f(x, y)⟼
Currying Function
We need this simple code run robustly:
+ no crash when exception happen.
+ handle unicode UTF-8 correctly.
+ no memory leak.
Currying Function
Currying Function
Partial Function
http://bertzzie.com
Partial Function
Pipelining
Pattern Matching
Partial Function: Pipelining
Execution
Partial Function: Pipelining
Partial Function: Pattern Matching
Parameter
Partial Function: Pattern Matching
Actor
Concurrent Programming
When to use Actor?
If we want to build distributed system.
Handle massive concurrent request.
Needs for build event-driven
asynchronous application.
High performance lightweight than
Thread.
Scala Actor Local
Akka Actor: Distributed
100.10.10.1
Actor A
100.10.10.2
Actor B
100.10.10.3
Actor C
100.10.10.4
Actor D
event stream
http://akka.io/
Akka Actor
Support local & remote actor
Self-healing using supervisor
Decentralized
Adaptive load balancing
Configuration-driven
Extensible
Small memory footprint ~2.5 million actors per GB of
Heap
Event stream easy to handle cluster state
Akka Actor in production
TDD in Scala
http://lostechies.com
Scala testing framework
Scalatest
JUnit
Spec2
Gatling (performance test)
Specs2 Unit test
Specs2 Acceptance test
Specs2
Ok thats sound interesting,
but wait...
how with the development tools?
http://www.thetinylife.com
Development tools
IDE
Scala-IDE
(eclipse based)
NetBeans
IntellijIdea
Emacs (ENSIME)
Build System
Maven
SBT (Simple
Build Tools)
Project generator
Giter8
JRebel (incremental
development)
giter8
Build Scala “hello world”
application in minute
Thank you

More Related Content

What's hot (20)

PDF
Functional Programming In Practice
Michiel Borkent
 
PDF
Martin Odersky - Evolution of Scala
Scala Italy
 
PDF
The Evolution of Scala / Scala進化論
scalaconfjp
 
PDF
Introduction to Scala
Saleem Ansari
 
PPTX
The Evolution of Scala
Martin Odersky
 
PPTX
From Ruby to Scala
tod esking
 
PPTX
Introduction to Scala
Mohammad Hossein Rimaz
 
PPT
Scala in a nutshell by venkat
Venkateswaran Kandasamy
 
PDF
Scalax
Martin Odersky
 
PDF
Weaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
Taro L. Saito
 
PDF
Scala Days NYC 2016
Martin Odersky
 
KEY
The Why and How of Scala at Twitter
Alex Payne
 
PDF
20160520 what youneedtoknowaboutlambdas
shinolajla
 
PDF
Introduction to Scala for Java Developers
Michael Galpin
 
ODP
Refactoring to Scala DSLs and LiftOff 2009 Recap
Dave Orme
 
PDF
Scala eXchange opening
Martin Odersky
 
PPTX
Intro to Functional Programming in Scala
Shai Yallin
 
PDF
camel-scala.pdf
Hiroshi Ono
 
PDF
Preparing for Scala 3
Martin Odersky
 
KEY
Scala Introduction
Adrian Spender
 
Functional Programming In Practice
Michiel Borkent
 
Martin Odersky - Evolution of Scala
Scala Italy
 
The Evolution of Scala / Scala進化論
scalaconfjp
 
Introduction to Scala
Saleem Ansari
 
The Evolution of Scala
Martin Odersky
 
From Ruby to Scala
tod esking
 
Introduction to Scala
Mohammad Hossein Rimaz
 
Scala in a nutshell by venkat
Venkateswaran Kandasamy
 
Weaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
Taro L. Saito
 
Scala Days NYC 2016
Martin Odersky
 
The Why and How of Scala at Twitter
Alex Payne
 
20160520 what youneedtoknowaboutlambdas
shinolajla
 
Introduction to Scala for Java Developers
Michael Galpin
 
Refactoring to Scala DSLs and LiftOff 2009 Recap
Dave Orme
 
Scala eXchange opening
Martin Odersky
 
Intro to Functional Programming in Scala
Shai Yallin
 
camel-scala.pdf
Hiroshi Ono
 
Preparing for Scala 3
Martin Odersky
 
Scala Introduction
Adrian Spender
 

Viewers also liked (20)

PDF
Introduction à Scala - Michel Schinz - January 2010
JUG Lausanne
 
PDF
Scala at HUJI PL Seminar 2008
Yardena Meymann
 
PDF
BDX 2016 - Tzach zohar @ kenshoo
Ido Shilon
 
PDF
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
Eugene Yokota
 
PDF
Apache Hadoop YARN - Enabling Next Generation Data Applications
Hortonworks
 
PDF
Streaming Big Data with Spark, Kafka, Cassandra, Akka & Scala (from webinar)
Helena Edelson
 
PPTX
Introduction to YARN and MapReduce 2
Cloudera, Inc.
 
PPTX
Big data hadoop FAQ's
Ashraf Ali
 
PDF
夏俊鸾:Spark——基于内存的下一代大数据分析框架
hdhappy001
 
PDF
The Scala Programming Language
league
 
PDF
Scala at GenevaJUG by Iulian Dragos
GenevaJUG
 
PPTX
Scala for C# Developers
Omer van Kloeten
 
PDF
Java/Scala Lab 2016. Руслан Шевченко: Несколько трюков scala-разработки, приг...
GeeksLab Odessa
 
PPTX
Lambda выражения и Java 8
Alex Tumanoff
 
PDF
Lecture 3
Muhammad Fayyaz
 
PPTX
我在 Mac 上的常用开发工具
dennis zhuang
 
PDF
Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntacti...
Philip Schwarz
 
PDF
Clojure 1.8 Direct-Linking WWH
dennis zhuang
 
PPTX
Evaluasi user interface
AnsviaLab
 
PPTX
Hadoop
AnsviaLab
 
Introduction à Scala - Michel Schinz - January 2010
JUG Lausanne
 
Scala at HUJI PL Seminar 2008
Yardena Meymann
 
BDX 2016 - Tzach zohar @ kenshoo
Ido Shilon
 
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
Eugene Yokota
 
Apache Hadoop YARN - Enabling Next Generation Data Applications
Hortonworks
 
Streaming Big Data with Spark, Kafka, Cassandra, Akka & Scala (from webinar)
Helena Edelson
 
Introduction to YARN and MapReduce 2
Cloudera, Inc.
 
Big data hadoop FAQ's
Ashraf Ali
 
夏俊鸾:Spark——基于内存的下一代大数据分析框架
hdhappy001
 
The Scala Programming Language
league
 
Scala at GenevaJUG by Iulian Dragos
GenevaJUG
 
Scala for C# Developers
Omer van Kloeten
 
Java/Scala Lab 2016. Руслан Шевченко: Несколько трюков scala-разработки, приг...
GeeksLab Odessa
 
Lambda выражения и Java 8
Alex Tumanoff
 
Lecture 3
Muhammad Fayyaz
 
我在 Mac 上的常用开发工具
dennis zhuang
 
Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntacti...
Philip Schwarz
 
Clojure 1.8 Direct-Linking WWH
dennis zhuang
 
Evaluasi user interface
AnsviaLab
 
Hadoop
AnsviaLab
 
Ad

Similar to Scala : language of the future (20)

PDF
Scala and jvm_languages_praveen_technologist
pmanvi
 
PDF
Building Concurrent WebObjects applications with Scala
WO Community
 
PDF
Sparklife - Life In The Trenches With Spark
Ian Pointer
 
PDF
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Claus Ibsen
 
PDF
Scala overview
Steve Min
 
PPT
Scala
Andreas Enbohm
 
PDF
Scala the-good-parts
Fuqiang Wang
 
PDF
Bitter Java, Sweeten with JRuby
Brian Sam-Bodden
 
PDF
DSLs in JavaScript
elliando dias
 
PDF
The State of Managed Runtimes 2013, by Attila Szegedi
ZeroTurnaround
 
PDF
Scala - from "Hello, World" to "Heroku Scale"
Salesforce Developers
 
PDF
Why scala is not my ideal language and what I can do with this
Ruslan Shevchenko
 
PPT
Devoxx
Martin Odersky
 
PPT
Web Development Environments: Choose the best or go with the rest
george.james
 
PPTX
20 Years of Java - Story of HER life
Stojan Peshov
 
PPT
Ruby - The Hard Bits
Paul Gallagher
 
PDF
Jax keynote
Marcus Lagergren
 
PDF
Real-world polyglot programming on the JVM - Ben Summers (ONEIS)
jaxLondonConference
 
KEY
Intro to java
chrisramey
 
PPTX
Writing Hadoop Jobs in Scala using Scalding
Toni Cebrián
 
Scala and jvm_languages_praveen_technologist
pmanvi
 
Building Concurrent WebObjects applications with Scala
WO Community
 
Sparklife - Life In The Trenches With Spark
Ian Pointer
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Claus Ibsen
 
Scala overview
Steve Min
 
Scala the-good-parts
Fuqiang Wang
 
Bitter Java, Sweeten with JRuby
Brian Sam-Bodden
 
DSLs in JavaScript
elliando dias
 
The State of Managed Runtimes 2013, by Attila Szegedi
ZeroTurnaround
 
Scala - from "Hello, World" to "Heroku Scale"
Salesforce Developers
 
Why scala is not my ideal language and what I can do with this
Ruslan Shevchenko
 
Web Development Environments: Choose the best or go with the rest
george.james
 
20 Years of Java - Story of HER life
Stojan Peshov
 
Ruby - The Hard Bits
Paul Gallagher
 
Jax keynote
Marcus Lagergren
 
Real-world polyglot programming on the JVM - Ben Summers (ONEIS)
jaxLondonConference
 
Intro to java
chrisramey
 
Writing Hadoop Jobs in Scala using Scalding
Toni Cebrián
 
Ad

More from AnsviaLab (20)

PPT
Debian server
AnsviaLab
 
PPTX
Content marketing
AnsviaLab
 
PPTX
Usability test
AnsviaLab
 
PPTX
Search engine optimization
AnsviaLab
 
PPTX
File carving
AnsviaLab
 
PPTX
Blackbox And Whitebox Testing
AnsviaLab
 
PPTX
Bagaimana menjadi system administrator yang baik
AnsviaLab
 
PPTX
Technical writing
AnsviaLab
 
PPTX
Dynamic dns
AnsviaLab
 
PPTX
Mengamankan SSH ID
AnsviaLab
 
PDF
Best Practices For Writing Super Readable Code
AnsviaLab
 
PPT
Artificial intelligence deep learning
AnsviaLab
 
PPTX
Intercept Analyze Data
AnsviaLab
 
PPT
Omni plan
AnsviaLab
 
PPTX
Material Design With Polymer
AnsviaLab
 
PPT
The most technical mistakes in tech startup
AnsviaLab
 
ODP
Seo
AnsviaLab
 
ODP
Oop scala
AnsviaLab
 
PPTX
casperjs presentation
AnsviaLab
 
ODP
CAPISTRANO
AnsviaLab
 
Debian server
AnsviaLab
 
Content marketing
AnsviaLab
 
Usability test
AnsviaLab
 
Search engine optimization
AnsviaLab
 
File carving
AnsviaLab
 
Blackbox And Whitebox Testing
AnsviaLab
 
Bagaimana menjadi system administrator yang baik
AnsviaLab
 
Technical writing
AnsviaLab
 
Dynamic dns
AnsviaLab
 
Mengamankan SSH ID
AnsviaLab
 
Best Practices For Writing Super Readable Code
AnsviaLab
 
Artificial intelligence deep learning
AnsviaLab
 
Intercept Analyze Data
AnsviaLab
 
Omni plan
AnsviaLab
 
Material Design With Polymer
AnsviaLab
 
The most technical mistakes in tech startup
AnsviaLab
 
Oop scala
AnsviaLab
 
casperjs presentation
AnsviaLab
 
CAPISTRANO
AnsviaLab
 

Recently uploaded (20)

PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
July Patch Tuesday
Ivanti
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
July Patch Tuesday
Ivanti
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 

Scala : language of the future