Impressions after about a week of working with Scala/Play Framework 2.4

Minus interruptions, I’ve had about a week’s worth of solid time working on my current Scala/Play Framework project. The TL;DR is that it doesn’t suck and, once I get completely over the learning curve, I expect to be very productive.

I’ve completed the basic site infrastructure, a home page, account creation, login via Facebook, a lot of automated testing, a basic user system, a working logged out and logged in navbar and the beginnings of a logged in interactive page. The learning curve has been pretty steep since I’ve been integrating Bootstrap, AngularJS, ScalaJS, Play Framework, Scala and Slick and doing all the front end stuff myself. I’ve also tried to be good about testing by doing pretty strict test driven development.

The Good

  • Very good build system. You hit reload and it applies your changes. Everything you could possibly change gets applied with a reload. It’s magic!
  • Good Documentation. Typesafe’s Play Framework documentation is very good.
  • Good Community. The Play Framework community is active on StackOverflow, and I can usually find what I’m looking for.
  • Scala is nice. I’ve been working in Scala for a while and it just feels so much more rich as a programming language compared to Java. Once you get over the learning curve, it produces much more concise and expressive code than Java.
  • ScalaJS is great. You mean I can write javascript and interface with popular javascript frameworks in Scala!? Awesome!
  • Slick is great. Typesafe query building that actually works!? I’m sold.
  • The testing is first rate. The system knows how to mock varying levels of application functionality depending on what you’re testing.

The Bad

  • Scala compiler error messages can be hard to read.
  • The learning curve…. It’s a long one. I feel like I am still figuring out how to do things the Play Framework way each day. Everything is different… Arguably better, but different from how I used to do these patterns before. Every time I go to do something I haven’t done on this platform yet I first have to read up on how Play and/or Angular thinks one should do it.

The Ugly

  • Intellij is not able to figure out how to import a lot of classes. This is majorly frustrating and leads me to go hunting around for import statements. This worked so perfectly in Java for so long I almost forgot how much of a hassle imports are.
  • ScalaJs generates some funky error messages from time to time when Scala rules and Javascript rules create ambiguity.

Overall, I think things are going well. I have made reasonable progress and am starting to feel like the project is finally going smoothly.

Posted in Scala

Leave a Reply

Your email address will not be published. Required fields are marked *

*