April 19, 2019
On Thursday, 18 April 2019 at 23:43:26 UTC, Margo wrote:
> And this is where things turn into Crystal its advantage.
> Despite all the missing features, its so easy to get tasks
> setup and going. The roadblocks feel less of a issue. D just
> feels *old* with the 1001 command line options.

Crystal merits: it feels easy.

D demerits: it has typical compiler options instead of subcommands.

I felt that D was a lot easier than Crystal, but that's feelings
for you. I didn't much like sudden requirements like

  senders = {} of String => Int32

in code that's otherwise free of explicit types. I didn't like
Crystal's compile times. I had a lot more experiences that could be
narrated "I bet this will work... oh it does!" in D than in
Crystal.

With D, a lot of my stuff just has #! /usr/bin/env rdmd at the top
and I run it like a script, which is pretty good as far as
1001 command line options go.

> At my old job i spend a week trying to implement some code in D
> and being unhappy about all the other stuff i needed to write
> just to get it function. I spend a day in PHP and was finished.
> Sure, it was slower, used more memory but my time was way more
> valuable.

Just PHP, or a PHP framework?

I bet if you just printed HTML from a little CGI script in D it'd
be nearly as easy. I'm saying this seriously. I've written a lot of
internal webapps like this, especially where the backend has
very little to do. Nothing I couldn't do in D.

> Crystal when upgrading tends to be so easy to fix changes,
> where as a lot of the D eco system depends so much on specific
> versions of D. With constant changes for new features and
> removals of old ones, D keeps hurting so many packages.

That's too bad. My experience from learning the language from the D
Programming Language (released 2010) was just that some of the
imports had to be updated. Maybe that book just didn't cover the
features that changed so much in the meantime.

> PHP, what gets so much unholy criticism
> from people ( a lot undeserved because years out of date
> information ),

Sorry, but this will never, ever, ever be true.

> Somebody mentioned codingame just a few days ago... The first
> responds to this user: "You're probably in the best position,
> as a user of the site, to advocate D's inclusion.". Yes, a
> random newbie who asked why D was not on this website, where
> you learn to program needs to "do the work" to get D on it.

Wow. That guy should be banned. The obviously preferable response
to any question like this is "thanks! I've added this site to a
list or made an issue or ticket out of it and someone will be
emailing the owner to ask how we can help get D supported."

Even if D is never added, this is action in the direction of
spreading D and it's welcoming rather than dismissive. And even if
D is never added, the questioner might choose to learn more about
the language in the meantime, rather than giving up on such a
hostile community.

> The reality is, D brings few new things to the market that a
> competitor can not copy ( C++ already did, so why switch ).

C++ is the only language I've ever stopped learning before even
completing a tutorial, so I can't speak much on it, but every few
years I'll watch a serious presentation about the language that
has this kind of pattern:

  PRESENTER: Here's some code. Raise your hand if you'd write this
             code.

  AUDIENCE: *some hands are raised*

  P: haha, come on. Don't be shy. How many of you, really?

  A: *most hands raised*

  P: OK. Me too: *raises hand*. We're all wrong. This code is
     terrible. Nobody should ever write code like this.

  ...
  P: here's a way that's not so bad, but--
  ...
  P: here's another way, but it--
  ...
  P: this way is ideal, this is how the STL does it, but it is
     actually illegal under seven international anti-torture
     conventions to ask anyone to ever write code similar to this.
     Seven of my coworkers were found dead at their keyboards after
     writing such code. Most of the budget of this C++ convention
     is going towards therapists, this year, so that we can keep
     updating the STL without more than expected loss of life.
  ...
  P: and this is how I recommend you do it. This way still has
     some problems, in particular it's much less efficient than the
     ideal way, but it's the best compromise without compromising
     quality of life too much.

Ever few years a presentation like that.  The last one was titled
"The Nightmare of Move Semantics for Trivial Classes"

I don't think there's a feature you can add to C++ that will
prevent you from having to know *all* of the options above, even if
you only ever write the last, because you can still come across
other people's code.
April 18, 2019
On 4/13/19 4:28 AM, Tofu Kaitlyn wrote:
> 
> I try to! I try to stick up for D every chance I get... but honestly at this point it is starting to get a little embarrassing to do so. I have been using D for 7 years and been trying to tell people how awesome it is... but after so long and still almost nobody is using it... it kinda makes you wonder what's the point, why do I keep trying? Im not really good enough to contribute to the compiler or make some fancy new library or something.. but I love D and want people to love it too, that's why I find it so sad D is in the place it is.
> 
> When I started using D I was in my freshman year at university, back then it looked like D had a real chance of becoming a replacement for C++... now I feel like D has almost no chance compared to back then...
> 
> It just feels sad

