On Saturday, 12 July 2014 at 10:27:12 UTC, Russel Winder via Digitalmars-d wrote:
On Fri, 2014-07-11 at 16:54 +0000, Chris via Digitalmars-d wrote:
[…]
I remember Java used to be "theeee" best thing ever. After years of using it, however, I found out how restricted the language was / is. Still, it's been a success, because people believed all the propaganda. What matters to me is not so much the odd fancy feature, it's how well the language performs in general purpose programming. Go was designed for servers and thus will always have one up on D or any other language at that matter. But could I use Go for what I have used D? Not so sure about that. Also, like Java Go is a closed thing. D isn't. Once I read about D that it shows what can be done "once you take a language out of the hands of a committee". Go, like Java, will finally end up in a cul de sac and will have a hard time trying to get out of it. Not because the language is inherently bad, because it's in the hand of a committee. Ideology kills a language. But it doesn't matter, because people will use Go or whatever anyway, will _have_ to use it.

People believed the FORTRAN propaganda, the COBOL propaganda, the Pascal propaganda. I think we ought to distinguish good marketing from hype. Java had good marketing, was in the right place at the right time, and
had a huge amount of hype as well.

If Go is better for server things than D then might as well stop trying
to use D at all.

Go was actually designed as a better C with CSP for concurrency and
parallelism.

Go, D, Rust, C++, C, Haskell,… are all just programming languages that create native code executable. Thus they are all in the same category
regarding potential usage. Everything else is about whether the
programmer likes and uses well, the language.

If Go and Java are closed languages, so is D. All three have open source repositories and people can submit changes via pull requests. All three have committees comprising the people who have commit rights to the mainline and they are the only people who can actually change the
language.

But D is much more open to discussion and features are implemented faster, as far as I see. If I think about Java, that it took them ages to implement useful features like enumerations. Go ruled out templates, if I remember correctly. It's this kind of ideological / dictatorial attitude I don't like. Of course, Walter has the veto of death, it's his child after all. But there is far more flexibility. In the D community people listen to each other and trust each other's judgements and user experiences (or we wisely shut up, if they have no expertise on a certain topic).

I think I have to repeat the point about irony here regarding
ideology :-)

What I'm taking issue with is that everybody focuses on the flaws of D (every language has flaws), which often gives the impression that it's an unfinished, stay-away business. It's not. D can be used, and I've used it, for production code. It's more mature than D or Rust and it is superior to other languages like Java (no OO-ideology for example). Mind you, D is a hindsight language, which makes it wiser. Does it have flaws? Yes. I come across them sometimes. Is there a language without flaws? If there is, tell me about it. Talking about hindsight, I've tried many different languages, I like D because of what it has to offer for general purpose programming, it compiles natively, interfaces with C at no cost at all, it has strong modelling power, features that users require are added. I may sound like a zealot (see "irony"), but I'm not. I'm very pragmatic, D is a good tool and, being community driven, there is a real chance of making it a fantastic tool. Individual features are not everything.

Go folk have exactly the same view and argument regarding Go. Java folk have exactly the same view and argument regarding Java – well except for
the compiles to native code bit, obviously. ;-)

In the end it is about community rather than the programming language per se. Java created a huge community that was evangelical. Go has rapidly created an active community that is evangelical. Python has rapidly created a large evangelical community. D has slowly created a
small community that hasn't as yet created the outward looking
evangelical aspect. Where are the user groups having local meetings is my main metric. Java definitely, Go definitely, C++ sort of, D no. This is the real problem for D I feel. Without local user groups meeting up
you don't get exposure and you don't get traction in the market.

[snip]

You are right of course, but that was not my point at all. My point was that we have to stop the constant D-bashing. One flaw (or perceived flaw) is blown out of proportion and used to discard the language as useless, which it is not. What H.S. Teoh described is true, you can start with script like stuff in D and it scales later. I've been doing the same thing for a while now. I no longer use Python or the like, I just use D, and if it's just for a regex filter.

There are three things involved here, one is that people opposed to D are willing to put up with whatever flaws in other languages, but have no mercy when they detect a flaw in D, which leads us to point two: I suppose people don't "trust" D, because it has no big company behind it (so it cannot be good, it's not "authoritative", in other words D doesn't wear suit an tie). Third, we don't emphasize the good things about D enough (see H. S. Teoh's list). I can imagine that people are (ironically enough!) put off by D, because they think it is too difficult, too nerdy (cf. templates, ranges). It's true, it takes time to grasp some of D's more advanced features. But D can be used in a simple way for simple things (cf. script like programs). If someone is thinking about writing a program that does some number crunching in C (say for signal processing), why not use D instead of C or Python (God forbid!)? It can later be extended or improved. You don't need to be a rocket scientist to use D, it offers the same ease of use as Python. I think people are sometimes a bit scared to leave the comfort and security of the well-trodden path that languages like Python and Java seem to offer.

I think we need to address these issues, because they are of a psychological nature and not really language issues. I'm sure that if we fixed GC and had the best implementation ever, people would find something else to complain about "D doesn't have blah, I don't like it!"

That's basically what my post was all about.

Reply via email to