I’ve been spending a lot of time with Scala lately. I’m quite enamored with it. Me being a Perl guy might make this new love affair seem odd. What you may not know is that I’ve been programming in Java off and on since college. My day job has been Perl for many years but that work has all been in shops using Moose. This combination of JVM and modern OO with heavy external influence (CLOS!) has brought me right to Scala’s doorstep.
Since newbies are the best source of information for improvements I thought it would be good for me to document some of my frustrations:
- The documentation is impervious to normal people. I don’t know shit about expressing myself in the way the Scala documentation does it. Some of the docs are decent but others are much harder to read. I’m getting better at this but I still regularly bang my head trying to find examples. Shout out to Stack Exchange for being a great source of help.
- sbt is great. It even has a helpeful Getting Started Guide. Unfortunately there is still a lot of hairy shit going on there. My project is a cobbled together mess of other people’s work.
- The interaction with Java is very helpful but complicated as fuck for new users. I spend a lot of time groping around trying to get JavaType[A] into ScalaType[B]. JavaConversions apparently helps, but I never have any idea what I’m doing.
- I don’t know how anyone ever figures out what release of a library is current and where to get it. Ivy? Maven? What the fuck?
- When I do find a library it’s either undocumented or barely documented. This I can live with, as it’s a young community.
- What is Scala’s infatuation with punctuation? How does anyone keep up with the meaning of all of these things? It even extends into libraries. What the fuck is all this? Perl has deservingly been catching shit for years for the overuse of sigils. But at least there are variable names to help. This more than any other thing makes me want to throw a brick at the nearest Scala dev.
It’s easy to complain. So if you are reading this and taking offense please realize that I am powering through and trying really hard to learn. I’ve yet to feel like Scala isn’t worth my time and I hope someday I can contribute to the Scala community and make it better.
Scala is great. I am still reading a book about it and enjoying everything that I am learning. I love it’s features and it’s interoperability with the JVM. Keep up the great work!