On Tuesday, October 18, 2016 16:02:28 Ali Çehreli via Digitalmars-d wrote: > I have a friend who has started writing a library in D. > > Although I recommended that he should use a recent dmd or ldc, he thinks > gdc is a better candidate because it's "available to the masses" through > Linux distros similar to how gcc is. Although he has a good point, the > gdc that came with his distro does not even support @nogc. > > Thoughts? Can you please tell him to change his mind! :p
I don't know what the whole situation is with gdc right now, but clearly, they're seriously undermanned, because they're still at 2.066 and haven't managed to move to a version of the front-end that's written in D. You certainly _can_ use it, but I'd argue that it's way to old to even consider it. dmd 2.066.1 was released two years ago this month. So, gdc is old enough now that it's possible for a symbol in druntime or Phobos to have gone through the entire deprecation cycle from start to finish between the time that that version of druntime/Phobos was released and the upcoming release of dmd. D is _way_ more stable than it used to be, but it still changes at far too fast a pace for you not to have trouble if you're trying to use a two year old compiler. And when you consider stuff like code.dlang.org, it gets even worse, since a lot of that stuff works with only the most recent release or two of dmd (certainly, most projects don't try and maintain compatibility over more than that). So, if you insist on using gdc, you're pretty much cutting yourself off from a large portion of the existing D ecosystem. I would love to see gdc finally get up-to-date and usable, but it's just way to old. And it's downright trivial to install dmd, making concerns about what's in your distro's repo kind of silly. With dmd, you can just take the zip/tar.xz file, decompress it, and add the appropriate bin directory from it to your PATH, and you're good to go. And there are packages for several distros as well if you want to use your package manager to install it that way (a few distros even have it in their repo). And I don't think that installing LDC is much harder. And looking at their site, it looks like several distros have LDC in their repos if you want to grab whatever version they have rather than installing the latest manually. So, if you want an alternative to dmd, LDC has been doing a good job of being up-to-date and is quite available. Honestly, until gdc is able to be at least _close_ to up-to-date, I don't see any reason to use it. You're just causing yourself problems for no gain. I very much hope that the gdc maintainers will get whatever help they need and will finally be able to get gdc up-to-date one of these days soon, but until then, I wouldn't mess with it. And honestly, I find the fact that they're still stuck on 2.066.1 to be very concerning. - Jonathan M Davis
