Slide 1

Slide 1 text

We’ll take care of it. Personally! Using Scala to Drive Modernization Scala 2014
 July 28th, Uppsala, Sweden 
 Martin Schmidt, innoQ Switzerland

Slide 2

Slide 2 text

We’ll take care of it. Personally! Using Scala to Drive Modernization in Enterprise Environments

Slide 3

Slide 3 text

© 2011 innoQ Deutschland GmbH Who am I?

Slide 4

Slide 4 text

© 2011 innoQ Deutschland GmbH If so, how many?

Slide 5

Slide 5 text

© 2011 innoQ Deutschland GmbH

Slide 6

Slide 6 text

© 2011 innoQ Deutschland GmbH Using Scala

Slide 7

Slide 7 text

© 2011 innoQ Deutschland GmbH Enterprise Environments

Slide 8

Slide 8 text

© 2011 innoQ Deutschland GmbH

Slide 9

Slide 9 text

© 2011 innoQ Deutschland GmbH Drive Modernization

Slide 10

Slide 10 text

© 2011 innoQ Deutschland GmbH

Slide 11

Slide 11 text

© 2011 innoQ Deutschland GmbH Main Drivers for Modernization Software Solutions never 
 fit current requirements

Slide 12

Slide 12 text

© 2011 innoQ Deutschland GmbH

Slide 13

Slide 13 text

© 2011 innoQ Deutschland GmbH

Slide 14

Slide 14 text

© 2011 innoQ Deutschland GmbH

Slide 15

Slide 15 text

© 2011 innoQ Deutschland GmbH Evolutionary Modernization

Slide 16

Slide 16 text

© 2011 innoQ Deutschland GmbH

Slide 17

Slide 17 text

© 2011 innoQ Deutschland GmbH ?

Slide 18

Slide 18 text

© 2011 innoQ Deutschland GmbH Architecture Drivers AUTOMATIZATION (STRAIGHT THROUGH PROCESSING) ! BUSINESS PROCESS OUTSOURCING MANUAL TASK OUTSOURCING ! BUSINESS SERVICE PROVIDING ! LOW TCO ! SHORT TIME TO MARKET

Slide 19

Slide 19 text

© 2011 innoQ Deutschland GmbH Event Driven Architecture

Slide 20

Slide 20 text

© 2011 innoQ Deutschland GmbH Drivers for choosing a programming environment Costs! Time to market Quality Human Resources Licenses • Fewer bugs => higher quality • Higher developer productivity => shorter time to market – Faster development of new features – Easier integration of changes – DSL-based development (more idiomatic/precise, bridges the gap) • Quick ramp-up of new resources => reduced HR cost, shorter time to market • Portable platform => higher quality, shorter time to market • No vendor lock-in => optimize license cost

Slide 21

Slide 21 text

© 2011 innoQ Deutschland GmbH Why Scala? • Because it … – Helps increasing code Quality – Provides the means to achieve shorter time to market – Can be used to allow a quick ramp-up for new employers and as such decrease Human Resources costs – No vendor lock-in => optimize License costs

Slide 22

Slide 22 text

© 2011 innoQ Deutschland GmbH Scala features supporting these drivers • Rich type system
 (e.g. traits, co-variants, self types, Try/Option, pattern matching) ! ⇒Less errors => higher Quality ! • More expressive code
 (e.g. through type inference, concise syntax, compile time reflection for code generation, internal DSL) ! ⇒Improve understandability of code => higher Quality, reduced Human Resources costs ! ⇒Less code to write => higher Quality, shorter Time-to- Market

Slide 23

Slide 23 text

© 2011 innoQ Deutschland GmbH Scala features supporting these drivers • Macro annotations / parser/generator ⇒ Improved Expressiveness through DSLs ! • Functional idioms
 (e.g. high order functions, monads, for-comprehension) ⇒Focus on “what to do” and not “how to do it” ! ⇒ higher Quality, shorter Time-to-Market

Slide 24

Slide 24 text

© 2011 innoQ Deutschland GmbH Scala Macros

Slide 25

Slide 25 text

© 2011 innoQ Deutschland GmbH Generate optimized boilerplate

Slide 26

Slide 26 text

© 2011 innoQ Deutschland GmbH Checking for syntactical (structural) backward compatibility of structures

Slide 27

Slide 27 text

© 2011 innoQ Deutschland GmbH Alternatives to Macros

Slide 28

Slide 28 text

© 2011 innoQ Deutschland GmbH Framework 
 vs 
 Business Code

Slide 29

Slide 29 text

© 2011 innoQ Deutschland GmbH Potential risks when selecting Scala • Availability of skilled resources – Focused training and on-boarding process for new employees (they need to be trained anyway) ⇒Mitigation: Separate framework and business logic (reduce perceived complexity) ! • Scala is not yet as established as other languages (e.g. Java/C#/…) – But looks very promising (*) ⇒ It is JVM- and open-source-based (*) http://typesafe.com/company/casestudies

Slide 30

Slide 30 text

© 2011 innoQ Deutschland GmbH logical

Slide 31

Slide 31 text

© 2011 innoQ Deutschland GmbH psychological

Slide 32

Slide 32 text

© 2011 innoQ Deutschland GmbH http://commons.wikimedia.org/wiki/File:Cat_into_the_box.jpg

Slide 33

Slide 33 text

© 2011 innoQ Deutschland GmbH !

Slide 34

Slide 34 text

We’ll take care of it. Personally! Thank you! Martin Schmidt [email protected] http://www.innoq.com +41 (0) 79 5226816 © 2011 innoQ Deutschland GmbH