Scala on LLVM
greedy.github.io
greedy.github.io
[1] http://event.scaladays.org/scaladays-nyc-2016#!#schedulePopu...
For those of you that havnt heard about Dotty, the next generation Scala compiler, I can recommend this link:
http://www.scala-lang.org/blog/2015/10/23/dotty-compiler-boo...
Isn't this what the @tailrec annotation is for? If it compiles it's tail recursive. This is separate than actually JIT'ing the call bytecode into a loop, I realize, but for a pragmatic engineer there's already a solution.
I wonder if there will be any potential for C++ interop. I would __LOVE__ to be able to code Scala that can be called from and in turn call C++ interfaces.
http://hohonuuli.blogspot.com/2013/08/a-simple-java-native-i...
Syntactically and semantically Scala is one of the best language's I have ever worked with (although I spend little time with it).It's middle approach to OOP and FP is best approach for enterprise projects.It does not try to shove FP in your throat, but provide best platform to do FP when it is much more efficient than simple OOP. However when it comes to JVM (especially in Linux desktop). My answer is big fat NO.
Of course, I am talking about desktop experience.JVM in server side is great and robust, I don't have anything against it, other than praise.
Aside: Shenendoah was supposed to be an improvement over existing GCs in pause times, but it's not yet ready if it's alive and it's for very big heaps and when you want low latency over performance/throughput.
Were it not for the Java-land compatibility & ecosystem requirement (and all the baggage associated with it, such as not alienating Java OOP programmers), I wouldn't use Scala. I'd probably ditch the OOP part of the FP+OOP hybrid that causes problems in Scala, and use something like Haskell instead.
I honestly have no interest in a native/JVM-less Scala. There are better languages for that out there.
I'd be willing to learn how to write GUIs in any language.
PS: I see that Leksah (http://leksah.org/), a Haskell IDE, is written in Haskell using GTK. The screenshots look decent enough. Not sure if it's unpleasant to write a GUI app like that in Haskell.
*Assuming my agreement lowers the probability of being ridiculous, which is an open question… ;)
Disclaimer: I work with Scala in my day job, and I like it -- it sure is nicer than Java -- but I don't know if I would use it in situations where the JVM wasn't mandated or needed.
The Center's mission: "Organize open source projects around Scala".
About scala-native, no details are given on whether it targets scalac or Dotty (which another talk [2] describes as a couple years away from production-ready). The situation could change if, say, Akka or Play announced a Roadmap for Dotty.
[1] Martin Odersky: "Scala in 2016". http://files.meetup.com/18712511/Scala2016.pdf
[2] ScalaSphere: Guillaume Martres "Hacking on Dotty: a live demo". https://www.youtube.com/watch?v=0OOYGeZLHs4
RoboVM uses LLVM and quite a few People were using Scala with it.
As "the JVM" there are plenty to choose from.
Embedded vendors do have implementations that run with a few hundred KBs or 1-2 MB depending on the use case.
I would say it is just yet another implementation.
Personally I find healthy that languages have multiple implementations, specially since it clears the confusion between language and implementation.
In any case Scala seems to have large following among those who love JVM and Java ecosystem libraries.
A comparison with some of Julia's features:
(1) Multiple dispatch: providing ability to define function behavior across many combinations of argument types
Scala has the Cake Pattern
(2) Built-in package manager
SBT, anyone?
(3) Automatic generation of efficient, specialized code for different argument types
Dotty's Linker is on the horizon, https://d-d.me/talks/scaladays2015/#/
For one, it isn't as low-level as Rust. That can be good or bad for your use-case.
Also, Scala has a bit more expressive type system than Rust so you get that. Scala has scalaz/cats and shapeless which aren't really possible in Rust.
> This branch is 211 commits ahead, 10086 commits behind scala:2.12.x.
Is there any new context / development that makes this extra interesting right now?Although I must admit I would love to read the late Scalia's opinion of LLVM.
Guess what: The more work a compiler is doing, the slower it's going to run. Comparing Java and Scala compilation is like comparing the gas mileage of an 18 wheeler truck and a small city car. Guess what? The 18 wheeler won't do 30 mpg.
Im of the opinion that most groups don't want the complexity that scala brings, and we're going to see that in the community growing around spark. The databricks style guide clearly avoids a lot the complexity of the language, and the people who are coming to scala for the tech and not the language are going to follow their lead.