December 21, 2014
On Saturday, 20 December 2014 at 15:14:28 UTC, Bienlein wrote:
> On Saturday, 20 December 2014 at 14:06:51 UTC, Paulo Pinto wrote:
>
>>That is why I seldom buy into hype driven development.
>
> Okay, so Docker is hype? Have you seen the impact of it? Every Java magazine has articles about Docker. And that is not because Java people had an interest in it, because it is written in Go. It is because of its business value.
>
> Have a look at all the job offers for Go developers here: http://www.golangprojects.com. All those jobs are the result of some hype.

This is very definition of hype. Yes, Go is hugely overblown and it has nothing to do with any of its technical features. Only business value Go truly has is simplicity and even that doesn't matter in practice.

Please stop pretending technical features have any major impact on popularity.
December 21, 2014
On Saturday, 20 December 2014 at 19:11:53 UTC, Vic wrote:
> Second smaller thing I 'elude' to but don't verbalize in that argument is my personal preference for a smaller language. Less is better/faster.

I think this is the main reason why we have different perspective on necessity of change. Smaller language simply means that you need to put more complexity into actual applications and while D looks all cool at the first glance trying to get deeper (== implement BIG projects) inevitably makes you encounter fundamental design quirks that affect maintenance costs. Deadlnix has provided pretty good list of suck problematic points.

While there is some value in splitting the spec into core language and extensions I don't believe it is wise for D to compete in simplicity domain.
December 21, 2014
On Sat, 2014-12-20 at 22:09 +0000, Paulo Pinto via Digitalmars-d wrote:
> On Saturday, 20 December 2014 at 15:14:28 UTC, Bienlein wrote:
> > 
[…]
> > Have a look at all the job offers for Go developers here: http://www.golangprojects.com. All those jobs are the result of some hype.
> 
> I wasn't talking about Go specifically, rather the adoption of technologies in the going up slope of the hype curve in the IT fashion world.

I have ignored this thread for a while now as I had assumed most of it was angst. But I feel I have a few points to make prompted by this comment.

D was started as a better C++. Technically that may be true, but it has failed to gain traction in the market.  Most C++ people will move to C++14 rather than D. Most C people will move to Go rather than C++ or D.

Go was started as a better C with added concurrency. Go is not only superior to C for creating systems applications, it has gained huge traction. C's role is now well defined as being portable assembler for case when only that will do. Like COBOL though there will be a lot of C about for a long time.

And note that Go has a very good garbage collector. Also worthy of note is that gc produces slow executing code very quickly where gccgo produces very fast executing code very slowly. Echoes of dmd vs. ldc and gdc :-)

It doesn't matter that Go may have arrived on a wave of hype, the language appealed to some high profile people who did things with it and showed how much better it was than the alternatives. For these people the alternatives were C and C++. D and Rust are just not in the game, though Rust when it gets to 1.0 will have an opportunity.  Go now has street cred. The biggest angst is now about whether Google will pull their funding of the core team.

Perhaps like Haskell, D is doomed to be a language used by few, but having enormous influence on other languages that are used by many.

Rust has Cargo, just like D has Dub! Go has a complete idiomatic subframework based on "go get" and DVCSs such as Git, Mercurial and Bazaar. (Though the last of these is now sadly a dead project since Canonical removed its funding.)

Rust may not have got to 1.0 yet, but they have a superb framework for allowing people to upgrade to the latest nightly each morning (assuming you are happy downloading 160MB). This means people us it even though the language has regular breaking changes.

So D is battling against C++14, Go and Rust for market share, and to be honest is failing. This is partly because D is an old language that never caught on, but also because it has a lack of "new" marketing and a path to traction. Interminable discussion in these mailing lists achieves nothing. Trying to tell C and C++ folk they should change to D achieves nothing. Having a reputation for internal angst and a bad garbage collector achieves huge negative waves. A language 11 years old and still in the same "breaking change" situation as Rust, yet claiming to be production ready isn't helping. Conversely Dub helps the D cause, code.dlang.org helps the D cause.

