4 ms·
I bought Hands-On Scala Programming as soon as it became available. I bought it on the strength of Li Haoyi's blog posts about Scala, which I have enjoyed for y
by philipkglass 6y ago
I bought Hands-On Scala Programming as soon as it became available. I bought it on the strength of Li Haoyi's blog posts about Scala, which I have enjoyed for years: https://www.lihaoyi.com/ https://www.lihaoyi.com/
This book is an excellent way to dive in to Scala for application development, even though at this point it is more of a refresher than an introduction for me personally.
I started using Scala at a new job in 2014 with no prior Java/JVM experience. I bought Functional Programming in Scala, followed by Programming in Scala. FPiS was completely the wrong choice for getting up to speed in my new role, though it was academically interesting. Programming in Scala was closer to what I needed although it didn't deal with larger ecosystem issues. Hands-On Scala Programming feels like the book I should have started reading the first day I started working in Scala development.
6 years later, I no longer have the new-user perspective on Scala and the JVM ecosystem. Does Hands-On Scala adequately prepare someone for the JVM/Java quirks that leak through into the Scala environment? I can't tell now. I've internalized too much of that knowledge.
Assumed Java knowledge was a rough point for me in the first year or so using Scala. If something goes wrong when you're fetching Maven dependencies in an SBT based project, and you have never used Maven-as-Maven because you never used Java before, you may encounter some baffling error messages and lack the context to understand where you go next to fix it. I also encountered a lot of "Like Java's Foo, but with X" explanations of Scala features that didn't help because I never used Java. In the case of the problem with Maven dependency failures and baffling error messages from SBT, I had to resort to running SBT under strace before I found the root cause.
- 7thaccount 6y agoSame thing happened to me when trying to learn Clojure without Java knowledge or F# without C#. It's a big hurdle.
- sideeffffect 6y agoI did F# without having any deep knowledge of C#. I'm doing Scala without being a Java expert. It is all quite possible and a lovely experience. Moreover, the benefits that F# brings over C# and especially Scala over Java are enormous.
- pjmlp 6y agoThat is always the issue with guest languages, that is why I rather use the platform languages and focus on the tasks at hand, than dealing with extra interoperability issues. All guests languages traditionally bring their own build tools, package management, wrapper libraries for more idiomatic code instead of making direct use of FFI bindings, require extra IDE support. And in the end it is all leaky, because as you mention the underlying platform pops up when one least expects it. So I do spend the effort to learn what those languages bring into the table, "7 languages in 7 weeks" kind of stuff, but for production code I rather rely on the boring bare bones platform languages.