D needs to get its shit together!

Mike B Johnson via Digitalmars-d digitalmars-d at puremagic.com
Fri Jun 16 23:06:53 PDT 2017


On Friday, 16 June 2017 at 17:10:41 UTC, Jacob Carlborg wrote:
> On 2017-06-16 09:53, Mike B Johnson wrote:
>>> DVM [1] is doing some of this.
>>
>> Cool, does it keep things well organized
>
> It depends on what you definition of organized. DVM is a tool 
> that allows you to easily install D compilers. It also allows 
> to easily switch between multiple versions of the compiler. 
> That is, you can have one window (terminal) with one version 
> and another window with another version.
>
> On Posix it installs everything ~/.dvm. Each compiler is placed 
> in its own directory, it's mostly the zip archives available on 
> dlang.org unpacked. Here's an example of how the directory 
> structure looks like on Posix:
>
> $ tree -L 2 .dvm
> .dvm
> ├── archives
> │   ├── dmd.2.073.0.osx.zip
> │   ├── dmd.2.074.0-b1.osx.zip
> │   └── dmd.2.074.0.osx.zip
> ├── bin
> │   ├── dmd-2.073.0
> │   ├── dmd-2.074.0
> │   ├── dmd-2.074.0-b1
> │   ├── dvm
> │   ├── dvm-current-dc
> │   ├── dvm-default-dc
> ├── compilers
> │   ├── dmd-2.073.0
> │   ├── dmd-2.074.0
> │   ├── dmd-2.074.0-b1
> ├── env
> │   ├── default
> │   ├── dmd-2.073.0
> │   ├── dmd-2.074.0
> │   ├── dmd-2.074.0-b1
> └── scripts
>     └── dvm
>
>> and deals with windows issues(link.exe., dlls, etc) or just 
>> uses the "D way" which is a hairball?
>
> I'm not that familiar with Windows (the Windows support was 
> contributed by another developer) so I'm not sure which issues 
> you refer to.


Thanks. At least D has something going on correctly here.

My feeling is, unless DVM works well with windows, that it 
probably currently doesn't offer much help. If it does manage the 
versioning well and can deal with the environmental issues well 
then it is close to what I am asking. If that's the case, it 
should be polished off and used as the main front end and hosted 
by D.

You didn't state if it works congruently with all the major 
compilers.

The issues in windows are:

1. coff/omf. Requires use of windows and visual studio/C stuff 
who's locations and versions change over the years. This can be a 
major headache finding the right version. Mainly because the 
error messages, when using the wrong version, do not suggest that 
it is a versioning error.

dvm could have the option to search the entire system for the 
files it needs(e.g., link.exe, various dlls that are generally 
used, etc) and attempt get things to work.

2. Managing different compilers: Not too bad but if you end up 
with some problems here, then it gets multiplied by the factor of 
the number of issues with each compiler. if LDC has an issue with 
the x64 dlls and dmd with the x32 and they are always looking in 
the same place because the versions are different and wrong, then 
it becomes a issue with a "factor of 4" problem. This can become 
even worse when you try cross compiling and such.

3. Re-installation can be problematic. sci.ini is overwritten. If 
you hand coded the paths to get everything to work, guess what? 
Well, who cares? You have plenty of time to waste, right?

4. Reinstalling one thing can break something else. This depends 
on how fragile the setup was at the start.

5. People that don't have problems with their setup generally 
think everything "just works" and bitch at others for 
complaining.  Ignorance is bliss, but it's still ignorance. Life 
is more complicated and everything just doesn't work for everyone 
because everyone system is different. I don't use standard paths 
to install things and when an installer hard codes paths that 
don't exist, it breaks on my system. That is not my fault. The 
installer shouldn't be so ignorant and do it's job properly. 
Usually it was written by someone who thinks that when other 
people have problems on their system, it is due to their 
ignorance rather than the ignorance of the installer 
writer(Because they think: Hey, it worked on my system and my 
system is the same as everyone elses). Same goes for utilities.

I have over 1 billion files on my system, I use it for around 20 
different non-complementary subjects(graphics, music, 
programming, etc). When everything is "competing for space" and 
things are not set up to work together, one seemingly unrelated 
program and effect every other one. (e.g., simply by adding to 
the path variable and break things with error messages that are 
meaningless to the real problem)

Most ignorant people do not take those things in to account 
because they oversimplify... and that usually causes problems 
down the road for the rest of us.

As D becomes increasing popular, there are going to be more 
variation in the system and the flaws in it will become larger 
and larger.  It's best to start working on fixing those flaws 
before they become too large to manage and weaken the whole 
structure. We all know this to be true on some level, but it is 
actually fact. It is the way of life, everything breaks down. The 
more flaws it has at the start, the faster it will break down... 
unless they are fixed at the start. Fixing them near the end just 
results in a huge waste of time and resources. e.g., same problem 
with a human being. If a kid doesn't take care of themselves, 
they will have many problems when they get old... then tons of 
money will be wasted on trying to "fix" them. If the kid took 
care of himself when he was young, those problems would be 
minimized. Same with a utility, app, or installer. But most 
humans treat their work like their life... they don't do the 
right thing until they are forced too, and by then it's too late. 
The point with all this is that D needs to start doing the right 
things that now rather than wait until it's too late. I'm not 
saying it is not doing anything right, but it is obvious by some 
of the comments that some people just don't get it and think it's 
everyone else's problem(and these people are generally the one 
that fucks it up for the rest of us, just look at the world today 
for the constant reminder). D and be the shining city on the hill 
or it can just be another New York or Dallas. Sure, they are big, 
but full of problems. Some people are happy and some are not. The 
goal is to make everyone happy. That starts by, first, by having 
a good foundation.










More information about the Digitalmars-d mailing list