What D needs though is some high profile people doing high profile projects to create a sense of newness. This is the lesson D needs to take from Go and Rust. Make use of hype rather than just complaining about it. Set situations up that can be hyped. Hype is after all just over-enthusiastic marketing.

So what is the D USP on which hype can be hung?

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

December 21, 2014
On Sun, 2014-12-21 at 09:30 +0000, Dicebot via Digitalmars-d wrote:
> […]
> 
> This is very definition of hype. Yes, Go is hugely overblown and it has nothing to do with any of its technical features. Only business value Go truly has is simplicity and even that doesn't matter in practice.

Sorry, but wrong and wrong. Go has a model of concurrency and parallelism that works very well and no other language has, so Go has technical merit. Go's simplicity is a huge selling point. C programmers failed to move to C++ exactly because C was simple and C++ wasn't. Go provides these followers of simplicity enough new stuff to move from the over-simple C. So basically Go has achieved what D has not.

> Please stop pretending technical features have any major impact on popularity.

Not entirely correct but it is certainly the case that a language pushed by a major player will win over an unmarketed one even if technical arguments might imply the opposite.

This is not just technical vs. marketing (aka hype), reality is a mix of both. No programming language gets traction purely on technical merit, but bad languages do not gain traction based purely on marketing.

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

December 21, 2014
On Sunday, 21 December 2014 at 10:33:09 UTC, Russel Winder via Digitalmars-d wrote:
>
> On Sun, 2014-12-21 at 09:30 +0000, Dicebot via Digitalmars-d wrote:
>> […]
>> 
>> This is very definition of hype. Yes, Go is hugely overblown and it has nothing to do with any of its technical features. Only business value Go truly has is simplicity and even that doesn't matter in practice.
>
> Sorry, but wrong and wrong. Go has a model of concurrency and
> parallelism that works very well and no other language has, so Go has
> technical merit. Go's simplicity is a huge selling point. C
> programmers failed to move to C++ exactly because C was simple and C++
> wasn't. Go provides these followers of simplicity enough new stuff to
> move from the over-simple C. So basically Go has achieved what D has
> not.

I was referring to "doesn't matter in practice for gaining popularity" not "doesn't matter in practice for development".

> No programming language gets traction purely on technical
> merit, but bad languages do not gain traction based purely on
> marketing.

This does not match my perspective at all. I see absolutely zero correlation between technical quality of programming languages and their resulting market success - it was always about good marketing, viral effect, catching the niche and so on.

Which is not surprising because most developers out there lack competence to effectively reason why advantages and disadvantages of given language for their projects and thus following the hype becomes only safe strategy.
December 21, 2014
On Sunday, 21 December 2014 at 10:26:45 UTC, Russel Winder via Digitalmars-d wrote:
> D was started as a better C++. Technically that may be true, but it
> has failed to gain traction in the market.  Most C++ people will move
> to C++14 rather than D. Most C people will move to Go rather than C++
> or D.

These two developments don't necessarily mean much for D.  C/C++ devs are not going to give up their big investments in their existing source and knowledge unless D presents some big wins, real world success like Sociomantic.  Until then, it's more likely that D's traction will come from the new and disaffected.  If they succeed, C/C++ devs will copy them and switch over, or their bosses will make them. ;)

> It doesn't matter that Go may have arrived on a wave of hype, the
> language appealed to some high profile people who did things with it
> and showed how much better it was than the alternatives. For these
> people the alternatives were C and C++. D and Rust are just not in the
> game, though Rust when it gets to 1.0 will have an opportunity.
>  Go
> now has street cred. The biggest angst is now about whether Google
> will pull their funding of the core team.
---snip---
> So D is battling against C++14, Go and Rust for market share, and to
> be honest is failing. This is partly because D is an old language that
> never caught on, but also because it has a lack of "new" marketing and
> a path to traction. Interminable discussion in these mailing lists
> achieves nothing. Trying to tell C and C++ folk they should change to D
> achieves nothing. Having a reputation for internal angst and a bad
> garbage collector achieves huge negative waves. A language 11 years
> old and still in the same "breaking change" situation as Rust, yet
> claiming to be production ready isn't helping. Conversely Dub helps
> the D cause, code.dlang.org helps the D cause.
>
> What D needs though is some high profile people doing high profile
> projects to create a sense of newness. This is the lesson D needs to
> take from Go and Rust. Make use of hype rather than just complaining
> about it. Set situations up that can be hyped. Hype is after all just
> over-enthusiastic marketing.

