4 ms·
A difference is that Scala can run on the JVM, the browser (and other JS ecosystems) via ScalaJS, and now native. It doesn't get more universal than that!
by edko 10y ago
A difference is that Scala can run on the JVM, the browser (and other JS ecosystems) via ScalaJS, and now native. It doesn't get more universal than that!
- pjmlp 10y agoNative is all that it takes. Bytecodes are great for optimization passes and interactive development sessions. Java should have gone the native route for deployment, instead of having a few architects at Sun being religious against AOT compilation.
- edko 10y agoThe other two are important too: the JVM lets you leverage lots of existing libraries. The browser lets you reach more users.
- pjmlp 10y agoYes, but many of the use cases those libraries cover are also covered by other libraries. The browser, well personally I am not a big fan for anything besides interactive hypertext documents. Even though I worked several years as web developer, I tend to favor native + network protocols instead. Many researchers jumped into the JVM because it provided a fertile ground for language research, without having to build their own. Apparently LLVM brought a change to that and now everyone is using it instead of the JVM for language research, with the benefit of always having JIT and AOT toolchains, with GCC trying to follow up on that. What I dislike in the JVM was the religion against AOT compilation (only third party commercial JVMs offer it) and missing out on value types, even though Eiffel, Oberon and Modula-3 where all having them. Personally I think all language toolchains should offer JIT/AOT, with the developers using the best one for each deployment use case. Although for dynamic languages, AOT is probably not a good use case.
- goldbrick 10y agoThere are lots of existing libraries in PHP, why not target PHP?