I have not used Scala before. What's the motivation for this? I can think of two reasons - a) to make native Scala programmers feel home with Javascript and b) Scala is a superior language than Javascript, will therefor make many things easier.
I've used javascript for many many years and, as of 6mo ago, started using Scala (I do a lot of distributed programming on hadoop, storm, and recently spark). Scala is now one of my favorite languages because of Spark (http://spark-project.org/). Scala very nicely blends the functional and imperative styles and it always favors programming without side-effects. Anything you can do in java you can do in fewer lines and you will see fewer bugs.
That said- it's not a superior language, just a different paradigm. With Scala you get very strong typing, functional constructs (so incredibly powerful), matching, options, very clean closure syntax, etc.. You'll eventually fall in-love with _, too.
I haven't used scala.js yet, but here are some downsides to Scala proper:
* slow the compile
* tooling isn't great (this true of anything jvm to some degree though)
> tooling isn't great (this true of anything jvm to some degree though)
Well, you have plenty of very decent tools to inspect a running JVM state, and that's priceless. Eclipse is alright if you manage to set it up once with the tools you need and don't fiddle with the setup afterwards. Although slow, it packs a lot more features out of the box than Visual Studio. The debugger is pretty good too (including remote debugging).
If you compare it to state-of-the-art tooling for more fringe languages like Python or Haskell, it's lightyears better, really.
If you ask me, this is all about (b) if you consider only JavaScript vs Scala.js.
If you compare Scala.js to similar languages (CoffeeScript, TypeScript, ClojureScript to name a few), it definitely helps to have the same language both on server and client, especially if logic must be replicated on both sides. So in that sense, there is some (a) too.
But that is only my opinion. Any developer or team can make up her own mind on the matter.
How much of this is (b)?