The State of Scala


Published on

Boston Area Scala Enthusiasts first meeting held on Oct. 28, 2009.
Talk delivered by Paul Chiusano, Nermin Serifovic & Chris Herron.

Published in: Technology, Education

The State of Scala

  1. 1. The State of Scala Meeting #1: 10/28/2009 Boston Area Scala Enthusiasts Paul Chiusano Nermin Serifovic Chris Herron
  2. 2. <ul><li>Abe Egnor & </li></ul><ul><li>for hosting us! </li></ul>Thanks to...
  3. 3. <ul><li>Bill Venners &  </li></ul><ul><li>for sponsoring  food </li></ul><ul><li>and donating a copy of </li></ul><ul><li>Programming in Scala </li></ul>Thanks to...
  4. 4. Agenda <ul><ul><li>Short round of introductions </li></ul></ul><ul><ul><li>New features in 2.8 </li></ul></ul><ul><ul><li>Future direction of the language </li></ul></ul><ul><ul><li>IDE support </li></ul></ul><ul><ul><li>Tools </li></ul></ul><ul><ul><li>Libraries </li></ul></ul><ul><ul><li>Job trends </li></ul></ul><ul><ul><li>Enterprise adoption </li></ul></ul><ul><ul><li>Optional lightning talks </li></ul></ul><ul><ul><li>Feedback & suggestions for future meetings </li></ul></ul><ul><ul><li>Book draw </li></ul></ul>
  5. 5. SCALA 2.8... AND BEYOND
  6. 6. 2.8 features <ul><ul><li>Overhaul of collections library </li></ul></ul><ul><ul><li>Named and default arguments </li></ul></ul><ul><ul><li>Nested annotations </li></ul></ul><ul><ul><li>Package objects </li></ul></ul><ul><ul><li>@specialized </li></ul></ul><ul><ul><li>Continuations plugin, break, &quot;ping-pong&quot; tail calls optimized </li></ul></ul><ul><ul><li>Improvements to: REPL, Swing wrapper, compiler interface </li></ul></ul>
  8. 8. IDE Support <ul><ul><li>Eclipse, IDEA, NetBeans </li></ul></ul><ul><ul><li>All three:  </li></ul></ul><ul><ul><ul><li>syntax highlighting, error highlighting, code completion, go to declaration, code folding, xml, multiple scala sdk support, mixed java/scala projects, debugging, code outline, open type, find references </li></ul></ul></ul><ul><ul><li>Just IDEA and NetBeans (6.8):  </li></ul></ul><ul><ul><ul><li>auto-import, local and global renaming, multiple scala sdk support </li></ul></ul></ul>
  9. 9. Build Tools SBT (Simple Build Tool) ant tasks (scalac, fsc, scaladoc) maven plugin buildr
  10. 10. Testing Tools ScalaTest Reductio Specs ScalaCheck Rehersal
  11. 11. Command Line Tools scala scaladoc scalac scalap, javap & jad Scala Bazaar System (sbaz) fsc
  12. 12. Other Tools Productivity tool: JRebel (free license provided for Scala developers)
  13. 13. Does anybody think there is a lack of tool support? If so, what kind of tool would you like to see?
  14. 14. LIBRARIES
  15. 15. Interoperability with Java libraries Reuse of Java open source libraries is one of Scala's selling points. However, does it work seamlessly? Also, should the community strive more on reuse or developing Scala libraries?
  16. 16. General Purpose Libraries Scalax Scalaz Scala Migrations Scala/xml Akka (Actor Kernel) Scalextric Scales MetaScala
  17. 17. Most of the more specific libraries seem to be scientific or math oriented (Scala-rel, Jiva, Scalala, Scalalab). Do you see that as an indicator of Scala's primary usage?  Is it a consequence of Scala's functional programming support?
  18. 18. JOB TRENDS
  19. 19. Compared With Other Alt-JVM Languages
  20. 20.   Companies Using Scala <ul><li>'High Profile':  </li></ul><ul><li>     Twitter, Sony, Yahoo, SAP, Siemens, others? </li></ul><ul><li>Local: </li></ul><ul><li>     Capital IQ ClariFI </li></ul><ul><li>     Synthesis Studios ( </li></ul><ul><li>     others? </li></ul>
  22. 22. Enterprise Adoption <ul><li>Group question: who is using Scala for enterprise work? Evidence </li></ul><ul><ul><li>Web articles, blog traffic, mailing list questions </li></ul></ul><ul><ul><ul><li>How to use Scala with X </li></ul></ul></ul><ul><ul><ul><ul><li>JPA/Hibernate, Spring, Wicket, Stripes </li></ul></ul></ul></ul><ul><li>Challenges </li></ul><ul><ul><li>Technical </li></ul></ul><ul><ul><ul><li>Annotations support </li></ul></ul></ul><ul><ul><ul><ul><li>Nested annotations </li></ul></ul></ul></ul><ul><ul><ul><ul><li>@BeanProperty annotation copy behavior </li></ul></ul></ul></ul><ul><ul><ul><ul><li>All addressed in Scala 2.8 </li></ul></ul></ul></ul>
  23. 23. Enterprise Adoption <ul><li>Challenges (continued) </li></ul><ul><ul><li>Tension: Java interop vs. Scala best-practices  </li></ul></ul><ul><ul><ul><li>Uniform access principle vs. Java Bean convention </li></ul></ul></ul><ul><ul><ul><li>Option vs. null handling </li></ul></ul></ul><ul><ul><ul><li>DI/AOP vs. Cake Pattern etc. </li></ul></ul></ul><ul><ul><ul><li>Annotations vs. Partial Functions </li></ul></ul></ul><ul><ul><ul><li>Popular Java libs vs. Scala rewrites </li></ul></ul></ul><ul><ul><li>Conservative Boss Concerns </li></ul></ul><ul><ul><ul><li>Local availability of expertise </li></ul></ul></ul><ul><ul><ul><li>Perception that Scala is academic/experimental/in-flux </li></ul></ul></ul><ul><ul><ul><li>Lack of commercial backing </li></ul></ul></ul><ul><ul><li>Tool Support </li></ul></ul><ul><ul><ul><li>Basic editing / refactoring </li></ul></ul></ul><ul><ul><ul><li>Java EE tools correct treatment of Scala as Java </li></ul></ul></ul>
  24. 24. Enterprise Adoption <ul><ul><li>Opportunities </li></ul></ul><ul><ul><ul><li>Java is mature, slow to change </li></ul></ul></ul><ul><ul><ul><li>Oracle aquisition of Sun </li></ul></ul></ul><ul><ul><ul><li>Polyglottism becoming more accepted </li></ul></ul></ul><ul><ul><ul><li>Sneak it in? </li></ul></ul></ul><ul><ul><ul><li>Tool support is improving </li></ul></ul></ul><ul><ul><ul><li>Killer-app </li></ul></ul></ul><ul><ul><ul><ul><li>Concurrency </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Will Lift be for Scala what Rails was for Ruby? </li></ul></ul></ul></ul>
  25. 25. Lightning Talks Anybody interested in giving a talk? Don't forget, they are a good way to make yourself learn language features... Plus, you don't have to join a local Toastmasters club...
  26. 26. Feedback Suggestions Ideas for next meetings
  27. 27. Thank you all for coming and participating! and now... The Book Draw
  28. 28. Credits Photos: Creative Commons 2.0 Books: Programming Scala by Dean Wampler and Alex Payne