- Headline pitch. A one-liner that both frames what Scala is, and is provocative enough to capture the listener's attention.
- What is Scala? A short list of bullet points that both gives a brief summary of what Scala is, at the same time promoting some of the core benefits of adopting and using Scala.
- What else makes Scala so awesome? More in depth points demonstrating the power and promise of Scala. Valuable topics of discussion, but things that I won't mind too much if the conversation wanders and I don't get around to mention.
Here's my pitch list. What do you think? Please let me know in the comments!
- Scala is a natural successor to the Java programming language, and is certain to be a key player in the Java ecosystem for years to come.
What is Scala?
- Scala is a function/object-oriented hybrid. It is easy to program in Scala with a very Java like style, and to adopt the best features of functional programming at your own pace.
- Scala/Java interop is seamless, allowing you to painlessly integrate with the thousands of Java libraries available on the JVM, as well as with your own legacy Java code.
- Like other next generation languages that run on the JVM, you can code in Scala with massively less boilerplate than in Java.
- Unlike other next gen JVM languages, Scala is strongly typed, improving code quality and coding productivity on large projects and in a team environment. Scala’s type system is actually quite a bit more expressive than Java’s, providing even more compile-time safety to the development team.
What else makes Scala so awesome?
- A wide variety of Scala libraries and frameworks that are constantly becoming more robust and fully featured.
- Many of these, such as Akka, Play, and Finagle, provide both Java and Scala APIs, making business-wide transitions from Java to Scala even easier.
- The Scala community enthusiastically embraces reactive principles, paving the way for more robust, resilient, and scalable systems. This is especially notable in three areas:
- Scala has powerful asynchronous tools such as Futures and Promises built right in to the language library.
- ReactiveX styled asynchronous streams in RxScala.
- Akka is unquestionably the premier actor framework running on the JVM.
- Spark, written in Scala with APIs in Scala, Java, Python, and R, is rapidly becoming the go-to big data processing and analysis tool.
- The Scala community is full of friendly and enthusiastic people!
Here are some of the sources I drew on to put this list together: