SlideShare a Scribd company logo
Absorbing Scala in the
  Java Ecosystem
      Eishay Smith
         kaChing
Who Am I

    kaChing - Rocking the inventing world !
    Ex - Scala @ LinkedIn
    Blogging http://www.eishay.com
    Also today: 
        "A First Look at Scala on Google App Engine"
On the menu

 Getting started
 Scala and Java
 Runtime
 Build
 IDEs
 Test
 People
Getting started

 Silicon Valley Base camp '08
     David Pollak, Bill Venners
 BASE: Bay Area Scala Enthusiasts
     Once a month
     Twitter (San Francisco)
     LinkedIn (Mountain View)
 Java Posse 
 Blogs and Twitter
Scala and Java

     Different syntax and philosophy
       Unlike the Groovy (which we love !) you can't write
       Java syntax in Scala
 
    Better interoperability
    Compiles to the same classes and interfaces
       Given a Jar its hard to tell where it came from
    Type safe 
    Easily sharing libraries, both ways
    Profiling, JMX, Serialization ....
Runtime

 Behave the same on runtime
    Your SysAdmin/Ops won't tell the diferance
 As fast as Java
    Static types, no introspection (see dynamic
    languages)
    Using primitives (though they look like objects)
    Better concurrency patterns (see Actors)
 Taking advantage of the JIT
 Makes the GC happy (immutability FTW)
Build

Scalac knows
how to read
java code !
Needed for
circular
dependencies.
Testing

 Scala has some great Testing frameworks
    Specs, ScalaTest
    They do integrate nicely with existing frameworks
  Can use bare bones JUnit (any version)
  ANT JUnit plugin does not work with Scala Sources
    But does work with class files
 JUnit may use static suite() methods in the test class
    Problem: no static methods in Scala
    There is a solution
JUnit, ANT & Scala
             Instead of




               Use
Getting around static methods

 
Your organization

 Integrating smartly with current Java project
    Use one way dependency
 Keeping the Scala illiterate IDEs happy
    Not everyone will jump on the wagon
    Take advantage on your IoC framework
       Spring/Guice
    Use Java interfaces to make the IDE happy
IDEs

 Good Support by the three big IDEs out there
    Eclipse, NetBeans and IDEA
 Healthy competition
 Soon to come: better IDE support
    Martin Ordersky is working on improving the IDE
    support with better compiler infrastructure
 Scala plugin does not come with the IDE
    Other team members may not install it
Get people interested

    Host a Scala BASE
    Invite Scala Speakers
    Lunchtime talks
 
                   TShirts
Getting started (for real this time)

  Scala is more then just nice syntax
  You may start writing Java code in Scala
  Start with testing
     Not with production code
     Test Java code from Scala
     Once way dependency
  Absorb Scala slowly, don't get drunk !
     Your first Scala code will not be perfect
     It takes a while to understand the Scala philosophy
We Are Hiring !

More Related Content

Similar to Absorbing Scala Into Java Ecosystem

Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdf
ssusercd195b
 
An Introduction to Scala
An Introduction to ScalaAn Introduction to Scala
An Introduction to Scala
Brent Lemons
 

Similar to Absorbing Scala Into Java Ecosystem (20)

Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprises
 
Scala for C# Developers
Scala for C# DevelopersScala for C# Developers
Scala for C# Developers
 
Introduction to Scala JS
Introduction to Scala JSIntroduction to Scala JS
Introduction to Scala JS
 
What is scala
What is scalaWhat is scala
What is scala
 
Assist software awesome scala
Assist software   awesome scalaAssist software   awesome scala
Assist software awesome scala
 
From java to scala at crowd mix
From java to scala at crowd mixFrom java to scala at crowd mix
From java to scala at crowd mix
 
The State of Scala
The State of ScalaThe State of Scala
The State of Scala
 
Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdf
 
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
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
 
An Introduction to Scala
An Introduction to ScalaAn Introduction to Scala
An Introduction to Scala
 
