
The Dotty experimental compiler for Scala now bootstraps - _sunshine_
http://www.infoq.com/news/2015/10/dotty-scala-bootstraps
======
jakozaur
How about the official Scala compiler? It seems to stagnant a bit... I know
there is a lot of work behind the scene, but from developer perspective there
aren't many things going on.

E.g. Scala 2.10 Introduced a lot of interesting features like string
formatting s"Hello $name!".

Scala 2.11 offered minimal improvements, for me just compilation time
improvements and better incremental compilation. I don't see anything exciting
on 2.12 roadmap.

It looks like Scala compiler is very complex machinery, few key people left:
[http://www.slideshare.net/extempore/keynote-pnw-
scala-2013](http://www.slideshare.net/extempore/keynote-pnw-scala-2013) and
Typesafe doesn't monetize compiler itself, so it focus on building ecosystem
around it (e.g. Akka).

~~~
phirun_nsia
> How about the official Scala compiler? It seems to stagnant a bit

It is. Odersky is spending most of his time on Dotty these days and he doesn't
seem that interested in Scala any more, except when he's obligated to talk
about it at keynotes (and he tends to talk more about Dotty there anyway).
Despite the grandiose plans of possibly back porting Dotty features to Scala
at some point in the distant future, Scala has been in maintenance mode for a
couple of years now and with more and more people leaving the core team, it's
probably going to stay this way.

Such a missed opportunity.

~~~
vorg
The former developers on Groovy are spending most of their time on their day
jobs these days and they don't seem that interested in Groovy any more, except
when they're promoting the existing version at conferences (and they tend to
talk more about the fabricated number of downloads there anyway). Despite the
grandiose plans of possibly improving Groovy with a proper meta-object
protocol at some point in the distant future, Groovy has been in decline for a
couple of years now and with less and less people using it, and those that do
use it only using it for 30-liner test or build scripts, it's probably going
to stay this way.

Such a missed opportunity.

~~~
phirun_nsia
I think the only reason Groovy is still around today is Gradle. Once Gradle
starts declining, Groovy will probably disappear along with it.

------
daxfohl
Why do they want to bootstrap themselves? Golang specifically set that as a
nongoal, and look how fast their compiler is. Scala being a functional vm
based language will always have a performance disadvantage to well written C
code. If they really care about the real world usability of the compiler (and
thus the language), this implementation seems like a poor strategy.

~~~
noelwelsh
Bootstrapping is a useful test of the completeness of a compiler, and it makes
development easier.

The Go compiler is fast because it does very little. It doesn't do much
optimisation and Go is not a very sophisticated language and so does not
require much of it's compiler. It is not comparable to the Scala or Dotty
compilers.

~~~
daxfohl
Turns out go is bootstrapped now too as of 1.5....

------
darkdimius
[http://www.infoq.com/news/2015/10/dotty-scala-
bootstraps](http://www.infoq.com/news/2015/10/dotty-scala-bootstraps) has some
more details.

~~~
dang
Thanks! We changed the URL to that from [http://www.scala-
lang.org/blog/2015/10/23/dotty-compiler-boo...](http://www.scala-
lang.org/blog/2015/10/23/dotty-compiler-bootstraps.html), which doesn't give
as much info.

------
zokier
It seems kinda weird that Dotty is referred as "Scala compiler" when the
language Dotty compliles sounds fundamentally different from Scala. Bit like
saying that DMD (the original dlang compiler) is an experimental compiler for
C++?

> Dotty, a platform aimed to develop new technology for Scala tooling as well
> as try out new concepts for future Scala versions, has reached bootstrap
> status. This means that its compiler is written in Dotty and can compile
> itself, thus providing a drop-in replacement for the original one

I would imagine that self-hosting is fairly minor aspect of being a drop-in
replacement of exising software compared to backwards compatibility.

