I didn't post this, but cool to see this up here!<p>The full book is ~400 pages and will be released Summer 2020 (i.e. soon!). If you're interested in being notified when it comes out, there's a mailing list link on the page and I'll let you know when it's out. There will be both E-Books as well as paperbacks & hardcovers (assuming the supply-chains are still open in this COVID-19 global environment...)<p>The first 5 chapters are already online, for free now and forever. These form a self-contained introduction to the Scala language: setup, basic syntax, collections, and a notable language features. If you're looking for a quick introduction to Scala, this is it.<p>The rest of the book goes heavily into use cases and projects in a way that few other programming books do: interactive websites, network file synchronizers, programming language interpreters, migration tools, parallel web scrapers, and much more. The book intentionally skips a lot of language esoterica in favor of showing how to use Scala to do things someone might pay you a salary for.<p>You will learn Scala by building a breadth of useful experience, rather than a depth of knowledge in language minutiae.<p>The chapters in the book are all based on real projects I have worked on. Most projects take <100 lines of code (i.e ~2 printed pages), and it is a testament to the Scala language that we can build working prototypes of all these things in a single 400-page book!<p>If this interests you, feel free to leave your email on the website, and browse through the free chapters already available.
Some context for people who have limited knowledge of Scala.<p>Lihaoyi is one of the most prolific coder's, not just in Scala, but in any language. He looks like he is much to humble and modest to claim so himself, so I will do it for him.<p>Here is a by no means exhaustive list of projects<p>- A buildtool<p>- A bash replacement that speaks Scala<p>- A test framework<p>- A parsing library<p>- Ports of several python libraries in Scala<p>- Several libraries in the scala.js ecosystem<p>For the full list see <a href="https://github.com/lihaoyi?tab=repositories" rel="nofollow">https://github.com/lihaoyi?tab=repositories</a><p>Discussions on Scala on HN tends to contain a somewhat large volume of comments that explicitly or implicitly tries to communicate that Scala is a language that is much to complicated to really be productive in. Lihaoyi is a rather clear example of why this is not true. If this random internet citizens endorsement doesn't convince you maybe the book will :)
Haoyi is an amazing guy. Last night at 8pm and 2pm this morning I submitted two PR to the Mill, he merged within one hour. In about 7 years, he helped to create an eco-system around Scala:<p>- REPL (ammonite)<p>- build tool (mill)<p>- JSON serializer(uPickle)<p>- web framework (cask)<p>- test framework(uTest)<p>- http client lib (requests-scala)<p>- HTML tag lib (scalatags)<p>- parser(fast parse)<p>Scala development and tool can be divided into four categories<p>- Java (OO): wrong idea for many developers. Use Kotlin if you like OO.<p>- Haskell (pure FP, even HKT): good for fun but not for profit. Use Haskell for pure FP.<p>- Erlang (Actors): fibers are better. Use Clojure if you like Actors.<p>- Easy: practical FP, the above tools from Haoyi. Use them if you program in Scala<p>I'd guess all is done after work. Please support him to make Scala better: <a href="https://www.patreon.com/join/lihaoyi" rel="nofollow">https://www.patreon.com/join/lihaoyi</a>
I work JavaScript/TypeScript day to day, but I like Python syntax and easiness but also like Go's concurrency. Having learned Haskell and Rust in the past, these days I appreciate simpler language.<p>In what way does Scala have Python's convenience and Go's concurrency? Based on talking to a few people that used Scala in the past they said they wouldn't use it again and they said I probably wouldn't like it.
This book has a section on "Why Scala" but not on "Why Functional Programming". What is interesting about Scala, if you already know Java (and most CS grads already do), is that Scala is a functional language.<p>Anyone know of a good book or article that gives an overview of functional programming and answers the question of "Why Functional Programming", without going into details any one functional language?
> Knowing the language alone isn't enough to go to production: Hands-on Scala introduces the reader to the ecosystem of editors, build tools, web frameworks, database libraries, everything necessary to do real work using Scala. You will finish this book having all the necessary building blocks to be productive using Scala in production.<p>We definitely need more books to include this by default. Kudos!<p>I only wish a book like this existed for F#! If anyone has any recommendations, I'm all ears
Honestly interested to know: Is there any added value for a Python developer in learning and using Scala? I love Python, especially because of its ecosystem, its widespreadedness, and of course because of Pandas, Numpy, Matplotlib. But I miss functional constructs from Mathematica or Scheme. Scala seems to be much more systematic and profound, but again: For everyday usage, is it overkill?
Both the content and layout looks really fantastic!<p>I wanted to ask any experienced Scala folks if its possible become really proficient without a solid background in Java. I understand that its only JVM hosted language so I guess my concern is how much Java you need to know when things go sideways - stack traces, low level debugging etc?
great action to make scala more accessible to developers. this should be a concrete answer to <a href="https://www.lihaoyi.com/post/TheDeathofHypeWhatsNextforScala.html" rel="nofollow">https://www.lihaoyi.com/post/TheDeathofHypeWhatsNextforScala...</a>
Haoyi's libraries (e.g. ujson) are great - and perfect for beginners to learn Scala with, very idiomatic scala without the Haskell-style overhead.