Scala's evolving ecosystem- Introduction to Scala.js
Scala's evolving ecosystem- Introduction to Scala.jsScala's evolving ecosystem- Introduction to Scala.js
Scala's evolving ecosystem- Introduction to Scala.js
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about java
 
Breathing new life into JSP with OSGi? Why!!! - R Auge
Breathing new life into JSP with OSGi? Why!!! - R AugeBreathing new life into JSP with OSGi? Why!!! - R Auge
Breathing new life into JSP with OSGi? Why!!! - R Auge
 
scala-intro
scala-introscala-intro
scala-intro
 
Introduction to Scala language
Introduction to Scala languageIntroduction to Scala language
Introduction to Scala language
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its Ecosystem
 
01. Introduction to programming with java
01. Introduction to programming with java01. Introduction to programming with java
01. Introduction to programming with java
 
Commercial Usage Of Scala At Capital Iq Clari F
Commercial Usage Of Scala At Capital Iq Clari FCommercial Usage Of Scala At Capital Iq Clari F
Commercial Usage Of Scala At Capital Iq Clari F
 
Cloud computing - an insight into "how does it really work ?"
Cloud computing - an insight into "how does it really work ?" Cloud computing - an insight into "how does it really work ?"
Cloud computing - an insight into "how does it really work ?"
 

Recently uploaded

Recently uploaded (20)

What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfIntelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UX
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
"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
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 

Absorbing Scala Into Java Ecosystem

  • 1. Absorbing Scala in the Java Ecosystem Eishay Smith kaChing
  • 2. Who Am I kaChing - Rocking the inventing world ! Ex - Scala @ LinkedIn Blogging http://www.eishay.com Also today:          "A First Look at Scala on Google App Engine"
  • 3. On the menu Getting started Scala and Java Runtime Build IDEs Test People
  • 4. Getting started Silicon Valley Base camp '08 David Pollak, Bill Venners BASE: Bay Area Scala Enthusiasts Once a month Twitter (San Francisco) LinkedIn (Mountain View) Java Posse  Blogs and Twitter
  • 5. Scala and Java  Different syntax and philosophy Unlike the Groovy (which we love !) you can't write Java syntax in Scala   Better interoperability Compiles to the same classes and interfaces Given a Jar its hard to tell where it came from Type safe  Easily sharing libraries, both ways Profiling, JMX, Serialization ....
  • 6. Runtime Behave the same on runtime Your SysAdmin/Ops won't tell the diferance As fast as Java Static types, no introspection (see dynamic languages) Using primitives (though they look like objects) Better concurrency patterns (see Actors) Taking advantage of the JIT Makes the GC happy (immutability FTW)
  • 7. Build Scalac knows how to read java code ! Needed for circular dependencies.
  • 8. Testing Scala has some great Testing frameworks Specs, ScalaTest They do integrate nicely with existing frameworks  Can use bare bones JUnit (any version)  ANT JUnit plugin does not work with Scala Sources But does work with class files JUnit may use static suite() methods in the test class Problem: no static methods in Scala There is a solution
  • 9. JUnit, ANT & Scala Instead of Use
  • 10. Getting around static methods  
  • 11. Your organization Integrating smartly with current Java project Use one way dependency Keeping the Scala illiterate IDEs happy Not everyone will jump on the wagon Take advantage on your IoC framework Spring/Guice Use Java interfaces to make the IDE happy
  • 12. IDEs Good Support by the three big IDEs out there Eclipse, NetBeans and IDEA Healthy competition Soon to come: better IDE support Martin Ordersky is working on improving the IDE support with better compiler infrastructure Scala plugin does not come with the IDE Other team members may not install it
  • 13. Get people interested Host a Scala BASE Invite Scala Speakers Lunchtime talks   TShirts
  • 14. Getting started (for real this time) Scala is more then just nice syntax You may start writing Java code in Scala Start with testing Not with production code Test Java code from Scala Once way dependency Absorb Scala slowly, don't get drunk ! Your first Scala code will not be perfect It takes a while to understand the Scala philosophy