SlideShare a Scribd company logo

Scala in Practice at Jazoon Tech Day, Oct 23 2015, Zurich

A pragmatic view on Scala language adoption: - Should a Pragmatist Care About languages? - The Case For Scala - Scala in The Real World - Scala Adoption Done Right

1 of 53
Download to read offline
Scala in Practice
A pragmatic view on programming language adoption
Lutz Huehnken - Solutions Architect, Typesafe, Inc.
@lutzhuehnken
I.Should a Pragmatist Care About languages?
II.The Case For Scala
III.Scala in The Real World
IV.Scala Adoption Done Right
I.Should a Pragmatist Care About languages?
II.The Case For Scala
III.Scala in The Real World
IV.Scala Adoption Done Right
Scala in Practice at Jazoon Tech Day, Oct 23 2015, Zurich
Jazoon - Scala in Practice 5
Telling The Computer What To Do..
A programming language is for telling the computer what to do
Any Turing-complete language can do that
Jazoon - Scala in Practice 6
.. vs. Building A Model Of The World
The World is
• People and things (objects) interacting which each other?
• Described by laws of science and mathematics?
• Based on logic?
Ad

Recommended

My talk at Linux Piter 2016
My talk at Linux Piter 2016My talk at Linux Piter 2016
My talk at Linux Piter 2016Alex Chistyakov
 
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...jaxLondonConference
 
Infographic on Scala Programming Language
Infographic on Scala Programming LanguageInfographic on Scala Programming Language
Infographic on Scala Programming LanguagePaddy Lock
 
Scala: the language of languages - Mario Fusco (Red Hat)
Scala: the language of languages - Mario Fusco (Red Hat)Scala: the language of languages - Mario Fusco (Red Hat)
Scala: the language of languages - Mario Fusco (Red Hat)Scala Italy
 
Maven c'est bien, SBT c'est mieux
Maven c'est bien, SBT c'est mieuxMaven c'est bien, SBT c'est mieux
Maven c'est bien, SBT c'est mieuxFabrice Sznajderman
 

More Related Content

Viewers also liked (20)

Les monades Scala, Java 8
Les monades Scala, Java 8Les monades Scala, Java 8
Les monades Scala, Java 8
 
Université des langages scala
Université des langages   scalaUniversité des langages   scala
Université des langages scala
 
Scala Intro
Scala IntroScala Intro
Scala Intro
 
Lagom, reactive framework
Lagom, reactive frameworkLagom, reactive framework
Lagom, reactive framework
 
Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (kl10tch 10.03.2015)Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (kl10tch 10.03.2015)
 
Scala magic
Scala magicScala magic
Scala magic
 
Feature suggester
Feature suggesterFeature suggester
Feature suggester
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
 
Erlang
ErlangErlang
Erlang
 
Scala training
Scala trainingScala training
Scala training
 
Scala #3
Scala #3Scala #3
Scala #3
 
Scala #4
Scala #4Scala #4
Scala #4
 
Lec 2
Lec 2Lec 2
Lec 2
 
Scala #5
Scala #5Scala #5
Scala #5
 
Scala plugin for IntelliJ IDEA
Scala plugin for IntelliJ IDEAScala plugin for IntelliJ IDEA
Scala plugin for IntelliJ IDEA
 
Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)
 
Scala lecture #4
Scala lecture #4Scala lecture #4
Scala lecture #4
 
Scala #2
Scala #2Scala #2
Scala #2
 
Under the hood of scala implicits (Scala eXchange 2014)
Under the hood of scala implicits (Scala eXchange 2014)Under the hood of scala implicits (Scala eXchange 2014)
Under the hood of scala implicits (Scala eXchange 2014)
 
Backend: Пишем на Scala для браузера
Backend: Пишем на Scala для браузераBackend: Пишем на Scala для браузера
Backend: Пишем на Scala для браузера
 

Similar to Scala in Practice at Jazoon Tech Day, Oct 23 2015, Zurich

Scala - from "Hello, World" to "Heroku Scale"
Scala - from "Hello, World" to "Heroku Scale"Scala - from "Hello, World" to "Heroku Scale"
Scala - from "Hello, World" to "Heroku Scale"Salesforce Developers
 
