Setting up dmd properly

Jason Jeffory via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jan 12 13:05:08 PST 2016


On Tuesday, 12 January 2016 at 20:38:50 UTC, Laeeth Isharc wrote:
> On Tuesday, 12 January 2016 at 19:38:32 UTC, Jason Jeffory 
> wrote:
>> It seems the whole state of affairs in programming is "Lets do 
>> the most minimal work to get X to work in environment Y. To 
>> hell with everything else!". The programmers tend to do the 
>> most minimal work to code stuff that they can get away with.
>
> Since people aren't being paid to do this, and it's not 
> enjoyable for many to make things universally easy across 
> different environments once someone has solved their own 
> problem, you can hardly object to the behaviour - particularly 
> because different people are good at different things, and the 
> guy who creates a project may not be the same guy needed to 
> make it easy to use.  Then it's more a question of treating it 
> as a challenge to be solved.  It's quite amazing how much a 
> relatively small number of people has accomplished, and it's 
> something of a hazard of open-source that instead of gratitude 
> people receive far more criticism and complaint.  (They say a 
> 2:1 balance of positive:negative comments is needed for a 
> healthy relationship).
>
> So it's an engineering or institutional challenge - how does 
> one achieve this as a community?
>
>> This isn't 1984 but coding quality has no increased much since 
>> then.
>
> A little hyperbolic? ;)  We do seem to have higher quality 
> problems today, but do you recall what code from the 80s was 
> like?
>
>> I've virtually had no problems with it. MS did good job of 
>> modernizing the toolchain... Most people that code on linux 
>> think that it should be "hard" and gui's suck, that 
>> programming is suppose to be a hazing ritual. They setup their 
>> system to work for them, and it works... anyone with problems 
>> must be ignorant and not "pro programmers". It's kinda this 
>> elitist attitude. They spend more time solving 1%'er problems 
>> than creating tools that *just* work for 99% of the people. 
>> When problems occur it is never their fault but the fault of 
>> the ignorant cave man trying to become an godly programmer.
>
> Do you think that's actually representative of the attitudes of 
> people here?  I haven't seen that.  But work won't get done 
> without a plan and without someone to actually do it and one 
> can't force people to do things they don't want to do.  A big 
> problem is people don't know what to work on, and maybe some 
> kind of systematic approach to identify problem needs would 
> help.
>
>> Just search "openGL dmd"(28k) and about 80% of the results are 
>> people having problems with getting openGL working with D. 
>> "openGL dmd error" has 1M results, thats nearly 30 times the 
>> results.
>
> It would be a good idea to systematize this and produce a web 
> report so one can see in a more structured way where the 
> biggest difficulties are.  I have been talking to Adam a bit 
> about ways we could do this using forum history.
>
> I agree with your observation that there is much friction in 
> the way of a new user learning D and that many simply won't 
> persevere long enough.  That's nonetheless a better problem to 
> have than having an intrinsically inferior product - one just 
> needs to establish a process, and to have some way of 
> organizing efforts to address these difficulties (which may 
> include funding to a certain extent).  I think it's a necessary 
> part of the way D has developed that people have focused on the 
> language and core library first - it's not so long that it has 
> been stable and ready to use and over time better tooling will 
> unfold.  (Constructive criticism and ideas may help this 
> process).
>
>> D has a long way to go to make it competitive... as long as 
>> the tooling sucks and there are problems with stupid issues 
>> such as coff vs omf, installation issues, ide issues, etc... 
>> it won't get off the ground.
>
> Depends what the competition is ;)  Coff vs OMF will disappear 
> in time as people move to 64 bit.  Installation questions seem 
> to be improving.  IDE support keeps getting better.
>
> For many uses, these things are a one-off price for adopting D.
>  Whether it's feasible to pay that depends on what you are 
> doing and the people you are working with.
>
>> The D "core" seems to be mainly interested in fixing and 
>> enhancing very niche issues in D instead of working on making 
>> it a viable and usable candidate for the masses.
>
> But it is in the nature of things that disruptive technologies 
> start off as inferior in certain respects and it's only with 
> time that they can be a superior competitor across the board to 
> the dominant technologies.  See Clayton Christensen's work "The 
> Innovator's Dilemma".  It is what it is, and one can't wave a 
> magic wand to force people to work for free on shiny tools to 
> make it easy.  If that's what one wants, then one can do one's 
> small part to encourage this to happen - work on that oneself 
> and contribute it, file bugzilla issues, fund the D foundation 
> (once it is ready).  But simply complaining won't change 
> anything.
>
> BTW I hardly think that memory allocation, containers, 
> documentation, and web site (recent areas of focus by 
> leadership) are niche issues.

