April 20, 2019
On Saturday, 20 April 2019 at 06:48:31 UTC, H. S. Teoh wrote:
> 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

Me too.

Looking back +20 years, the heydays of OO and C/C++ there were a multitude of compilers available:
- Microsoft
- Borland
- Zortech/Symantec
- Watcom
- CodeWarrior
- IBM VisualAge
- Kuck & Associates, Inc
- Comeau
- HP aC++
- GCC
- etc etc etc

The source-code was absolutely not portable between them! Why not? STL was one big havoc creating issue. There were many differentiating implementations, so much there was even a commercial software suite to test them for conformance!

These must have really killed the C++ language right? NO:

C++ is kicking pythons but in popularity rise last year:
https://www.techrepublic.com/article/most-popular-programming-languages-c-knocks-python-out-of-top-three/

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

Mine too.
April 20, 2019
On Friday, 12 April 2019 at 07:35:05 UTC, Tofu Kaitlyn wrote:
> Sorry for that title, but this is something I have been thinking about for a while...
>
> I honestly feel like D is a failure. I kinda just wanted to vent about it and see what other people think.
>
> I have been using D since around 2012 or 2013, instantly fell in love, use to post on the forms a lot under the name Tofu Ninja. I was convinced D was the future but since then I have become disheartened. The biggest thing that makes me feel like this is that in the 7 years I have been using D I literally have never met another programmer IRL who has even heard of it. 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. Never see any projects pop up on /r/programming using D. It feels like to the rest of the programming universe, D doesn't even exist. Sometimes I see threads on reddit like "what's your favorite programming language" and I always look for D but never find it.
>
> And honestly I don't think that is going to change. I feel like D has failed.
>
> I duno... what do yall think? Is D going to somehow explode in popularity in 5-10 years? Am I missing some part of the picture? Or am I right and if so what can be done about it?

D is great language it now not a young old.

We know all what D are missing to be great, globally we see the trend of the industry which is focus on feature from libraries and framework:
- to be secure
- to generate easily a web app with micro-architecture (see jhipster)
- create easily a web app (see the success of ruby they are some years ago and now python through Django, Flask …)
- to be efficient and middle/high level (see Spark, and for statistician/datalake user tools like zeppelin which make beautiful graphic form a datalake)
- to be able to use a powerful deeplearning library even if you are low in programming skills (see tensorflow, keras and other)
- to be shareable easily (what about to have a builder able to generate a container automatically , that save user time so they like it)

I agree now that D have failed on many way:
- Dmd hast started with something like than some pieces of code was not totally free
-> imply bad buzz and increased the sense of rejection from c++ community
- D1 to D2 was again a disaster
-> implying again a bad buzz and increased the sense of rejection from c++ community
-> Dub could be good but I do not like it as a fedorapackager and has a packager for a HPC center.
Dub do not support staged build which is a standard and it is hard to work with it in a offline environment
-> D intellisense is not easy to enable from IDE as we have to build several tools to get it
-> multiple compiler dmd, ldc is now seen as a waste of time from a non-D community


April 20, 2019
On Monday, 15 April 2019 at 13:41:46 UTC, Dibyendu Majumdar wrote:
> Secondly it takes time and effort to master a language such as D. Unless someone is hiring C/C++/Java/C# programmers and is willing to let them learn D on the job

This is exactly what Sociomantic did.  Time to learn and be productive in the language was never really an issue for anyone -- in the end we came to the conclusion that looking for domain expertise (e.g. network programming, machine learning, etc. etc.) was much more important than specific language backgrounds.

Sure, it can take time to master the finer nuances or more niche language features, but D is super easy to adapt to in my experience.

If anything, the harder adaptation was for those of us who _did_ arrive with a D background, coming in all guns blazing wanting to write really cool sophisticated D code and having to learn that, where really robust production code is concerned, sometimes a less sophisticated approach is better ... ;-)
April 20, 2019
On Saturday, 20 April 2019 at 06:48:31 UTC, H. S. Teoh wrote:
> But what I don't understand is how having multiple compilers for a language is construed to be a bad thing.

Agreed.  If anything it seems more of a problem that, while we have multiple compilers, they're all based on the same frontend and library implementations.  Having a true 3rd-party implementation would be a real test of the maturity of the language and its spec.

Which reminds me, I really ought to re-inform myself of the state of SDC ...
April 20, 2019
On Friday, 19 April 2019 at 17:58:24 UTC, Andrei Alexandrescu wrote:
> 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.