Code Europe Spring 2018 - Mind the Gap
Code Europe Spring 2018 -  Mind the GapCode Europe Spring 2018 -  Mind the Gap
Code Europe Spring 2018 - Mind the GapRichard Abbuhl
 
Java With The Best Online Conference - Mind the gap: Java, Machine Learning, ...
Java With The Best Online Conference - Mind the gap: Java, Machine Learning, ...Java With The Best Online Conference - Mind the gap: Java, Machine Learning, ...
Java With The Best Online Conference - Mind the gap: Java, Machine Learning, ...Richard Abbuhl
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprisesMike Slinn
 
Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Martijn Verburg
 
Why scala for data science
Why scala for data scienceWhy scala for data science
Why scala for data scienceGuglielmo Iozzia
 
Java magazine jan feb 2018
Java magazine jan feb 2018Java magazine jan feb 2018
Java magazine jan feb 2018Acacio Martins
 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkIan Pointer
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsChristian Heilmann
 
Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab
 
Introduction to Clojure
Introduction to ClojureIntroduction to Clojure
Introduction to ClojureRenzo Borgatti
 
Real-World Functional Programming @ Incubaid
Real-World Functional Programming @ IncubaidReal-World Functional Programming @ Incubaid
Real-World Functional Programming @ IncubaidNicolas Trangez
 
Scala final ppt vinay
Scala final ppt vinayScala final ppt vinay
Scala final ppt vinayViplav Jain
 
Scala for n00bs by a n00b.
Scala for n00bs by a n00b.Scala for n00bs by a n00b.
Scala for n00bs by a n00b.brandongulla
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...InfinIT - Innovationsnetværket for it
 
Principled io in_scala_2019_distribution
Principled io in_scala_2019_distributionPrincipled io in_scala_2019_distribution
Principled io in_scala_2019_distributionRaymond Tay
 

Similar to Scala in Practice at Jazoon Tech Day, Oct 23 2015, Zurich (20)

Scala - from "Hello, World" to "Heroku Scale"
Scala - from "Hello, World" to "Heroku Scale"Scala - from "Hello, World" to "Heroku Scale"
Scala - from "Hello, World" to "Heroku Scale"
 
Code Europe Spring 2018 - Mind the Gap
Code Europe Spring 2018 -  Mind the GapCode Europe Spring 2018 -  Mind the Gap
Code Europe Spring 2018 - Mind the Gap
 
ING - Mind the Gap
ING - Mind the GapING - Mind the Gap
ING - Mind the Gap
 
Java With The Best Online Conference - Mind the gap: Java, Machine Learning, ...
Java With The Best Online Conference - Mind the gap: Java, Machine Learning, ...Java With The Best Online Conference - Mind the gap: Java, Machine Learning, ...
Java With The Best Online Conference - Mind the gap: Java, Machine Learning, ...
 
Jax keynote
Jax keynoteJax keynote
Jax keynote
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprises
 
Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)
 
scala-intro
scala-introscala-intro
scala-intro
 
Why scala for data science
Why scala for data scienceWhy scala for data science
Why scala for data science
 
Java magazine jan feb 2018
Java magazine jan feb 2018Java magazine jan feb 2018
Java magazine jan feb 2018
 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With Spark
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teams
 
scilab
scilabscilab
scilab
 
Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1
 
Introduction to Clojure
Introduction to ClojureIntroduction to Clojure
Introduction to Clojure
 
Real-World Functional Programming @ Incubaid
Real-World Functional Programming @ IncubaidReal-World Functional Programming @ Incubaid
Real-World Functional Programming @ Incubaid
 
Scala final ppt vinay
Scala final ppt vinayScala final ppt vinay
Scala final ppt vinay
 
Scala for n00bs by a n00b.
Scala for n00bs by a n00b.Scala for n00bs by a n00b.
Scala for n00bs by a n00b.
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...
 
Principled io in_scala_2019_distribution
Principled io in_scala_2019_distributionPrincipled io in_scala_2019_distribution
Principled io in_scala_2019_distribution
 

More from Lutz Hühnken