No, but what's the point if there is not a proper supported tool 
chain to make most advantage of this stuff. It's like putting the 
horse before the cart(or, more sensical, having the cart pull the 
horse).

The "leadership" focuses on what they believe is the best stuff, 
but they are not in a position to know what the best stuff is 
precisely because they are the leaders. They must ask the people 
they are doing this all for. If Walter, for example, want's his 
baby to grow up to fill an important part of human history(if 
not, then why all the work?), it seems wise that he make it the 
easiest to use. Easier = more people use it = more useful to 
people = bigger = longer = better.

By niche, I mean simply compared to the overall D developmental 
issues. Web site design may not be totally niche, but solving 
some rare dmd internal compiler problems are. Also, D can't 
compete with the web server community so it is also niche in that 
regard. (until you make D easy to use, whats the point of 
creating cool stuff for it... no one will use it if they can't 
get there easily)

>> Anyways, sorry for the rant... not like things will change. D 
>> does fill a niche, and it shows ;/ Just wish I could drive the 
>> Ferrari! I know it's awesome! but the Mazda is more 
>> affordable(Man hours wise) and gets me to where I want to go 
>> without hassle.
>
> Maybe you're right and it's not ready for you for now (although 
> this might change).  It's easy to overestimate what's possible 
> in a short period of time and underestimate over a longer 
> period.  The web site and documentation are very much better 
> today than when I first looked at D maybe 1.5-2 years back.

I don't disagree with anything you have said. The problem is 
mainly an "attitude".  It's the same attitude that people make 
about life "I'll die, go to heaven, so whats the point of 
"fixing" stuff here, now?".  But that attitude is what make it 
bad in the first place. Letting things "ride" because it's the 
easier thing to do but just perpetuates the problem which grows.

D, obviously, has done some great things. But there seems to be a 
huge lack of focus on the important things that will make it 
better.

It's quite simple, the 100 or so people working actively on D's 
growth can't do much of anything compared to 1M people working on 
it. Hence, it would seem best to figure out how to get the 1M 
people working on it quick as possible. As the 100 people toil 
away at solving these "niche" problems, they are not working on 
making D "affordable" to everyone. They are not multiplying their 
effort. They have a 1:1 leverage ration instead of 100:1.

D should be much larger than it is. How long as it been out? 
There is a dysfunctional issue with D.  Look how fast go and rust 
took off? There are reasons for that. Mainly because they created 
an easier to use and more functional toolset.  Kids that are 
getting into programming that have issues with X will drop X in 
blink of an eye and move on to Y. If Y is easy and works and does 
what they want, then they will stick with Y. At some point 
they've invested in Y and continue to use it. D has the issue 
that it is not easy to use beyond basic trivial non-dependent 
coding.  Hence when these kids try to do real world stuff(openGL, 
audio, GUI's) and run into 1984 problems, they move on to 
something easier.

D has so much resistance that it has to overcome this if it cares 
to be a dominant player. Focusing on the wrong stuff is wrong. D 
does that a lot IMO... or at least neglects the right stuff(easy 
of use is a huge factor, and partly D has this in a fundamental 
way, but not in a "everyday real world use" way).

My main issue with D is not so much what it does, but that I feel 
it is not covering enough ground on certain areas that I feel my 
investment in it will not return anything. I could spend 10 years 
becoming a D pro and if D goes fades away, then what would it all 
have been for? Each person that makes such a choice of using D 
will have to ask themselves that question. Some obviously are ok 
with investing in it, *many* are not(the masses). That concerns 
me, because the D "leadership" doesn't seem to think it matters. 
What D needs is a marketing genius that can make D in to 
something viable.




More information about the Digitalmars-d-learn mailing list