30
Rethinking Scala Bruce Eckel www.MindviewInc.com www.AtomicScala.com May 7, 2014, San Francisco Slides available on www.slideshare.net Typesafe is sponsoring the videographer -- search the web for video

Rethinking Scala Presented in San Francisco May 7, 2014

Embed Size (px)

DESCRIPTION

How fares this grand language experiment called Scala? Bruce relates experiences while writing "Atomic Scala," insights from last Fall's Scala Summit, and conversations from his recent trip to the Craft Conference in Budapest, with the goal of starting discussions on the issues and direction of the language.

Citation preview

Page 1: Rethinking Scala Presented in San Francisco May 7, 2014

Rethinking ScalaBruce Eckel

www.MindviewInc.comwww.AtomicScala.com

May 7, 2014, San FranciscoSlides available onwww.slideshare.net

Typesafe is sponsoring the videographer -- search the web for video

Page 2: Rethinking Scala Presented in San Francisco May 7, 2014

• First 25% at AtomicScala.com: Kindle, ePub, PDF, HTML

• First 50% at Typesafe.com (PDF)

Page 3: Rethinking Scala Presented in San Francisco May 7, 2014

Reinventing-Business.com

Page 4: Rethinking Scala Presented in San Francisco May 7, 2014

"Start With Why"- Simon Sinek

(Book, but TED talk might be enough. Also

see podcast)

Page 5: Rethinking Scala Presented in San Francisco May 7, 2014

"Break the Chains Around Our Brains"

Page 6: Rethinking Scala Presented in San Francisco May 7, 2014

"Unstick"

Page 7: Rethinking Scala Presented in San Francisco May 7, 2014

"Find the Unstuck Alternatives"

Page 8: Rethinking Scala Presented in San Francisco May 7, 2014

"Burst Forward"

Page 9: Rethinking Scala Presented in San Francisco May 7, 2014

"Bigger Leverage"

Page 10: Rethinking Scala Presented in San Francisco May 7, 2014

?

Page 11: Rethinking Scala Presented in San Francisco May 7, 2014

This is the presentation I should have given at Craft in Budapest

Page 12: Rethinking Scala Presented in San Francisco May 7, 2014

Do Languages

Matter ?

Page 13: Rethinking Scala Presented in San Francisco May 7, 2014

Do Languages (still)

Matter ?

Page 14: Rethinking Scala Presented in San Francisco May 7, 2014

Do Languages (still)

Matter (as much)?

Page 15: Rethinking Scala Presented in San Francisco May 7, 2014

Does Arguing About Languages Still Matter?

Page 16: Rethinking Scala Presented in San Francisco May 7, 2014

• Assembly -> C• C -> C++• C++ -> Java

– Virtual Machines– Garbage Collection

• Statically typed vs. Dynamic• Checked Exceptions• Concurrency and Parallelism• OO vs Functional• Java Posse Roundup stopped talking

about Java

Page 17: Rethinking Scala Presented in San Francisco May 7, 2014

No Longer a Big Deal To ...

• Change Languages– Client: Java -> Python -> Go

• Combine Languages– e.g. Erlang controlling other languages– REST/JSON APIs– HTML5/CSS/Javascript UIs

Page 18: Rethinking Scala Presented in San Francisco May 7, 2014

Thus

• Arguing to consider new languages no longer fits my "why" -- we're not stuck there anymore.

• (Why bother arguing when you can just experiment?)

Page 19: Rethinking Scala Presented in San Francisco May 7, 2014

All This For Context

• I'm not attacking your favorite language• I'm asking whether we can make

development (a lot) better• It's just what I do• Not sure exactly why I do that yet, but it's

definitely consistent with my pattern of jiggling things

• Bill Venners says I hang out with early adopters and that affects my perspective

Page 20: Rethinking Scala Presented in San Francisco May 7, 2014

People seem to become much more productive in Scala vs. Java. But could a

different paradigm give us a lot more productivity?

Page 21: Rethinking Scala Presented in San Francisco May 7, 2014

Scala is a big improvement over Java

• A language needs to multiply productivity over the alternatives to justify changing, and Scala does

• Very significant improvements in programming power, while maintaining two-way transparency with Java

• Scala is not gridlocked by backward compatibility like Java

• But: without the Java constraint, is Scala the best choice?

Page 22: Rethinking Scala Presented in San Francisco May 7, 2014

Importance of Community• Python

– Community culture might be the most friendly and welcoming

– Python conference: about 20% women, actively involved

• Scala is the "League of Legends"– I just changed newsgroups until I found a

useful one– Apparently there was some internet rage over

the title of Atomic Scala

Page 23: Rethinking Scala Presented in San Francisco May 7, 2014

How Many Ways

• “Scala is the most un-opinionated language I’ve seen” -- Dan North

• “You can do one thing in so many ways; each team/company must invent its own culture” -- Speaker at Craft

• Language is communication; subcultures add cognitive load

• Consider Go: even code formatting is standardized

Page 24: Rethinking Scala Presented in San Francisco May 7, 2014

The Complexity Jump

• C++ was "C with classes"• Scala is not really "Java with" anything

– It's almost completely different• With C++, knowing C was an advantage• Do we even care about Java

programmers?– Or just existing Java libraries?

• What is the "why" of Scala?

Page 25: Rethinking Scala Presented in San Francisco May 7, 2014

Libraries vs. Frameworks

• “I prefer Clojure libraries rather than frameworks” -- young Scala programmer at Craft

• Libraries are one dimension of complexity• Frameworks are two or three dimensions

– What is complexity cost vs. productivity benefit?

– Once you get comfortable with a framework, how much harder is it to change?

Page 26: Rethinking Scala Presented in San Francisco May 7, 2014

Other Language Options

• Erlang trivially interfaces to other languages– Example that I want to try: Erlang controller

and concurrency/parallelism, using Python-coded operations

• Rust adopts proven features from other languages but with native compilation– Pattern matching, for example

Page 27: Rethinking Scala Presented in San Francisco May 7, 2014

Scala Summit

• ScalaSummit.com• "You don’t need to

understand monads"• "Scala collides

functional and OO"– Fascinating

experiment, exposes some sharp corners

Page 28: Rethinking Scala Presented in San Francisco May 7, 2014

Hearsay

• Scala 3 might make significant non-backwards-compatible changes to the language– Potentially fixing important issues– Potentially alienating some users

Page 29: Rethinking Scala Presented in San Francisco May 7, 2014

People seem to become much more productive in Scala vs. Java. But could a different

paradigm give us a lot more productivity?

Page 30: Rethinking Scala Presented in San Francisco May 7, 2014

Discussion