Lagom at Java Forum Nord, October 20, 2016
Lagom at Java Forum Nord, October 20, 2016Lagom at Java Forum Nord, October 20, 2016
Lagom at Java Forum Nord, October 20, 2016Lutz Hühnken
 
Lagom at hybris Reactive Software Munich Meetup, April 13, 2016
Lagom at hybris Reactive Software Munich Meetup, April 13, 2016Lagom at hybris Reactive Software Munich Meetup, April 13, 2016
Lagom at hybris Reactive Software Munich Meetup, April 13, 2016Lutz Hühnken
 
JVM Concurrency auf der JavaLand am 8. März 2016
JVM Concurrency auf der JavaLand am 8. März 2016JVM Concurrency auf der JavaLand am 8. März 2016
JVM Concurrency auf der JavaLand am 8. März 2016Lutz Hühnken
 
Building Applications with the Typesafe Reactive Platform at Skills Matter, L...
Building Applications with the Typesafe Reactive Platform at Skills Matter, L...Building Applications with the Typesafe Reactive Platform at Skills Matter, L...
Building Applications with the Typesafe Reactive Platform at Skills Matter, L...Lutz Hühnken
 
JVM Concurrency on Devoxx at Nov 12 2015
JVM Concurrency on Devoxx at Nov 12 2015JVM Concurrency on Devoxx at Nov 12 2015
JVM Concurrency on Devoxx at Nov 12 2015Lutz Hühnken
 
Concurrency-Modelle auf der JVM auf der w-jax 3.11.2015
Concurrency-Modelle auf der JVM auf der w-jax 3.11.2015Concurrency-Modelle auf der JVM auf der w-jax 3.11.2015
Concurrency-Modelle auf der JVM auf der w-jax 3.11.2015Lutz Hühnken
 
JVM Concurreny Models at code.talks, Hamburg, 30.9.2015
JVM Concurreny Models at code.talks, Hamburg, 30.9.2015JVM Concurreny Models at code.talks, Hamburg, 30.9.2015
JVM Concurreny Models at code.talks, Hamburg, 30.9.2015Lutz Hühnken
 
Scala.js at code.talks 2014, Hamburg
Scala.js at code.talks 2014, HamburgScala.js at code.talks 2014, Hamburg
Scala.js at code.talks 2014, HamburgLutz Hühnken
 
A Pragmatic View of Reactive
A Pragmatic View of ReactiveA Pragmatic View of Reactive
A Pragmatic View of ReactiveLutz Hühnken
 
Reactive Slick at Scala User Group Vienna May 20 2015
Reactive Slick at Scala User Group Vienna May 20 2015Reactive Slick at Scala User Group Vienna May 20 2015
Reactive Slick at Scala User Group Vienna May 20 2015Lutz Hühnken
 
Von "Enterprise" zu "Reactive" (JAX 2015)
Von "Enterprise" zu "Reactive" (JAX 2015)Von "Enterprise" zu "Reactive" (JAX 2015)
Von "Enterprise" zu "Reactive" (JAX 2015)Lutz Hühnken
 

More from Lutz Hühnken (11)

Lagom at Java Forum Nord, October 20, 2016
Lagom at Java Forum Nord, October 20, 2016Lagom at Java Forum Nord, October 20, 2016
Lagom at Java Forum Nord, October 20, 2016
 
Lagom at hybris Reactive Software Munich Meetup, April 13, 2016
Lagom at hybris Reactive Software Munich Meetup, April 13, 2016Lagom at hybris Reactive Software Munich Meetup, April 13, 2016
Lagom at hybris Reactive Software Munich Meetup, April 13, 2016
 
JVM Concurrency auf der JavaLand am 8. März 2016
JVM Concurrency auf der JavaLand am 8. März 2016JVM Concurrency auf der JavaLand am 8. März 2016
JVM Concurrency auf der JavaLand am 8. März 2016
 
Building Applications with the Typesafe Reactive Platform at Skills Matter, L...
Building Applications with the Typesafe Reactive Platform at Skills Matter, L...Building Applications with the Typesafe Reactive Platform at Skills Matter, L...
Building Applications with the Typesafe Reactive Platform at Skills Matter, L...
 
