On Friday, 22 December 2017 at 10:06:18 UTC, Joakim wrote:
This one of the main strengths of D, it is what Walter focuses
on, yet I have seen almost nothing on the D blog talking about
this. What brought me to emphasize this today is this recent
post about how long it takes to compile the mostly-C++ Chromium
web browser and the reddit discussion about it:
https://lobste.rs/s/iri1te/chromium_has_compilation_time_problem
https://www.reddit.com/r/programming/comments/7ktzog/chromium_has_a_compilation_time_problem/
I'm tempted to call BS on that 6-7 hour build time, as I used
to contribute to the Chromium project, and I think it used to
take me 20 minutes for a release build in a FreeBSD jail on a
fairly weak, 2008-vintage mini-desktop, a dual-core Celeron
with 2 GBs of RAM (don't hold me to that build time, just a
vague recollection, but probably in the ballpark). Of course,
the last time I built Chromium was more than 5 years ago, and a
lot has likely changed since then, such as now using LTO to
speed up the browser apparently, and maybe the
cross-compilation toolchain for ARM is slower, though others
note similar times for native x64 compilation also.
That still implies a slowdown of 2-3 orders of magnitude over
the last 5 years, given the much more powerful hardware he's
using, which is nuts.
D really needs the community to write blog posts talking about
how fast it is, publicizing that there is an alternative to
these glacial build times: who wants to do this? It doesn't
need to be on the D blog, could just be on your personal blog,
but it is a message that really needs to be spread.
I thought D did market itself that way.
However, my experience has been that D has fast builds from
scratch, but is really really slow for incremental builds. Here's
the thing: personally I don't care about anything except
incremental builds. It's great that Phobos compiles in seconds
when I do a git fetch after months. Win! Oh wait, I'm working on
a bug, changed one character and it still takes the same amount
of time...
Given that I write D code every day now, this incremental
compilation situation is driving me nuts, and I'm definitely
going to do something about it.
It's getting so bad that the day at work I had to write C++ I was
happy. Because the edit-compile-link-test cycle was _faster_.
Think about that for a bit - I enjoyed writing C++ (!!! either it
or Scala are the slowest languages to compile ever) because I got
faster feedback. Epic fail.
It's also possible I use templates and CTFE more that the regular
D programmer. But... they're some of the main reasons I use D in
the first place! I don't want to write Java in D syntax.
Atila
Atila