Dissapearing act... better than Houdini.
April 20, 2019
On Sunday, 14 April 2019 at 14:41:50 UTC, Guillaume Piolat wrote:
> On Sunday, 14 April 2019 at 10:25:03 UTC, Guillaume Lathoud wrote:
>> Maybe there is a psychological explanation for the debate here - please bear with me - just speculating:
>
> It's a lot less complicated than it sounds.
>
> Some average joes (you know who they are) with zero skin in the game are given the chance to talk to incredible programmers and have them answer in a sort of ego-tripping trance.
>
> But the only way to have them answer is to troll more or less subtly, and this behaviour has been going on for years.
>
> The lesson should only be that the leadership **should not have to listen to this whole load of non-sense** from anonymous low-achievers that blame their tools. And they want things that works well to fail with them.
>
> Do you imagine half the users of python-dev publicly berating Guido, every day for anything he would says? No, because that would be incredibly ridiculous.
>
> Hence why we have so many "helpful", anonymous poster who come with bullet lists of things to do, every day. This must stop because it is neither helpful nor with good intentions.

This rings true to me, although I would have put it more gently.

The better you do, the harder it is to get good feedback.  However
part of the reason for that is that there is a lot of 'free advice'
from people who don't live or die by the consequences of taking such
advice.

One way to tell the difference is to ask if the giver of advice acts
like someone who sincerely wants to achieve the same things you do and
has capabilities that lead them to having insight and has taken the
trouble to inform themselves about the situation.  Another important
question is do they at least in some way that's reasonable in relation
to the constraints of their situation do a bit towards furthering the
prospects of D.

It's a big big world and it's not going to work if one tries to make
everyone happy.  The beauty of voluntary co-operation is you don't need
to do that - just having a high appeal to a small proportion of the
population is enough.  Peter Thiel talks about this in Zero To One -
it's much better to have a monopoly, even if in relation to a small
market, that's one you earn and continue to earn every day than trying
to have a small share of an enormous market.  If that's the implicit
approach being followed then reducing your appeal to your core market
by trying to increase your appeal to everyone else may not be as
sensible as it might initially seem - at least one needs to think it
through a bit.

If wishes were horses, beggars would ride.

In an open-source community, it's not possible to order people to work
on things they don't want to.  It's not necessarily even true of an
enterprise that you can order independent-minded people to work on
what doesn't appeal to them.

It's best to recognise reality if one wishes to be effective.  That
doesn't mean that it won't be possible to accomplish things that don't
initially appeal to people for intrinsic reasons - just that you might
have to approach things in a different way.

The need for programming is - perhaps sadly - increasing in the world. I
say sadly because I'd be quite happy if I could just focus on things that
I myself find intrinsically interesting, and yet because software is
indeed eating the world, one doesn't in some situations have a choice.
Furthermore the need for performant code that permits control over memory
layout and yet still allows one to be reasonably productive and to morph
the code from a prototype to production code - the mysterious quality of
plasticity - that need is not diminishing.

Languages are not in a zero-sum fight to the death, not at all.  There's
plenty of room for D to continue to succeed.  It's nice to know what people
think should be changed to improve things.  Perhaps Facebook are right that
working code (or whatever the relevant work product might be) wins arguments
much more effectively than words.  I wonder if channeling some of this
dissatisfaction in generative and creative directions wouldn't be better for
everyone.
April 20, 2019
On Monday, 15 April 2019 at 13:41:46 UTC, Dibyendu Majumdar wrote:
> On Monday, 15 April 2019 at 10:43:12 UTC, Walter Bright wrote:
>> On 4/15/2019 3:09 AM, Dibyendu Majumdar wrote:
>>> Ultimately it boils down to what you need to do to make a living. If you had tons of spare money you can probably afford to work on something you like or think is good; but if you need to earn then you have to go where the demand is.
>> Laeeth Isharc just posted another list of job openings for D programmers at his company:
>>
>> https://digitalmars.com/d/archives/digitalmars/D/Has_D_failed_unpopular_opinion_but_I_think_yes_325826.html#N325995
>
> Sure but consider this:
>
> Firstly a handful of jobs posted by one company isn't going to sway developers.
>
> Secondly it takes time and effort to master a language such as D. Unless someone is hiring C/C++/Java/C# programmers and is willing to let them learn D on the job, how are you going to sway programmers to invest the time in D when they could be improving their skills in other languages that have much more demand?

Experienced C++ programmers don't seem to be deterred by the
prospect of having to learn D.  In fact they seem to see it as
a hard-to-manufacture positive signal about the culture.

I received an email from one person peripherally involved in the
community.  I asked his compensation expectations and he said X,
but I can negotiate if you're really using D.  He didn't even want
to write D at work mostly but he saw it as a positive signal.

I think the cost of learning D is small in relation to the cost of
having to learn the context and codebase, certainly for a younger
company.  For a large firm where everything is in place and it's
mostly maintenance possibly it would be different.