Welcome to the club/support group! You can grab your orientation booklet "So you've found yourself loving a fringe language, you're not alone!" on the table over there, refreshments are to your right, grab a chair, the speaker will start momentarily, afterwords there will be more meet & greet so just relax and mingle, yea. Nice ta meetcha!
April 19, 2019
On 4/12/19 3:35 AM, Tofu Kaitlyn wrote:
> 
> I put on my resume that I like D and every interview I get asked about it, having to explain what D even is because they have never heard of it. I have never seen a job posting listing D. 

FWIW, compared to programmers, software managers and *especially* HR folk tend to be behind the curve on knowing what's out there, and the general state of things.

I'm definitely with you on the frustration, but here's a couple perspectives that I try to remind myself which might help (maybe they'll help you more than they help me! ;) ):

1. *Every* programmer knows one or a few of the "popular" languages: Python, JavaScript, C/C++, Java/C#, etc. But those common-denominator languages have limitations D lacks. Knowing and liking D gives you a secret ace up your sleeve, an advantage over others, anytime the brass needs something done and doesn't care how. Ok, so, what, every hiring manager asks you about it? That's a *GOOD* potential for you - it means you have the potential to offer them something that clearly nobody else has ever offered them, and they haven't even dreampt of finding.

2. If you can convince them that you *do* know the main common-denominator garbage language(s) they use and you're happy with it and  genuinely willing to use it (that sort of "putting up with crap" is what separates bringing in $$$ from doing volunteer OSS work), then you're almost there...At that point, all you have to do is keep in mind: Your passion and knowledge and (this is key here) **ability to evangelize and clearly articulate** the details/differences/benefits of an ADDITIONAL language that **even their** pointy-haired brains have never even heard of(!!), yet could potentially benefit them (or better yet, give them a hidden advantage...mua ha ha ha ha)...Well, at that point, if you've sold it right and they're not too terribly dense (which would be a bad sign for your future happiness there anyway), then congratulations, you've just helped sell yourself to them and distinguished yourself from the unwashed masses.

Granted, this is all just theory, I can't guarantee success from it, and...frankly I've never personally tried. Personally, the route I took instead was to just supplement my freelance income by picking up a part time job doing shelving at the local public library. They absolutely *love* that I can alphabetize and do basic sorting without fucking it all up (I don't think they know it, but my experience with algorithms and optimization helps me here - and I was shit at alphabetical order until I started working there, had to constantly go though the alphabet song in my head for the first year or two). But then *I* love that I get something actually reliable (however small it may be) as an income while getting out of the house/cubicle/office, around people occasionally practicing basic human interaction, and still being useful while getting to shut most of my brain off. So to each their own, hope you find your niche! And this support group will continue to meet every Thursday evening, bring a friend, refreshments will be served. ;)
April 19, 2019
The general feeling I get about D management is that it has brains, but lacks balls and focus. The typical response to that is: "Yeah, well, we are a community-driven project, we cannot order anyone. We are not obliged to do anything particular, so we do what we feel like doing. So if you want something particular to be done, go and do it yourself."

Surely, what you, the "community", mean is "actions speak louder than words". What you forget is that it also applies to you. Your actions are all over the place. I am especially disappointed with Walter. He might not like that, but as the creator of D and, admittedly, the biggest compiler expert here, is considered the king of D, with ultimate authority, power and knowledge. Ultimately, D is his child, and he bears responsibility for its future. But he wants to abstract himself from that and be seen as just a part of the community, not as a figure of authority. At the same time, he has strong opinions on certain topics (bugzilla issue 2043 comes to mind) and it does not seem that it would be productive to even create PRs for those, as they are not likely to be accepted. That is very convenient: "I don't want to be in charge and do what is needed rather than what I like (refactoring, C++ interop, custom codegen that nobody really needs because LLVM and whatnot), but I also know better what should and what should not be done with the language". It is too late, though, many people have invested too much in D.

The overall impression I get from D community efforts can be visualised as patchwork: you can patch as many holes as you want, but it does not change the fact that the fabric itself is weak. There should not be 3 different compilers, all managed by different parts of the community. Soundness bugs should be fixed first and foremost. There should be clear idea out there of what D should be: not a bunch of cool half-baked features merged into a language, but a solid language with concrete goals.

People here do not like to hear about Rust and often throw cheap jabs at it (like, ooh, ugly syntax and lifetimes), but it's a perfect example of what a language should be: a solid foundation, not a mine field with candy trees. Yeah, it has corporation support, but it's not the key to its success. The key is principles and determination. These guys are focused, concerned about language soundness and are willing to do research and hard work to ensure, that the sole Rust compiler is as good, as it can be practically. The only times rustc crashed or produced bad code were when I was using nightly. And it still happened less frequently than with stable DMD. Obviously, Rust's support for CTFE is still limited and const generics are not there yet, but I can live without them for now, because the lion's share of code does not benefit from them. What matters is what they have works great. Oh, and it also works on Cortex-M3 like a charm, I wish I could say that about D.

I have been a D fan for more than 10 years, but I had to stop using it. And if it sounds like I am talking about drugs, it should be. Now, looking back, I cannot justify all the time and effort I spent on it.
April 19, 2019
On Friday, 19 April 2019 at 14:28:26 UTC, burjui wrote:

> People here do not like to hear about Rust and often throw cheap jabs at it (like, ooh, ugly syntax and lifetimes), but it's a perfect example of what a language should be: a solid foundation, not a mine field with candy trees. Yeah, it has corporation support, but it's not the key to its success. The key is principles and determination. These guys are focused, concerned about language soundness and are willing to do research and hard work to ensure, that the sole Rust compiler is as good, as it can be practically.

I think the reason for the success of Rust if you want to call it that, is that it was made for something. Rust was made for a large project in order to reduce memory management problems and problems when sharing data between threads. The language had a purpose from the beginning. This "focus" in the Rust project is because there were clear goals.

I trend is clear, when you create something for a purpose you also get clear goals.
Rust is one example.
Git is another example, DVCS for a large kernel project.
Libre Office, create a free clone of MS office.
Ada, a safe language for mission critical applications.

Many of these are reused in other projects and domains because they have proven themselves to be up for the task in the project they were created for.

D was not created to solve something in a project (what I know about) but was created to give a better compiled language than C++. Obviously C++ wasn't bad enough. This leads to that there is no clear direction of D because it has no problems or questions to solve. This is also clear from the discussions here that there is no clear understanding what D is supposed to be. The discussion should more be "what problems should D solve", then you get the goals.

April 19, 2019
On Friday, 19 April 2019 at 14:28:26 UTC, burjui wrote:
> The general feeling I get about D management is that it has brains, but lacks balls and focus. The typical response to that is: "Yeah, well, we are a community-driven project, we cannot order anyone. We are not obliged to do anything particular, so we do what we feel like doing. So if you want something particular to be done, go and do it yourself."

I'm guilty of saying that. Not because I take joy in it, but because that is reality. Perhaps that can be blamed on management, but only to the extent that they haven't been able to secure funding to hire developers.

> But he wants to abstract himself from that and be seen as just a part of the community, not as a figure of authority. At the same time, he has strong opinions on certain topics (bugzilla issue 2043 comes to mind) and it does not seem that it would be productive to even create PRs for those, as they are not likely to be accepted. That is very convenient: "I don't want to be in charge and do what is needed rather than what I like (refactoring, C++ interop, custom codegen that nobody really needs because LLVM and whatnot), but I also know better what should and what should not be done with the language". It is too late, though, many people have invested too much in D.

A good example of this, as I mentioned there is the latest thread on fixing Dub's problems. There are two people who want to have the final say on everything, but they are completely silent about a critical piece of official infrastructure because it's not interesting to them. There is plenty of manpower willing to do the work, but at this point there are useless conversations on the mailing list because nobody has authority to make decisions, so nothing will come of those conversations.

> it's a perfect example of what a language should be: a solid foundation, not a mine field with candy trees. Yeah, it has corporation support, but it's not the key to its success. The key is principles and determination. These guys are focused, concerned about language soundness and are willing to do research and hard work to ensure, that the sole Rust compiler is as good, as it can be practically.

I would definitely not consider it "what a language should be" but it is a well run project. It's not just the core group working on the compiler though. It's also the much larger community of developers building third party libraries and practical projects and blogging about the language and spamming HN and discussions of other languages to generate interest. I blame the larger community for the lack of interest in D much more than Walter or Andrei. Rust attracted a more productive community than D.

> I have been a D fan for more than 10 years, but I had to stop using it. And if it sounds like I am talking about drugs, it should be. Now, looking back, I cannot justify all the time and effort I spent on it.

I'm lucky that for my use (as an improved C to interoperate with other languages) D works very well. I'm beginning to think my example is rare.
April 19, 2019
On 4/19/19 1:39 PM, bachmeier wrote:
> A good example of this, as I mentioned there is the latest thread on fixing Dub's problems. There are two people who want to have the final say on everything, but they are completely silent about a critical piece of official infrastructure because it's not interesting to them. There is plenty of manpower willing to do the work, but at this point there are useless conversations on the mailing list because nobody has authority to make decisions, so nothing will come of those conversations.

I've had a number of answers to your framing lack of work on dub as a leadership problem. Deleted them all after chatting with a friend for a couple of hours. Let me just point it that at a certain level you are definitely right - that dub has problem _is_ a leadership problem. The trick is figuring out what the level is.

Sönke Ludwig is the point of contact for Dub according to https://wiki.dlang.org/People. He, Martin, and Seb have had as much decision power as they wanted to with that project. Walter and I have accepted to integrate dub with the distribution after much insistence under an implied social contract that has since decayed.

This seems like a very important project to you, so I would be glad to grant you, bachmeier, full decision power with dub and update the points of contact appropriately. This is not cheeky - I am serious. Please advise.
April 19, 2019
On Fri, Apr 19, 2019 at 02:28:26PM +0000, burjui via Digitalmars-d wrote: [...]
> There should not be 3 different compilers, all managed by different parts of the community.
[...]

Sorry, I find this statement outright ridiculous.  In the past, we had only 1 compiler, and the doomsayers complained that D only has 1 compiler, seeing it as proof that D is niche and not worthy of attention -- because otherwise compiler writers would be falling over themselves to write implementations of the language and producing multiple compilers for it.  Now that we have 3 compilers, the doomsayers complain that we should only have 1 compiler, and see having 3 compilers as proof that something is wrong.

So who are we supposed to listen to?!  If we go back to having only 1 compiler now, I'll bet the next naysayer would drop by and say that having only 1 compiler is proof that D is dead.

Ridiculous, I say.  Utterly ridiculous.  D does have its problems, I'm not gonna whitewash that.  But this 1 compiler vs. many compilers thing has *nothing* to do with it, and is completely ridiculous, even illogical.


T

-- 
Never wrestle a pig. You both get covered in mud, and the pig likes it.
April 20, 2019
On Friday, 19 April 2019 at 21:37:14 UTC, H. S. Teoh wrote:
> Sorry, I find this statement outright ridiculous.  In the past, we had only 1 compiler, and the doomsayers complained that D only has 1 compiler, seeing it as proof that D is niche and not worthy of attention -- because otherwise compiler writers would be falling over themselves to write implementations of the language and producing multiple compilers for it.  Now that we have 3 compilers, the doomsayers complain that we should only have 1 compiler, and see having 3 compilers as proof that something is wrong.

Well, depends on which compiler is the only one. In the past it was DMD, and well, DMD has it's benefits, but it's codegen is not the greatest and it was attached to OPTLINK for way too long, causing a lot of headaches. It's easy to see why would people criticize it. If the LDC was the only compiler, I don't think people would complain as much (based on popular 'compiler framework', crossplatform, great codegen).
April 19, 2019
On Sat, Apr 20, 2019 at 06:34:17AM +0000, JN via Digitalmars-d wrote:
> On Friday, 19 April 2019 at 21:37:14 UTC, H. S. Teoh wrote:
> > Sorry, I find this statement outright ridiculous.  In the past, we had only 1 compiler, and the doomsayers complained that D only has 1 compiler, seeing it as proof that D is niche and not worthy of attention -- because otherwise compiler writers would be falling over themselves to write implementations of the language and producing multiple compilers for it.  Now that we have 3 compilers, the doomsayers complain that we should only have 1 compiler, and see having 3 compilers as proof that something is wrong.
> 
> Well, depends on which compiler is the only one. In the past it was DMD, and well, DMD has it's benefits, but it's codegen is not the greatest and it was attached to OPTLINK for way too long, causing a lot of headaches. It's easy to see why would people criticize it. If the LDC was the only compiler, I don't think people would complain as much (based on popular 'compiler framework', crossplatform, great codegen).

I understand that -- I myself am none too pleased with dmd's codegen quality, and regularly advise people to use LDC or GDC if they're worried about performance.

But what I don't understand is how having multiple compilers for a language is construed to be a bad thing.  Back in the day, it was considered a sign of language maturity that multiple compiler implementers would even want to bother to produce their own compilers for your language.  It was when nobody else cared enough to write their own compilers for your language, that was a sign that you've failed to become relevant.  To see the opposite being argued just boggles my mind.


T

-- 
I think Debian's doing something wrong, `apt-get install pesticide', doesn't seem to remove the bugs on my system! -- Mike Dresser