Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
From DOT to Dotty
Next
Download to read offline and view in fullscreen.

42

Share

Download to read offline

Scalax

Download to read offline

Talk given at Scala Exchange 2014, Dec. 2014.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Scalax

  1. 1. The Binary Compatibility Challenge Martin Odersky Typesafe and EPFL
  2. 2. The Problem in a Nutshell • Binary compatibility has been an issue ever since Scala became popular. • Causes grief when building, friction for upgrading. • The community has learned to deal with this by becoming more conservative. • But this makes it harder to innovate and improve. Break your client’s builds vs Freeze, and stop improving Is there no third way? 2
  3. 3. What is Binary Compatibility? Binary compatibility ≠ Source compatibility Source & binary incompatible object Client { msg.length } object Server { val msg = “abc” } object Server { val msg = Some(“abc”) }
  4. 4. What is Binary Compatibility? Binary compatibility ≠ Source compatibility Source incompatible, binary compatible: object Client { import a, b val x: String = 1 } object a { implicit def f(x: Int): String = x.toString } object b object a { implicit def f(x: Int): String = x.toString } object b { implicit def g(x: Int): String = ”abc” }
  5. 5. What is Binary Compatibility? Binary compatibility ≠ Source compatibility Source compatible, binary incompatible: object Apple extends Edible { def joules = 500000 } trait Edible { def joules: Double } trait Edible { def joules: Double def calories = joules * 4.184 }
  • zhuangzhuang1988

    Jun. 22, 2016
  • kotakanbe

    Nov. 15, 2015
  • rkyymmt

    Aug. 24, 2015
  • bunkertor

    Jun. 7, 2015
  • henix

    Jun. 6, 2015
  • TAKAyukiatkwsk

    Apr. 28, 2015
  • mamun_r

    Mar. 1, 2015
  • neosemantix

    Feb. 28, 2015
  • RiccardoRoveda

    Feb. 3, 2015
  • zikolach

    Jan. 15, 2015
  • FranklinChen

    Jan. 13, 2015
  • SamDeBacker

    Dec. 25, 2014
  • AlexSlide89

    Dec. 21, 2014
  • ameison

    Dec. 17, 2014
  • taggiasco

    Dec. 15, 2014
  • liqweed

    Dec. 12, 2014
  • benewu

    Dec. 12, 2014
  • wrapper79

    Dec. 11, 2014
  • jits

    Dec. 11, 2014
  • KristjanCocev

    Dec. 11, 2014

Talk given at Scala Exchange 2014, Dec. 2014.

Views

Total views

13,435

On Slideshare

0

From embeds

0

Number of embeds

1,417

Actions

Downloads

115

Shares

0

Comments

0

Likes

42

×