Sneaking Scala through the Back Door
-
Upload
dianne-marsh -
Category
Education
-
view
607 -
download
2
description
Transcript of Sneaking Scala through the Back Door
![Page 1: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/1.jpg)
Sneaking Scala through
the Back Door
Dianne MarshCodeMash 2014
![Page 2: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/2.jpg)
Try the Front Door
![Page 3: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/3.jpg)
![Page 4: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/4.jpg)
Know the “Why”
DO
![Page 5: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/5.jpg)
Be specific: team, application, biggest concerns
DO
![Page 6: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/6.jpg)
Present from audience’s point of
view
DO
![Page 7: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/7.jpg)
Use buzzwords
DON’T
![Page 8: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/8.jpg)
Emphasize high value points
DO
![Page 9: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/9.jpg)
Represent success stories
DO
![Page 10: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/10.jpg)
Typesafe Customers
![Page 11: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/11.jpg)
Edda
Records AWS History
Open SourceScala
Freedom & Responsibility
![Page 12: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/12.jpg)
Killer Apps
•Play for web (Scala and Java)
•Akka for concurrency
•Object-oriented + mathematical modeling = good fit for Scala
![Page 13: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/13.jpg)
Domains•Business Intelligence
•Social apps
•Border security
•eCommerce
•Anti-spam
•Advertising
![Page 14: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/14.jpg)
Companies say ...•Rapid development and
productivity
•Asynchronous stateless scalabilty
•Massive configurability for peak load
•Reduces time to market
•DSL reduces load on devs
![Page 15: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/15.jpg)
Anticipate objections
DO
![Page 16: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/16.jpg)
About Hiring …•“Easy to find very good Java
engineers and excite them with new technologies”
•“Look for smart, energetic engineers eager to learn”
•“No prior knowledge of Java, productive 2-3 weeks into project”
•“Quickly productive with Scala”
•“Reduces time to market”
![Page 17: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/17.jpg)
![Page 18: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/18.jpg)
Use Scala for new development
DO
![Page 19: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/19.jpg)
Leverage existing Java code
DO
![Page 20: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/20.jpg)
Convert all legacy code immediately*
*(maybe never)
DON’T
![Page 21: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/21.jpg)
Use Scala as a Better Java
DO
![Page 22: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/22.jpg)
Use Scala for non-production code
DO
![Page 23: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/23.jpg)
Refer to code written before 2.9
DON’T
![Page 24: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/24.jpg)
Make your code too terse
DON’T
![Page 25: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/25.jpg)
val nums = 3 until 1000
val somenums = nums filter (x => (x % 3 == 0 || x % 5 ==0))
(0/:somenums)(_+_)
DON’T
![Page 26: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/26.jpg)
“When your Scala looks like unhappy emoticons, you’ve
gone too far.” -- Jason Swartz, Netflix
![Page 27: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/27.jpg)
Discuss developer productivity
DO
![Page 28: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/28.jpg)
Draw from team’s experience
DO
![Page 29: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/29.jpg)
Use Scala to attract candidates
DO
![Page 30: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/30.jpg)
Try ScalaTest
DO
![Page 31: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/31.jpg)
Stress about functional perfection
DON’T
![Page 32: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/32.jpg)
Try Typesafe Activator
DO
![Page 33: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/33.jpg)
Start with Scalaz
DON’T
![Page 34: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/34.jpg)
Learn about parallel collections
DO
![Page 35: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/35.jpg)
Leverage TypeSafe’s support
DO
![Page 36: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/36.jpg)
Be a language zealot
DON’T
![Page 37: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/37.jpg)
Know when to fold
DO
![Page 38: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/38.jpg)
Ease into functional with
Guava
MAYBE
![Page 39: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/39.jpg)
Get feedback from others
DO
![Page 41: Sneaking Scala through the Back Door](https://reader035.fdocuments.net/reader035/viewer/2022062703/554f9429b4c905435d8b5239/html5/thumbnails/41.jpg)
Additional References
• Making a persuasive argument: http://sixminutes.dlugan.com/logos-examples-speaking/
• Atomic Scala at http://atomicscala.com
• Learn Scala with the Koans at http://scalakoans.org
• Integrate testing with Scalatest: http://www.scalatest.org/
• Case studies: http://typesafe.com/company/casestudies
• Futures and promises in 2.10: https://speakerdeck.com/heathermiller/futures-and-promises-in-scala-2-dot-10