Reasonable Scala Compiler
It will be interesting to see what the subset is.
I have been writing scala for 2 years, mostly in spark and flink and as much as I love parts of it, overall, the language is just not the most approachable. Some of the features are super valuable every once in a while, but I might gladly give some of them up for a streamlined language that is easier to get people started on (while not just writing imperative style Java with Scala syntax)
My other curiosity is compatibly. If I can compile a subset of my project much faster that doesn't need all of Scala, that seems like an okay place to be in.
I am a bit concerned that between the Scala, Dotty, Typelevel, and now the Reasonable Scala Compiler, that the Scala community might become fragmented. Hopefully the rsc's claim of "making our findings available to the Scala community at large" holds true.
Edit: should have keep reading before commenting. In their related work document:
>we are definitely not declaring Lightbend Scala dead. To the contrary, we view ourselves as complementary to Lightbend Scala and hope that our results will create new opportunities for the official compiler. We are planning to keep in contact with Lightbend to discuss our findings and facilitate technology transfer.
I'm interested in what they said about reducing the compiler to 4 passes. Dotty takes a really interesting approach to this with 'miniphases' (https://infoscience.epfl.ch/record/228518/files/paper.pdf). I think it'll be interesting to compare these two methods when both compilers are production ready.
This truly means we still lack a programming language with:
1. reasonable support of object oriented programming.
2. reasonable support of functional programming.
3. solid concurrency features.
4. runs comparable to native code.
5. simple to learn.
Even though it is not difficult to create such a language but we see a new language poping out every now and then and none of them try to solve these issues.> Identify a subset of Scala that can be compiled with reasonable speed
I am afraid of Scala fragmentation. There is no way new compiler can be 100% compatible. Hopefully it will be tested on major projects, or there will be some official Scala Language spec.
It would be nice to add a switch into old scalac, which downgrades its features, to make it compatible with new scalac.
I believe Scala has too many features, and it will be very difficult to fix compilation speed. But there could be decend boost just by rewritting compiler from scratch. If anything we will get better error messages.
Compilation speed was major reason why Jetbrains started Kotlin.
Disclaimer: I worked with Scalac / IDE back in 2009. Kotlin fanatic.
I'm a bit confused. I have been told multiple times by Scala users that Scala compile times are a non-issue.
Overall, I feel like with the success of Go and Kotlin, having an easy to learn language definitely wins. Faster runtime speed might be a bigger 'market' than wanting fast compile times, which matters if you have a large enough codebase. I do wish Scala native was further along, and if the language was going to get simpler, it would focus more on native speed than compilation time. Quite a few Scala compiler releases have made big strides in compilation times, to the extent that java vs scala compilation times I feel are the same or well worth the cost, so this has been and will be an ongoing effort. The Java group is also working on being native, so we will likely see Java native when it gets there.
So Clojure is slow to start and Scala is slow to compile. Is Scala also slow to start? As compared to a Java program to performs the equivalent functions.
Huzzah! Maybe this is already in the works, but I would love to see a compiler that stays hot in RAM and works incrementally.
RAM is cheap nowadays, and the number one reason I want a fast compiler is to speed up my feedback cycle between making a change and evaluating the effects of the change. So I want something that squats on a large chunk of RAM and works in parallel with me, updating with every edit I make.
I'd like to see a Scala compiler that works more like a proof assistant like Coq. I want the compiler's job to be to help me quickly write correct code. That should be first-class functionality. Batch-compiling the same source files over and over again should be just a neat trick that the compiler can do on the side.
Doesn't Scala run on the JVM ? Are they talking about JIT times or are there other Scala 'environment' that are not semi-interpreted ?
Will they use this compiler only for prototyping/debugging/testing? Or also for production work?
Scala just sucks. It was a research project that turned into a bad idea. I hope Scala dies
Scala just sucks. It was a research project that turned into a bad idea. I hope Scala dies
Twitter is not performing well as a business. It is also at almost all time low. Should it be working on a new language/compiler?
Writing a reasonable compiler would need a reasonable language, no? Scala had its chance in the last 13 years now it is time for this abomination to go.
Regardless of Scala, it's an absolutely insane idea to develop your own language to write your apps.
Either stick to the real Scala or switch to Java or Kotlin, but writing your own language is a failure waiting to happen.
I give this project a few more months before it gets canceled.
My opinion of this changed after reading this comment by the developer: https://www.reddit.com/r/scala/comments/6ubuix/twitter_annou...
Sounds like they are intending it as a research effort and hope to make progress with the entire Scala community, not fork it.