Scala, the programming language created more than 10 years ago is taking more and more interest. You could see more job offers requiring scala, more open source projects starting to embed scala code as neighbour to existing java code base (neo4j as example – around 15% of code base written in Scala and popular play framework where Scala is main programming language).
So, why is that? What’s special in that language and even more important, why know? Below I’m trying to answer on those questions based on my learning experience.
Great learning experience, great documentation
The best thing I found in Scala world is how easily you could find high quality training materials, not only on Scala but on functional concepts you could find in Scala too.
- Functional Programming Principles in Scala on coursera. Very good introduction to the language and functional programming paradigms, I could really recommend it as start point (next session starts soon ;).
- Principles of Reactive Programming on coursera. Go deeply into more advanced topics.
- Scala tour, you just have to go there at some point of your Scala learning path, this tour is just awesome 🙂 Very good user experience, lots of ready to use examples.
- Nice home page, filled with lots of good documentation pages, tutorials and even more, helping you to master Scala.
- Scala on GitHub, see the sources of that powerful language.
Great free IDE (even more than one)
Even best programming language without good advanced editor will not be very useful, especially in big projects. For Scala, we actually have more than one great IDE, all of them being free of charge to use.
- IntelliJ Community Edition – the top choice Scala IDE.
- Scala IDE – for Eclipse amateurs.
- NetBeans – of course it’s there too 😉
- Besides of IDEs, it’s worth to mention SBT, as scala dedicated simple build tool.
Great elements of Scala ecosystem
There is even more great things, this time which you could find as part of whole Scala ecosystem.
- Scala worksheets – great way to learn, show examples, write live documentation. Here you could find online Scala worksheets – CodeBrew. That’s what authors say about worksheets:
“In a nutshell, a worksheet is a Scala file that is evaluated on save, and the result of each expression is shown in a column to the right of your program. This makes it easy to see the execution results of each statement in a Scala app without having to step through a debugger. Worksheets are like a REPL session on steroids. The Scala Worksheet also supports editor completion, hyperlinking, interactive errors-as-you-type, and auto-formatting.”
- Elements of language, like type safety, powerful concurrency, mature ecosystem (JVM) – see more on “Why we love Scala at Coursera” page.
- Traits, as part of the language – see more.
- Typesafe company
- Code contracts (preconditions, assertions and invariants) as first citizen of Scala language – they are embedded into language so you could guard all your objects by using
ensuringkeywords (in java you could bring it by Guava) – see more.
That’s it. Having all that in mind, I’m convinced to spend more time to learn it and so far, it’s very good experience 🙂 I hope that the language as the ecosystem will continue to grow, going in a right direction – showing java world the right way.