[HN Gopher] Hands-On Scala Programming
       ___________________________________________________________________
        
       Hands-On Scala Programming
        
       Author : lihaoyi
       Score  : 55 points
       Date   : 2020-06-04 20:49 UTC (2 hours ago)
        
 (HTM) web link (handsonscala.com)
 (TXT) w3m dump (handsonscala.com)
        
       | philipkglass wrote:
       | I bought this book as soon as it became available. I'd say it 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 brand-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, anymore. I've internalized
       | too much of that knowledge.
       | 
       | Assumed Java knowledge was definitely 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've
       | 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.
        
       | xgdgsc wrote:
       | Great book I can tell from the Contents. I used Scala for
       | interactively inspect functions in jar you don't have source
       | code. In most of other domains I tend to use other languages with
       | a less powerful syntax to collaborate easier with other people.
        
       | wait_a_minute wrote:
       | Easily one of the best technical books I've read. I really
       | enjoyed the clear examples and clear writing. Making something
       | extremely simple is super important for understanding.
       | 
       | And the lovely typesetting is a huge plus when reading this on my
       | laptop. Looks great even when viewing in two-page mode.
       | 
       | Only complaint I can think of is that I'd have liked more
       | exercises at the end of each chapter. Ideally with less Sudoku as
       | I don't want to have to dive into the rules of a game in order to
       | practice the collections programming. But this is really a minor
       | nitpick, 5/5 book in general.
        
         | lihaoyi wrote:
         | Glad you like the typesetting! I'm a professional web
         | developer, among other things, and the typesetting is just HTML
         | + Bootstrap CSS 4.4.1, rendered into PDFs using Puppeteer.
         | Turned out looking much better than I had hoped!
        
       | p33p wrote:
       | Scala is a language I find interesting. Between Spark, Akka, and
       | all of the FP, it seems like it has most of the boxes I'd want. I
       | have read mixed things about the language though, specifically
       | with respect to its future viability and development. Is Scala
       | worth learning in 2020?
       | 
       | Are there other languages with a well developed actor model that
       | is also performant with numerical computing? That seems like a
       | deal breaker with respect to a language like Elixir.
        
         | nicoburns wrote:
         | Rust and Actix? I'm not familiar with what other Actor
         | frameworks provide though, so Actix may well not count as "well
         | developed".
        
           | Cyph0n wrote:
           | I don't have much experience with either, but Akka is
           | probably way more mature than Actix.
        
       | oytis wrote:
       | Hm... Was this posted seven times?
       | 
       | https://news.ycombinator.com/from?site=handsonscala.com
        
         | melling wrote:
         | Yes, he finally got traction.
        
       | lihaoyi wrote:
       | This was posted once before when it was work in progress, I
       | thought it would be nice to put it up again now that it is
       | complete :)
       | 
       | In one 400 page book, Hands-on Scala takes you from from
       | FizzBuzz, to Sudoku solving, to Websites and API servers, all the
       | way to implementing programming languages, actor-based concurrent
       | architectures, and massively-parallel web crawling with futures.
       | Every chapter has multiple multiple self-contained executable
       | examples, and multiple exercises with full executable solutions.
       | 
       | It's a paid book, but the first 5/20 chapters (~100 pages) are
       | free to read online or download in PDF/Epub/Mobi formats, as is
       | the github repo of 125 executable examples.
       | 
       | Whether you are a Scala newbie or an experienced Scala
       | programmer, there's something for everyone in this book. The
       | chapters on Actors and Futures in particular are the best
       | explanations for the concepts you will find in any language, and
       | would be useful even for people not using Scala.
       | 
       | Feel free to check it out!
        
       ___________________________________________________________________
       (page generated 2020-06-04 23:00 UTC)