On 2017-06-16 05:53, Mike B Johnson wrote:
Seriously! D is starting to gain momentum and if things are not
stabilized it's going to slow D down.
1 ==>> The VERY FIRST order of business is very simple:
When a new user goes to start using D for the first time, D is a PITA to
get working! Don't believe me?!?!
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".
And guess what? This happens to regular users too! They either. A) know
how to fix them from fixing them in the past or helping others(so it
doesn't count because the problem still exists) or B) have a specific
setup that happens to avoid the major issues(e.g., just use linux x86)
then act like there isn't any problems with D.
But no one wants to work on the part of D that deals with these problems
cause it's boring and most "experts" can deal with the problems in a few
mins to a few hours... doesn't seem like a huge waste of time(even
though it is, since it's a waste).
D needs to just work! Library errors, setup problems, IDE integration
should just work! It seems the changes of it working are about 75-85%...
that IS LOW! It should be 99%. (And I'm talking across the board)
DMD, LDC, GDC, Visual D, Coedit(or whatever the other main IDE's are),
the utilities(Dustmite, DFormat, etc) should all just work seamlessly
and without hassle with each other.
What is the main problem? It's very simple: The way the paths are stored
and retrieved is ancient and prone to bugs and it seems there is no
clear cut way on how to get everything to find everything else. Also,
versioning is not always there so even if the paths are right, the files
in them may not be!
Multiple versions should be able to exist side by side(since D is ever
changing and sometimes new versions simply don't work like they should,
then downgrading starts causing problems).
Solution Ideas:
This is a simple problem that needs to be fixed. The installer needs to
be updated to act as more of a package manager(a graphical one for us on
windows) that has versioning checks and such in it. It doesn't have to
be fancy, but should do a bit more work than the current on which is
basically more trouble then just compressing the zip and editing sc.ini
by hand.
1. A unified path/directory layout that is unambiguous and every D app
can rely on.
e.g.,
\Dlang\Compilers\DMD\v2\73.01 (the v2 stuff hence forth replaced with
<version>
\Dlang\Compilers\DMD\v2\main <- a junction/link to the current version,
usually the latest
DVM [1] is doing some of this.
[1] https://github.com/jacob-carlborg/dvm
--
/Jacob Carlborg