Reasonable Scala Compiler

adamnemecek | 183 points

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.

joefkelley | 7 years ago

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.

addisonj | 7 years ago

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.

bearforcenine | 7 years ago

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.

Others | 7 years ago

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.
majidazimi | 7 years ago

> 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.

jankotek | 7 years ago

I'm a bit confused. I have been told multiple times by Scala users that Scala compile times are a non-issue.

needusername | 7 years ago

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.

ece | 7 years ago

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.

jgalt212 | 7 years ago

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.

wpietri | 7 years ago

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.

harveywi | 7 years ago

Doesn't Scala run on the JVM ? Are they talking about JIT times or are there other Scala 'environment' that are not semi-interpreted ?

jmnicolas | 7 years ago

Will they use this compiler only for prototyping/debugging/testing? Or also for production work?

amelius | 7 years ago

Scala just sucks. It was a research project that turned into a bad idea. I hope Scala dies

JediPig | 7 years ago

Scala just sucks. It was a research project that turned into a bad idea. I hope Scala dies

JediPig | 7 years ago

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?

Throaway786 | 7 years ago

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.

edem | 7 years ago

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.

hota_mazi | 7 years ago