Rethinking Scala
Bruce Eckel
www.MindviewInc.com
www.AtomicScala.com
May 7, 2014, San Francisco
Slides available on
www.sl...
• First 25% at
AtomicScala.com:
Kindle, ePub, PDF,
HTML
• First 50% at
Typesafe.com (PDF)
Reinventing-Business.com
"Start With Why"
- Simon Sinek
(Book, but TED talk
might be enough. Also
see podcast)
"Break the Chains
Around Our Brains"
"Unstick"
"Find the Unstuck Alternatives"
"Burst Forward"
"Bigger Leverage"
?
This is the presentation I should
have given at Craft in Budapest
Do
Languages
Matter
?
Do
Languages (still)
Matter
?
Do
Languages (still)
Matter
(as much)?
Does Arguing About
Languages Still Matter?
• Assembly -> C
• C -> C++
• C++ -> Java
–Virtual Machines
–Garbage Collection
• Statically typed vs. Dynamic
• Checked Ex...
No Longer a Big Deal To ...
• Change Languages
– Client: Java -> Python -> Go
• Combine Languages
– e.g. Erlang controllin...
Thus
• Arguing to consider new languages no
longer fits my "why" -- we're not stuck
there anymore.
• (Why bother arguing w...
All This For Context
• I'm not attacking your favorite language
• I'm asking whether we can make
development (a lot) bette...
People seem to become much more
productive in Scala vs. Java. But could a
different paradigm give us a lot more
productivi...
Scala is a big improvement over Java
• A language needs to multiply productivity over
the alternatives to justify changing...
Importance of Community
• Python
– Community culture might be the most friendly
and welcoming
– Python conference: about 2...
How Many Ways
• “Scala is the most un-opinionated
language I’ve seen” -- Dan North
• “You can do one thing in so many ways...
The Complexity Jump
• C++ was "C with classes"
• Scala is not really "Java with" anything
– It's almost completely differe...
Libraries vs. Frameworks
• “I prefer Clojure libraries rather than
frameworks” -- young Scala programmer
at Craft
• Librar...
Other Language Options
• Erlang trivially interfaces to other
languages
– Example that I want to try: Erlang controller
an...
Scala Summit
• ScalaSummit.com
• "You don’t need to
understand monads"
• "Scala collides
functional and OO"
– Fascinating
...
Hearsay
• Scala 3 might make significant non-
backwards-compatible changes to the
language
– Potentially fixing important ...
People seem to become much more productive
in Scala vs. Java. But could a different
paradigm give us a lot more productivi...
Discussion
Upcoming SlideShare
Loading in …5
×

Rethinking Scala Presented in San Francisco May 7, 2014

4,545 views

Published on

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.

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,545
On SlideShare
0
From Embeds
0
Number of Embeds
124
Actions
Shares
0
Downloads
45
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Rethinking Scala Presented in San Francisco May 7, 2014

  1. 1. 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
  2. 2. • First 25% at AtomicScala.com: Kindle, ePub, PDF, HTML • First 50% at Typesafe.com (PDF)
  3. 3. Reinventing-Business.com
  4. 4. "Start With Why" - Simon Sinek (Book, but TED talk might be enough. Also see podcast)
  5. 5. "Break the Chains Around Our Brains"
  6. 6. "Unstick"
  7. 7. "Find the Unstuck Alternatives"
  8. 8. "Burst Forward"
  9. 9. "Bigger Leverage"
  10. 10. ?
  11. 11. This is the presentation I should have given at Craft in Budapest
  12. 12. Do Languages Matter ?
  13. 13. Do Languages (still) Matter ?
  14. 14. Do Languages (still) Matter (as much)?
  15. 15. Does Arguing About Languages Still Matter?
  16. 16. • 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
  17. 17. 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
  18. 18. 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?)
  19. 19. 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
  20. 20. People seem to become much more productive in Scala vs. Java. But could a different paradigm give us a lot more productivity?
  21. 21. 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?
  22. 22. 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
  23. 23. 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
  24. 24. 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?
  25. 25. 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?
  26. 26. 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
  27. 27. Scala Summit • ScalaSummit.com • "You don’t need to understand monads" • "Scala collides functional and OO" – Fascinating experiment, exposes some sharp corners
  28. 28. Hearsay • Scala 3 might make significant non- backwards-compatible changes to the language – Potentially fixing important issues – Potentially alienating some users
  29. 29. People seem to become much more productive in Scala vs. Java. But could a different paradigm give us a lot more productivity?
  30. 30. Discussion

×