I don't think "high profile people" matter, but yes, D will only succeed if it can generate some successful killer apps, ie what you call "high profile projects," though I'd add the qualifier of actually making money not just getting big investment.

But in the meantime, what you label "interminable discussion" is often people trying to figure out how to make D better in the interim.  Anytime you're working with other people, you need to talk to them first before you go do stuff.  Perhaps many here talk too much and don't contribute much code, granted, but a lot of it is enthusiasts putting forth their ideas and opinions for everyone else to chew on, which can have real value.  Nothing wrong with "internal angst," as quality only comes from such criticism and reflection, though like anything else, it can be overdone.

Sure, actual software like dub often helps more, but that often starts with a discussion.

> So what is the D USP on which hype can be hung?

Native efficiency combined with expressiveness and ease of use, as the front page says.  That's too general-purpose to just go build some specialized app like docker, but in the long run may lead to much bigger wins.
December 21, 2014
On Sunday, 21 December 2014 at 11:18:43 UTC, Joakim wrote:
>
> Native efficiency combined with expressiveness and ease of use, as the front page says.  That's too general-purpose to just go build some specialized app like docker, but in the long run may lead to much bigger wins.

I think so too, D aims at a broader goal than most of the new languages out there.
I find the people in here quite grumpy these days. D is already a great usable and enjoyable language. I agree that some features should be removed and other extended for closure. But it's nothing that can't be achived in a few years.
December 21, 2014
On Sunday, 21 December 2014 at 11:33:05 UTC, matovitch wrote:
> On Sunday, 21 December 2014 at 11:18:43 UTC, Joakim wrote:
>>
>> Native efficiency combined with expressiveness and ease of use, as the front page says.  That's too general-purpose to just go build some specialized app like docker, but in the long run may lead to much bigger wins.
>
> I think so too, D aims at a broader goal than most of the new languages out there.
> I find the people in here quite grumpy these days. D is already a great usable and enjoyable language. I agree that some features should be removed and other extended for closure. But it's nothing that can't be achived in a few years.

Funnily enough, I had the same thoughts about grumpiness.  And it is not just the D forum, but this moment more generally, at least in the English-speaking world.  One of the ways I want to start using D is to do work on text analysis in order to better understand the influence of _affect_ on perception, economic fundamentals and market pricing.  I have not been able to find a better tool than D for this (only a bit more work to port the libraries).  Others are looking at this, but I think they start from a mechanistic idea that does not truly describe or lead to insights about mass human emotional dynamics.

For a concrete example of what I mean, it is in my view no coincidence that 2008 saw strife in the world of D (and, I gather, an explosion of bug reports) at the same time as gathering turmoil in financial markets.  The unfolding of a negative wave in affect, and its influence via the neuroeconomics phenomenon of misattribution of mood played a key part.

Back to D itself: comparing oneself with others may be destructive when the situation of others is different because one may learn a lesson that simply doesn't apply, even if at a pre-conscious level.  Andrei made this point some time ago.  And it is good that people argue if that means they have high standards and care about meeting them (see a recent book - something like the upside of your dark side), provided we use this energy to make things better, which, to this newcomer to D is what seems to be happening.

Social institutions ebb and flow.  And a language is a social institution.  The argument that because X has not gone anywhere means in the future it will not go anywhere is mistaken (whether or not the conclusion holds depends on other factors).  The right complemtentary factors as well as the right external conditions need to be in place before something reaches a point where it takes off publicly.  I don't think these conditions and factors were there before for D, and I wouldn't have bothered mentioning to people in finance.  But that is different now...

