More Linux love?

H. S. Teoh hsteoh at quickfur.ath.cx
Sun Jun 16 21:09:27 PDT 2013


On Sun, Jun 16, 2013 at 05:25:18AM +0200, digitalmars-d-bounces at puremagic.com wrote:
> Hi,
> 
> I've been following D development for quite a bit of years now and
> it have always been the case that Linux was a second (or even third)
> class citizen in D-Lang world.

Huh? I find this comment rather strange, to say the least. I'm a
hardcore Linux user (I hardly ever use Windows), and I've never felt
that Linux support was "second class". In fact, judging from the
periodic comments from Windows users on this list, I have the impression
that it's Windows support that's lacking.

Granted, I do use DMD from git HEAD, so maybe my perceptions are biased.
But quite frankly, I find DMD almost unbelievably easy to install and
use, compared with other compiler toolchains (*ahem*cough*GCC*ahem*),
most of which requires installing 25 additional library dependencies, 6
macro preprocessors and that horror known as autotools, and obscure
environment variables set to specific values that cannot be found
anywhere in the documentation. And that's just to get the thing to
build. Then to install it, you have to rearrange your system directory
trees, edit user profiles, add symlinks everywhere, etc..

DMD, in contrast, builds with just make -f posix.mak. So do druntime and
phobos. Installation is just a matter of editing dmd.conf to point to
the right places, and everything Just Works. You can even run DMD from
the directory the Makefile builds it in -- something that will cause GCC
to choke and keel over and die 'cos it's expecting this binary in that
location and this hardcoded path doesn't match that hardcoded path and
it just falls to pieces.


> I've always wondered when D is going to mature and gain more
> popularity and always attributed the problems with D catching up
> mostly for two things:
> 
> * that it's was essentially developed by one man only;

I find this statement needlessly inflammatory. Have you looked at DMD's
git commit log? I find it hard to take seriously anyone who looks at
that and still says with a straight face that D is a one-man project.


> * that it neglected Linux;

In light of my own experience as a hardcore exclusive Linux user, I have
to say this is patently false.


> The first issue have changed some while ago, and I was very happy to
> hear that finally Walter somewhat embraced more distributed and open
> development model. "D on github? Hell must have frozen over." -- I
> thought. And I think everyone could quickly see the results. Each of
> the latest releases seem like a big leap forward, not just small set
> improvements.
> 
> But the later seems to be the same as it was. Yeah, DMD can generate
> x86_64 nowadays which I remember was a long time pending issue some
> while back and I can find `gdc` in the Ubuntu repository, which is
> huge improvement, but overall the impression is the same: D is
> Windows-centric.
> 
> It seems to me that because historically D was Windows-centric,
> because Walter is Windows user, for all this years Windows
> developers had easier time when playing with D, than Linux devs. And
> after all this years, D community is mostly Windows-centric. Have
> anyone did any poll regarding this? I am guessing, I may be wrong.

Your guesses are way out in left field, at least from my POV. I've been
using D on Linux happily ever since I learned how to build it from git
HEAD -- which is ridiculously easy as far as compiler toolchains are
involved, as I described above. If you've ever had to build GCC from
scratch, you'll know what I mean.


> Each time I fell the urge to play with D in the free time and want to
> test newest, coolest features and projects written in D, I am
> constantly hitting some Linux-related issues. Library
> incompatibilities, path incompatibilities. I toy with a lot of
> languages and I never hit issues like this with eg. Rust or Go, which
> fall into similar category of programming languages. Both of them seem
> to be developed for Linux/Unix - first, Windows later.

This is totally puzzling to me. I've never had a problem with library
incompatibilities and path incompatibilities. In fact, if anything, it's
the opposite: DMD actually doesn't depend on 101 other external
libraries that something like GCC won't even _begin_ to compile without!
And path incompatibilities? Are you serious? Have you ever had the
misfortune of building GCC with the wrong --prefix setting, and had it
crash into a brick wall and shatter into a thousand pieces when it then
tries to invoke the wrong version of the backend which, if it even runs
at all, then tries to link your program to the wrong version of the C
runtime and chokes with an obscure error that only linker writers could
understand?  DMD is actually *pleasant* to install and use, by
comparison!


> So I'd really like to ask all Windows-users D-developers: please
> install Virtual Box, latest Ubuntu guest inside, maybe Fedora too and
> see for yourself is your project is easy to install and working each
> time you release it.
> 
> In my opinion in the last 15 years most of the noticeable, long
> lasting programming software improvements came from Linux/Mac world
> (Unix, generally speaking), but I am biased. But the fact is: Open
> Source and Linux is where young, eager to learn and risk devs and cool
> kids are. In great numbers. Embrace them, just like Open,
> Collaborative development model and you'll quickly see a lot of new
> cool projects, developers, bug fixes and buzz. :)
> 
> PS. Kudos for whole D community, the language is even better and more
> impressive then it used to be.

I find these comments rather needlessly provocative. I followed some of
the recent discussion on std.process, and I have to say that I'm quite
impressed at the level of concern for interoperability between Windows
and Linux -- something rather foreign to my experience of library
development mailing lists: most are either Linux-only ("who cares about
Windows it's your own problem if you use a broken system"), or
Windows-only ("what's Linux I've never heard of such a thing get on with
the program install Microsoft already"). And designing the API to be
maximally compatible with both? That's almost unprecedented!

So I feel compelled, as a dedicated (and exclusively) Linux user, to
state that the sentiment expressed by the OP does *not* represent my
experience of D at all.  While certainly there are always ways to
improve the D experience for both platforms, I can't say the way the OP
worded it is a very constructive approach, IMO.


T

-- 
Meat: euphemism for dead animal. -- Flora


More information about the Digitalmars-d mailing list