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).