My choice to pick Go over D ( and Rust ), mostly non-technical

H. S. Teoh hsteoh at quickfur.ath.cx
Sat Feb 3 08:18:57 UTC 2018


On Fri, Feb 02, 2018 at 08:16:25PM -0800, Walter Bright via Digitalmars-d wrote:
> On 2/2/2018 7:06 AM, Benny wrote:
> > Other languages have slogans, they have selling points.
> > 
> > When i hear Go, you hear uniformal, fast, simple syntax language.
> > When i hear Rust, you hear safe, manual memory management.
> > When i hear D, you hear ... ... ... ...
> 
>                           Fast code, fast

Frankly, that slogan makes me cringe. Makes D sound like a fast food
chain -- cheap code, fast. Would you like fa^Wfries with that?

If we're serious about being fast, we better get our act together and:

- Make the GC faster, preferably on par with Java's best;

- Make dmd's optimizer better, esp. with loop unrolling on par with
  ldc/gdc, or better, so that we don't keep having to defend poor dmd
  benchmarks with "use ldc/gdc instead";

- Replace commonly complained-about slow modules like std.json and
  std.xml with faster (and better-designed) replacements; 

- Make dub run faster -- I can't help feeling frustrated when every time
  I invoke dub it takes 10-20 secs to scan the network for updates, then
  another 5-10 seconds to resolve dependencies, and *then* build it,
  when dmd itself is well capable of running an order of magnitude
  faster than that on a comparable amount of code.

- Shorten PR waiting times on Github. Some trivial PRs sit for weeks
  before even being noticed; kinda makes "fast code, fast" more of an
  ironic statement than a proud banner, y'know? (I've been diving into
  the deep end of the Phobos PR queue to declog old stuck PRs. Managed
  to bump the queue size from 100+ down to about 89 or so, but more help
  would be much appreciated. Sometimes I feel like a fast food janitor.
  Or fast code janitor. :-P)

- Provide an option to turn on GC collection (or *any* memory
  management, really) in dmd. I know it never frees memory because of
  "performance" reasons. But performance ain't gonna mean squat on a low
  memory system when you run out of memory and start swapping... or
  worse, invoking the kernel OOM killer. Then "fast code, fast" becomes
  "no code, killed". So much for fast. "How fast can you invoke the OOM
  killer?" :-P  I'd rather wait for a few more seconds and get an
  executable, than to shave off a few seconds and get zilch.


T

-- 
"The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts." -- Bertrand Russell.
"How come he didn't put 'I think' at the end of it?" -- Anonymous


More information about the Digitalmars-d mailing list