D isn't competing head on with any major language in its dominant use case, because that never favours the little guy.  Where any newcomer gets traction is at the fringes - see the Innovators Dilemma by Christensen.  It builds strength quietly in areas neglected by the dominant player, and uses the table scraps to create something of intrinsically great future power later in its development.  I am no expert, but I am a thoughtful user, and I think for example one sees a little complacency in the neglect by senior people in Python of the need for raw power given its all I/O or done by the C library back end.  Many projects like cython and pypy, but from what I have been able to see for my uses they are inferior to doing it all in D.

One should look at the notable relative success stories too - do more of what is working than necessarily be all things to all men.  Sociomantic, adroll, Facebook?  Seems like if D has an edge in these areas, its not a domain that is going to be shrinking in the next few years...
December 21, 2014
On Sunday, 21 December 2014 at 10:26:45 UTC, Russel Winder via Digitalmars-d wrote:
> to C++14 rather than D. Most C people will move to Go rather than C++ or D.

I would not use Go for anything I would consider C for atm, but I will move some stuff from Python to Go when it is supported on GAE…

D could find it's own niche in a competing cloud solution, like Amazon WS, if it was deliberately targeted and thus the most convenient language on the platform.

Being the most convinient language for a platform is the killer app par excellence, but you need to be stable, production ready and focused to do it, which requires planning!

> Perhaps like Haskell, D is doomed to be a language used by few, but
> having enormous influence on other languages that are used by many.

What language-features are unique to D?

> achieves nothing. Having a reputation for internal angst and a bad
> garbage collector achieves huge negative waves. A language 11 years
> old and still in the same "breaking change" situation as Rust, yet
> claiming to be production ready isn't helping.

I think you overestimate how well known D is among the average programmer. If being old is the problem, then all you need to do is clean up the syntax and call it D++. However, being old is not the real issue.

> projects to create a sense of newness. This is the lesson D needs to
> take from Go and Rust. Make use of hype rather than just complaining about it.

Go has had stable supported releases for many years and supports doing stuff that other languages either make hard or slow. So Go is acceptable for commercial uptake even though there are quite a lot of annoying deliberate minimalistic design flaws that would otherwise turn me off: like being forced to use capitalized symbol names, not being able to convert bools into ints, not having assert, etc. Go is not a great language, but the developers are doing the right things: Go is stable, supported, focus and the direction of Go is clearly communicated ahead of time.

December 21, 2014
I think you nailed the argument.

On Sunday, 21 December 2014 at 09:36:00 UTC, Dicebot wrote:
> On Saturday, 20 December 2014 at 19:11:53 UTC, Vic wrote:
>> Second smaller thing I 'elude' to but don't verbalize in that argument is my personal preference for a smaller language. Less is better/faster.
>
> I think this is the main reason why we have different perspective on necessity of change. Smaller language simply means that you need to put more complexity into actual applications and while D looks all cool at the first glance trying to get deeper (== implement BIG projects) inevitably makes you encounter fundamental design quirks that affect maintenance costs. Deadlnix has provided pretty good list of suck problematic points.
>
> While there is some value in splitting the spec into core language and extensions I don't believe it is wise for D to compete in simplicity domain.

Core and extensions/ plugins is a way to manage complexity and resources. I cite some 'random dude' http://www.codingninja.co.uk/best-programmers-quotes :
"Controlling complexity is the essence of computer programming."

I am a user of D, and I need something stable to lean on - if I don't know the bug is what I wrote or what the compiler wrote, it gets harder.

Further D does not have choice but to be excellent (via simplicity) - there is not enough paid maintainers. (Struts what I worked w/ before was written in 48 hours and had several million 'users/developers' using it). So the pain of limited resources forces excellence.

D does not have a choice but to make GC a DI/IOC - it will happen as the only choice, popular or not. People can be upset about the sacred cow or be confident of the outcome. I am in the second case.
Alternative is death and I am optimist the committers will be forced to trim down.

Vic