JVM Concurrency on Devoxx at Nov 12 2015
JVM Concurrency on Devoxx at Nov 12 2015JVM Concurrency on Devoxx at Nov 12 2015
JVM Concurrency on Devoxx at Nov 12 2015
 
Concurrency-Modelle auf der JVM auf der w-jax 3.11.2015
Concurrency-Modelle auf der JVM auf der w-jax 3.11.2015Concurrency-Modelle auf der JVM auf der w-jax 3.11.2015
Concurrency-Modelle auf der JVM auf der w-jax 3.11.2015
 
JVM Concurreny Models at code.talks, Hamburg, 30.9.2015
JVM Concurreny Models at code.talks, Hamburg, 30.9.2015JVM Concurreny Models at code.talks, Hamburg, 30.9.2015
JVM Concurreny Models at code.talks, Hamburg, 30.9.2015
 
Scala.js at code.talks 2014, Hamburg
Scala.js at code.talks 2014, HamburgScala.js at code.talks 2014, Hamburg
Scala.js at code.talks 2014, Hamburg
 
A Pragmatic View of Reactive
A Pragmatic View of ReactiveA Pragmatic View of Reactive
A Pragmatic View of Reactive
 
Reactive Slick at Scala User Group Vienna May 20 2015
Reactive Slick at Scala User Group Vienna May 20 2015Reactive Slick at Scala User Group Vienna May 20 2015
Reactive Slick at Scala User Group Vienna May 20 2015
 
Von "Enterprise" zu "Reactive" (JAX 2015)
Von "Enterprise" zu "Reactive" (JAX 2015)Von "Enterprise" zu "Reactive" (JAX 2015)
Von "Enterprise" zu "Reactive" (JAX 2015)
 

Recently uploaded

Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementEmbracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementOnePlan Solutions
 
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ..."Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...ISPMAIndia
 
P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetMatthewTHawley
 
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이ssuser82c38d
 
killingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfkillingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfssuser82c38d
 
maximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsmaximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsssuser82c38d
 
AI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriAI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriISPMAIndia
 
Automation for Bonterra Impact Management (fka Apricot)
Automation for Bonterra Impact Management (fka Apricot)Automation for Bonterra Impact Management (fka Apricot)
Automation for Bonterra Impact Management (fka Apricot)Jeffrey Haguewood
 
No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!Anthony Dahanne
 
LLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flowLLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flowNaoki (Neo) SATO
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkTimothy Spann
 
killing camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfkilling camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfssuser82c38d
 
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...emili denli
 
OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20Shane Coughlan
 
Getting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxGetting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxmavinoikein
 
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdfAUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdfAutokey
 
Sql server types of joins with example.pptx
Sql server types of joins with example.pptxSql server types of joins with example.pptx
Sql server types of joins with example.pptxsameer gaikwad
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!ISPMAIndia
 
SPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementSPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementISPMAIndia
 

Recently uploaded (20)

Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementEmbracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
 
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ..."Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
 
P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 Smartsheet
 
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
 
killingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfkillingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdf
 
maximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsmaximum subarray ppt for killing camp students
maximum subarray ppt for killing camp students
 
AI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriAI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit Bendigiri
 
Automation for Bonterra Impact Management (fka Apricot)
Automation for Bonterra Impact Management (fka Apricot)Automation for Bonterra Impact Management (fka Apricot)
Automation for Bonterra Impact Management (fka Apricot)
 
No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!
 
LLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flowLLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flow
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
 
killing camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfkilling camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdf
 
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
 
OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20
 
Getting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxGetting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptx
 
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdfAUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
 
Sql server types of joins with example.pptx
Sql server types of joins with example.pptxSql server types of joins with example.pptx
Sql server types of joins with example.pptx
 
eLearning Content Development Company Code and Pixels.pdf
eLearning Content Development Company Code and Pixels.pdfeLearning Content Development Company Code and Pixels.pdf
eLearning Content Development Company Code and Pixels.pdf
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!
 
SPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementSPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product Management
 