There aren't so many firms I am aware of with a similar approach
in finance; being open to unconventional approaches like using an
emerging language is a reflection of that, but really whether
someone is a good fit in other respects but just is put off by
some technical choices - I have not encountered that so far and
find it quite difficult to imagine.


April 20, 2019
On Sunday, 14 April 2019 at 19:47:59 UTC, Jon Degenhardt wrote:
> On Sunday, 14 April 2019 at 09:42:01 UTC, Laeeth Isharc wrote:
>> It's true that there's a high barrier to entry in the beginning with D - much better now, but if you are put off by discomfort and needing to figure things out for yourself then it's going to be quite a tough experience.  D doesn't place a high value on being accessible and if that's what is important then maybe somewhere else would be a better fit.
>
> Interesting. This appears to be a common sentiment, but it's opposite of mine and many other folks I talk to. I've programmed in a number of languages, and I'd say that Python is easier to get started in, but that most other languages are materially harder.

Thanks for sharing your experience, Jon - I very much appreciate it.

I actually found it easier to learn D the language than Python.
Just at the time the library documentation and some compiler problems
made some aspects harder.  The situation there is remarkably better
than it once was - to the extent that I can actually show the Phobos
docs (with editable, runnable examples) to colleagues and say we
should aim to have documentation for internal libraries as good as
this.

But I did know C pretty well (by the standards of the era I learnt it,
not by modern standards) and to me at least D felt very natural.

I think the accessibility is more when it comes to rough edges.  It's
not that D is difficult, but that making D as accessible as possible
isn't a priority of the community when a choice has to be made.

Whereas by all accounts Rust is not easy to learn, but they seem to
place a great deal of effort in making it accessible.  I'm not saying
that's a good thing - it's just a question of different community values.

> Might be useful to understand why some people find D easy and others find it hard. It could be related to past programming experience, but also might be related to the types of tasks being performed, the way people learn, or differences in approach to programming. (e.g. Perhaps early success or not is being determined by role the ecosystem plays in initial tasks chosen or programming approach used.) This is a material topic because programming model simplicity is, or should be, a strength of D.

If you are coming from C, at least the old-school way I learnt it
(reading sources of Fidonet, BinkleyTerm, things like that) then
I think D is quite easy.  You can write D like C and when you have
a problem where a feature of D would be helpful it's easy to remind
yourself about it and learn it that way.  It sounds like the same
is true for C++ programmers.

Getting people to recognise that object-orientation isn't the only
way to solve problems might be harder, though that's a broader
question.

>> Yes - the tolerance for experimentation is an important question.
>>  In firms where there isn't much of a tolerance for experimenting and for some of those experiments to fail then it's probably not the right environment to use D.  But I think the more interesting places to work are quite different.
>
> The computing landscape is changing rapidly, and there are many technologies companies need to consider experimental investments in, not just programming languages. In effect, when it comes to investments in advanced/experimental technology a company might choose to make, programming languages are competing with many other technologies, not just other programming languages.

Yes - I've met senior people (C level of important divisions) at
Citibank and my colleague similarly at JPM.  It's a matter of
public record that they are partitioning their efforts, creating
incubators,startups within the larger firm.  You would expect
them not to be at all interested in what we are doing, but they
are a little bit.  It's a time of change and nobody has a monopoly
on insights about what might work.

Ocaml makes D look popular, but I understand Bloomberg are doing some
interesting work there.

Language choices are probably the least interesting aspect of broader
technical and strategic decisions.  But strangely people get
inordinately emotionally involved in them.

April 20, 2019
On 4/20/2019 2:55 AM, Joseph Rushton Wakeling wrote:
> Agreed.  If anything it seems more of a problem that, while we have multiple compilers, they're all based on the same frontend and library implementations.  Having a true 3rd-party implementation would be a real test of the maturity of the language and its spec.

Many of the different C++ compilers were based on the same front end, usually Edison Design Group's.
April 20, 2019
On Saturday, 20 April 2019 at 06:34:17 UTC, JN wrote:
> 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'm pretty sure Iain would =P

But seriously though, in light of the recent MLIR keynote at EuroLLVM (really worth a watch if you're into compilers) I'm beginning to see the addition of more layers of IR as a tradeoff between time spent compiling and and runtime performance and so I see DMD as a useful -O0 ("No" IR) and then LDC as a useful -O{1,2,3} with LLVM IR, and hopefully in the future LDC + a D MLIR dialect ( / the various LinAlg ones) for -O3+ where every drop of perf matters.

I'll definitely be looking into doing some MLIR suff at some point, its a pity that GSOC is so close, I would have loved to put forward a project outline on it. Oh well maybe next year.