(throwaaway here)
Before you waste the next few months of your life learning a corrupt programming language:
- Typesafe co-founder quits: https://www.youtube.com/watch?v=uiJycy6dFSQ
- https://vimeo.com/64716826: Paul Dix - Why Node and Scala will dry up: Go will drink their milkshake
- I can personally tell you, scala is awful at handling large codebases and is so filled with idioms, you have a difficult time reading it. I remember opening scala code, seeing english, but it felt impossible to decipher.
- You feel clever when you write it. No doubt about that. Other programmers and your customers don't care.
- Compilation time: It's atrocious, we're talking 1 to 10 minutes to compile web apps.
- Package dependencies: You end up incorporating java at the end of the day. Version mismatches.
- As for the "functional language" thing, just pick real Haskell or Ocaml. Don't fall prey to scala being a functional language.
- You need to rely on a huge, laggy IDE with missing / out of date plugin packages to get autocompletion.
On the other hand, Golang:
- compiles these massive applications in line 2 seconds.
- It's highly lintable.
- The syntax is just... dumb.
- Yet you don't feel limited at all.
- It runs fast-fast-fast without having to rely on JVM.
- Familiar syntax... like a hybrid between Python and C
- You can import packages from github / git repos, automatically grab dependencies with one command.
- The build system and tooling is simple and genius
- Autocompletion (https://github.com/nsf/gocode)
OP: I hope you don't waste your time on a scala venture. Scala has it's die hard fanboys, especially those who spent 15 years in java and have too much of an ego-investment to think anything else, but even the co-founder of typesafe, the most prolific committer says the language is a mess.