Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why or Why Aren’t You Using Scala? (isaacmosquera.com)
2 points by imosquera on July 11, 2014 | hide | past | favorite | 5 comments


I'm using it because due to performance and maturity requirements I decided to build my app on the JVM. Among the JVM frameworks I selected Play for its features (development workflow, statelessness, async, REST/JSON). Given the choice of Java or Scala, I selected Scala because it is more expressive (less, clearer code) and the functional style makes it easier to work in asynchronous and immutable style. Also, I wanted strong typing and didn't want to use Groovy or Clojure.


1. The type system is too complicated.

2. It's difficult to find implicits. If I am looking for a Haskell typeclass instance, I know it will probably be defined either in the same module as the type, or the same module as the typeclass. I couldn't work out where to find implicits.


It's easy to get lost in the type system if you use type-complex frameworks like Slick.

Right now, there are a lot of frameworks to choose from and to evaluate. And there are a lot of "experiments" going on. I think that this will improve as the community matures and settles on fewer ways to do things.

We've been using Scala now for 18 months in production, and I sometimes feel that library designers need to step back and try to not overuse the power of the language.


Yah, it's not easy to find the implicit and definitely need to use a solid IDE to track these things down. I've gained enough experience now that I can track things down quickly but it's taken me a while to get here. I wonder if others will be willing to do the same or adoption of the language will stagnate.


> I know it will probably be defined either in the same module as the type, or the same module as the typeclass

Just like in Scala.

> I couldn't work out where to find implicits.

Click on the squiggly lines? (Or hover over the indicator next to the line numbers?)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: