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.
To be fair, you are basing this off C++. C++ has an obnoxiously
slow build system at times and everyone knows this, have known
this, and have even addressed some parts of it. Yet they still
use it. I don't think build times are that big of a deal. It's a
nice to have, but as long as a fairly sizable project compiles in
a less than a minute, you won't stand out in a bad way. If
anything, D should leverage the fast compile times to take
advantage of the leeway it gives so the compiler can do a bit of
extra work to give better error messages.