<story><title>From first principles: Why I bet on Scala.js</title><url>http://www.lihaoyi.com/post/FromfirstprinciplesWhyIbetonScalajs.html</url></story><parent_chain></parent_chain><comment><author>virtualwhys</author><text>Article is a total tour de force.&lt;p&gt;The OP has contributed so much to the Scala community; somehow he&amp;#x27;s a Python + Coffeescript developer by day, and an absurdly prolific Scala library author in the evenings.&lt;p&gt;As for Scala.js, representing browser interactions in types is such a relief, and to have the entire Scala language available is almost too good to be true: client-server interop is &lt;i&gt;seamless&lt;/i&gt;.&lt;p&gt;Really the only negative for me is the Scala collections library. Of the @100KB Hello World[1] generated blob half of that is Scala collections. There&amp;#x27;s a small initial &amp;quot;tax&amp;quot; to pay basically, and thereafter size increase is on par with normal javascript.&lt;p&gt;[1] not totally true, vanilla Hello World is more like 40KB, but once you define a Scala collection then generated blob doubles in size.</text></comment>
<story><title>From first principles: Why I bet on Scala.js</title><url>http://www.lihaoyi.com/post/FromfirstprinciplesWhyIbetonScalajs.html</url></story><parent_chain></parent_chain><comment><author>hongboz</author><text>For people who want to do typed functional programming on JS platform, there is another candidate: BuckleScript for OCaml:
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;bloomberg.github.io&amp;#x2F;bucklescript&amp;#x2F;js-demo&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;bloomberg.github.io&amp;#x2F;bucklescript&amp;#x2F;js-demo&amp;#x2F;&lt;/a&gt;&lt;p&gt;The compiler is compiled into JS and native code.&lt;p&gt;It generates highly readable JS code and easier FFI.&lt;p&gt;It compiles super fast (generally 10~100 faster than Scala) and generates optimized code.</text></comment>