Scala in Practice at Jazoon Tech Day, Oct 23 2015, Zurich

  • 1. Scala in Practice A pragmatic view on programming language adoption Lutz Huehnken - Solutions Architect, Typesafe, Inc. @lutzhuehnken
  • 2. I.Should a Pragmatist Care About languages? II.The Case For Scala III.Scala in The Real World IV.Scala Adoption Done Right
  • 3. I.Should a Pragmatist Care About languages? II.The Case For Scala III.Scala in The Real World IV.Scala Adoption Done Right
  • 5. Jazoon - Scala in Practice 5 Telling The Computer What To Do.. A programming language is for telling the computer what to do Any Turing-complete language can do that
  • 6. Jazoon - Scala in Practice 6 .. vs. Building A Model Of The World The World is • People and things (objects) interacting which each other? • Described by laws of science and mathematics? • Based on logic?
  • 7. Jazoon - Scala in Practice 7 Ludwig Wittgenstein (1889 - 1951) The limits of my language are the limits of my mind. 
 All I know is what I have words for. Image from Wikipedia
  • 8. Jazoon - Scala in Practice 8 A. Expressiveness OOP Functional Programming Model Logic Programming
  • 9. Jazoon - Scala in Practice 9 B. Productivity Managed Runtime / Garbage Collection > No Garbage Collection Strongly Typed & Static Type-Checking > Weakly Typed or Dynamic Type-Checking
  • 10. Jazoon - Scala in Practice 10 C. Community https://twitter.com/kilaulena/status/463317989648248832
  • 11. Jazoon - Scala in Practice 11 Pragmatic Language Choice Expressiveness Productivity Language Communities
  • 12. I.Should a Pragmatist Care About languages? II.The Case For Scala III.Scala in The Real World IV.Scala Adoption Done Right
  • 13. Jazoon - Scala in Practice 13 Scala unifies OO and FP http://www.scala-lang.org
  • 14. Jazoon - Scala in Practice 14 Scala leverages the JVM Eco System
  • 15. Jazoon - Scala in Practice 15 Scala & Java For All You Know, It's Just a Java Library The customer asks "Where's the Scala part?" I answer "It's in this JAR file." He goes "But, your program is written in Scala, but I looked at the byte-code and it's just Java." I answer "It's Scala... but it compiles down to Java byte-code and it runs in a Java debugger and you can't tell the difference." "You're right," he says. So, to this customer's JVM, the Scala and Lift code looks, smells and tastes just like Java code. If I renamed the scala-library.jar file to apache-closures.jar, nobody would know the difference... at all. http://blog.goodstuff.im/just_another_java_library
  • 16. Jazoon - Scala in Practice 16 Communities: Java Internet Tech in Enterprises Mobile Java Android Java EE Spring
  • 17. Jazoon - Scala in Practice 17 Communities: Python Scientific Computing Data Science Python iPython Notebook NumPy SciPy
  • 18. Jazoon - Scala in Practice 18 Communities: Scala Reactive Systems Big Data Scala Spark Akka ScalaZ Functional Programming Typelevel (shapeless, cats, ..)
  • 19. Jazoon - Scala in Practice 19 The Case For Scala Expressiveness Productivity Scala OO Big Data! Communities Reactive! Java Eco System and Tooling FP
  • 20. I.Should a Pragmatist Care About languages? II.The Case For Scala III.Scala in The Real World IV.Scala Adoption Done Right
  • 21. Jazoon - Scala in Practice
  • 22. Jazoon - Scala in Practice 22 Apache Kafka • Developed at LinkedIn
 • Typical use-case: central publish- subscribe log for integrating data between applications, stream processing, data ingestion (Spark, Hadoop)
  • 23. Jazoon - Scala in Practice 23 Apache Kafka • 3x Intel Xeon 2.5 GHz processor (6 cores)
 • Three producers, 3x async replication • 2,024,032 records/sec
 • Three Consumers • 2,615,968 records/sec
  • 24. Jazoon - Scala in Practice
  • 25. Jazoon - Scala in Practice 25 It’s just too big right now to not mention it..
  • 26. Jazoon - Scala in Practice
  • 27. Jazoon - Scala in Practice 27 Twitter - may be not the role model for your company • Early adaptor, but highly customized • E.g. Twitter „Futures“ • Twitter-Stack (Finagle etc.) • Build system (Pants) • But • Performance / scaling problem solved • Scala going strong at Twitter for 6 years now • And with some impact - „Server as a Function“
  • 28. Jazoon - Scala in Practice
  • 29. Jazoon - Scala in Practice 29 Soundcloud
  • 30. Jazoon - Scala in Practice 30 Soundcloud - a bit of history It was a phase of high experimentation, and instead of defining which languages or runtimes these teams should use, we had the rule of thumb write it in whatever you feel confident enough putting in production and being on-call for. This led to a Cambrian Explosion of languages, runtimes and skills. We had systems being developed in everything from Perl to Julia, including Haskell, Erlang, and node.js. [..] We have used Finagle for HTTP, Thrift, memcached, Redis, and MySQL. Every request to the SoundCloud platform is very likely hitting at least one of our Finagle-powered microservices, and the performance we have from these is quite amazing.
  • 31. Jazoon - Scala in Practice
  • 32. Jazoon - Scala in Practice 32 Morgan Stanley Rumors • Adoption is language - driven
 • Scala because of • Functional Programming • Flexibility (DSLs, Macros..)
  • 33. Jazoon - Scala in Practice
  • 34. Jazoon - Scala in Practice 34 UniCredit Rumors • Akka & externally driven
 • Very skeptical of Scala • Need for some scalable, real time event processing • SI chose Akka, Scala • Delivered under time & budget • Scala it is
  • 35. Jazoon - Scala in Practice
  • 36. Jazoon - Scala in Practice 36 Galeria Kaufhof • Driven by „epiphany“: We need to be a tech company
 • From standard software to build-your-own • Culture change - pure retailer to tech focus
  • 37. Jazoon - Scala in Practice 37 Galeria Kaufhof JUMP! http://www.inoio.de/blog/2014/09/20/technologie-sprung-bei-galeria-kaufhof/
  • 38. Jazoon - Scala in Practice 38 Galeria Kaufhof
  • 39. Jazoon - Scala in Practice 39 Galeria Kaufhof
  • 40. Jazoon - Scala in Practice
  • 41. Jazoon - Scala in Practice 41 Zalando • Magento -> Java -> Scala • Actually polyglot, autonomous teams • But must be on tech radar • Polyglot is great, but maybe not for everyone
  • 42. Jazoon - Scala in Practice
  • 43. Jazoon - Scala in Practice 43 Renault R-Link • Driven by Akka
 • Build by AtoS
  • 44. I.Should a Pragmatist Care About languages? II.The Case For Scala III.Scala in The Real World IV.Scala Adoption Done Right
  • 45. Jazoon - Scala in Practice 45 Scala Caveats For All You Know, It's Just a Java Library.. .. but it’s not! That may be true at runtime - but certainly not in development. Josh Suereth: This is an important point. Scala is not just a “Java++”. There’s a lot of depth to pull out of the language, and lots you can learn. It doesn’t take a lot to start, but it can be intimidating how much is out there. You need to be prepared for it to take some time to learn things
  • 46. Jazoon - Scala in Practice 46 Scala Caveats sbt But once you get the hang of it.. define your Scala build in Scala. It’s actually a great tool
  • 47. Jazoon - Scala in Practice 47 Scala Caveats Parts of the community But everyone I interacted with in the Scala community was super friendly and helpful. Disclaimer: Maybe Tony Morris is, too - I don’t know him and never met him. These „headlines“ are about all I know about him.
  • 48. Jazoon - Scala in Practice 48 Scala Caveats • There is no „Scala EE“. Yet.
 • But patterns are evolving.

  • 49. Jazoon - Scala in Practice 49 Scala Caveats • The power to split teams
 • Goes hand in hand with „We do, because we can“
 • Comp. Design Patterns
  • 50. Jazoon - Scala in Practice 50 Scala Caveats • We can ≠ we should • Coding guidelines • See Twitter, Kafka, Spark..
  • 51. Jazoon - Scala in Practice 51 So do what? •Introduce Scala! •What is your driver? Focus on that. •Give team time to learn, get trainings •Establish coding guidelines •Address and avoid split proactively •There will be along on the road •But it’s worth it!
  • 52. Thank You Lutz Huehnken - Solutions Architect, Typesafe, Inc. @lutzhuehnken
  • 53. ©Typesafe 2015 – All Rights Reserved