D needs to get its shit together!
Laeeth Isharc via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jun 18 14:02:40 PDT 2017
On Sunday, 18 June 2017 at 15:47:34 UTC, Vladimir Panteleev wrote:
> On Friday, 16 June 2017 at 03:53:18 UTC, Mike B Johnson wrote:
>> Just try getting D installed on all 3 major systems for DMD,
>> LDC, GDC, with an IDE, some utilities, possibly arm
>> support(even though it's new and expected to have some
>> issues), etc. The issues really start popping up when you are
>> trying to use x86 + x64. Library issues that result in strange
>> error messages instead of "This compiler is not compatible
>> with the phobos v2.4324".
>
> Might be worth considering something like the Android SDK
> installer. It looked like this:
>
> http://cache.filehippo.com/img/ex/4515__android_sdk_1_8_5_15.png
>
> Essentially it was a cross-platform package manager GUI, which
> allowed installing platform support for various platform
> versions side-by-side, as well as additional utilities and
> dependencies. It also exposed its functionality via
> command-line tools and IDE integrations. This translates fairly
> well to the D ecosystem, and could serve as a decent
> work-around for Windows' lack of native package management.
>
> We have some of the pieces as separate tools (Digger, DVM, the
> dlang.org/install.sh script, the Windows' installer's Visual
> Studio detection/integration), could be nice tying them
> together into a palatable GUI. Digger has a rudimentary one,
> which probably could be wrapped into a native-like app using
> Electron, but still lacking features such as managing GDC/LDC.
Digger is great, as is the Windows installer, and I appreciate
the work that has gone into them.
Sadly though in the current year we have been ruined by
everything being made easy for us - personally I have no problem
taking things apart to get to the bottom of a problem when it
doesn't work, but in the business world that is not universally
true, alas. So I think what lets us down sometimes is tiny little
things that maybe aren't complicated to fix, but are maybe a bit
specific. For example it's not so easy to build 64 bit dmd on
Windows from the command line (and I don't understand why we
don't distribute a binary). Or the installer somehow doesn't
seem to work with VS 2015 and I haven't even had the time to
figure out what the problem is because it's not on my machine and
I don't develop much on Windows at all myself.
Having a tsar of ergonomics or user experience might be something
valuable. Not really a tsar, but just someone to co-ordinate
improvement of those little frictions that one doesn't even
notice after using D for a while, but that are a big impediment
to a newcomer. I mean you could sit with someone new to the
language and see what they struggle with, or do it remotely and
chat every week. You would learn a lot that way. It doesn't
need to be an expensive resource - an intern could do that.
The culture is shaped a bit by C/C++ world, but actually I
disagree with Joakim that D is a low-level language. I don't
really use it that way myself, and others before me - including
Liran at Weka (who is pretty low-level when he needs to be) -
have observed that D has qualities of a compiled Python. And
people who use it like the latter are a bit accustomed to
comfort, and so it's a bit of a shock when for exaple someone
comes from C# or Python on Windows and wants to install zeromq
and realises (or worse, doesn't) they have to build the C library
themselves on Windows when they never even heard of cmake before.
This was a real example, and the person grumbled that D was a
lousy language for that reason... It's also true that an
excessive love of comfort is a civilisation-killer, and I think
that's one of the strengths of the community - that people who
persist are those who aren't put off by things being a bit
difficult in the beginning - but perhaps its a matter of balance,
and one could think about how to make the experience a bit
easier. (Yes, I realise that even today, Windows native code
library management is a problem - I just use that as an example).
More information about the Digitalmars-d
mailing list