Scala Native Documentation - Scala Native — Scala Native ...
Rethinking Scala Presented in San Francisco May 7, 2014
-
Upload
bruce-eckel -
Category
Software
-
view
2.369 -
download
0
description
Transcript of Rethinking Scala Presented in San Francisco May 7, 2014
![Page 1: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/1.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/2.jpg)
• 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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/3.jpg)
Reinventing-Business.com
![Page 4: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/4.jpg)
"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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/5.jpg)
"Break the Chains Around Our Brains"
![Page 6: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/6.jpg)
"Unstick"
![Page 7: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/7.jpg)
"Find the Unstuck Alternatives"
![Page 8: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/8.jpg)
"Burst Forward"
![Page 9: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/9.jpg)
"Bigger Leverage"
![Page 10: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/10.jpg)
?
![Page 11: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/11.jpg)
This is the presentation I should have given at Craft in Budapest
![Page 12: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/12.jpg)
Do Languages
Matter ?
![Page 13: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/13.jpg)
Do Languages (still)
Matter ?
![Page 14: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/14.jpg)
Do Languages (still)
Matter (as much)?
![Page 15: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/15.jpg)
Does Arguing About Languages Still Matter?
![Page 16: Rethinking Scala Presented in San Francisco May 7, 2014](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/16.jpg)
• 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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022061105/53fdeb7c8d7f72a81c8b4bd5/html5/thumbnails/30.jpg)
Discussion