Go 1.9

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Sat Jun 24 10:43:36 PDT 2017


On Saturday, 24 June 2017 at 11:18:10 UTC, Ecstatic Coder wrote:
> On Saturday, 24 June 2017 at 10:34:07 UTC, Ola Fosheim Grøstad 
> wrote:
>> On Saturday, 24 June 2017 at 09:35:56 UTC, Ecstatic Coder 
>> wrote:
>>>>> I'm assuming that D is for general purpose programming as 
>>>>> well.
>>>>
>>>> That seems to be where it is heading.  I don't think D 
>>>> stands a chance in that domain, but we'll see.
>>>
>>> With all due respect, on the contrary I think that promoting 
>>> D as a general purpose programming language could be its only 
>>> chance to really improve its popularity, and thus 
>>> significantly grow its current user base.

I know that in certain other sectors, people have high 
expectations of growth, but I really am at a loss to know what it 
is that people might expect significant growth to be when we 
already have some pretty impressive developments in the numbers 
that we do have.

http://erdani.com/d/downloads.daily.png

Daily unique dmd downloads in Jan 2013 were 150-200 much of the 
time.  This year they have been between 1200 and 1700.  What kind 
of growth would it take for you to be satisfied - I am curious?  
Bearing in mind that the availability of all three compilers via 
distributions has been improving over time.

And it seems to be unlikely to be a mere artefact of some sort 
because it lines up with what one observes in the forums, in what 
one hears about dconf lately versus prior years (I only went to 
the past couple) and more importantly in development activity - 
commercial and organic.

Weka.io hadn't even heard of D about three years ago and now they 
have one of the largest D projects there is.  3.5 years ago me 
neither - and soon I will be paying for about 4.5 full time 
equivalent people to work on D (maybe a bit more than that in 
time).  This little web company called eBay seems to be using it  
- never heard of them before, but they seem pretty smart.  Remedy 
Games released Quantum Leap, which I guess sold millions of 
copies - it used D for scripting and they will be using D much 
more throughout the firm shortly.  It's used by a $20+bn hedge 
fund for their trading systems, and will gain greater adoption 
within a $3.5bn hedge fund quite soon.

https://dlang.org/orgs-using-d.html

And somebody else remarked to me: "just look at code.dlang.org 
these days - some interesting libraries and I don't know even 
half the names that wrote them".

D doesn't need to persuade most C++ users to switch over to 
succeed.  It doesn't need to persuade anyone you know to succeed. 
  It's at a stage where it's easy to keep growing without anything 
particularly dramatic happening.  All it needs to do is appeal 
just that little bit more to people who are already minded to use 
D, or for whom people who are in pain and looking for an answer 
(which D might be in part) to find out about the language - as 
happened recently with Weka.  And if I compare the documentation, 
libraries, and general quality of things today compared to 2014 
when I started looking at the language, it's improving much 
faster than just a little bit every year.  One doesn't notice 
such change necessarily quickly.


> I agree, but it will be hard for D to beat C++, because people 
> who *need* to use C++ as a "systems programming language" won't 
> use D for the same reasons they don't use C#, Java or Go.

Finance is still one of the larger spenders as an industry.  C++ 
is used quite broadly within it for analytics.  Not because 
people want a system language and need to use malloc and free and 
freely drop down to assembly, but because there isn't an adequate 
alternative that's widely known about for now.  In 3-5 years 
time, I think number of users in finance of D will be higher, 
because it's the solution to pain.  Also, people tend to have 
end-users working in many different languages.  Writing separate 
clients for each one isn't ideal, and wrapping automatically 
makes much more sense.  SWIG works, after a fashion, but D offers 
some more pleasant and more maintainable alternatives.  R is done 
(thanks bachmeier); Python is done (PyD); Excel is done (me, 
Stefan + Atila); C/C++ is easy enough; C# will be done shortly, 
and I have already done some work on Java.  If you say that 
finance guys will never consider adopting D, I beg to differ 
because I think I know that world quite well.  And that's just a 
world I am familiar with, and there are plenty of others.

The web guys get the attention because they are doing interesting 
things, have particular challenges, and can afford to talk - 
because their edge doesn't mostly come from code, which is why 
they open-source so much of it.  It's a mistake to think that the 
people who talk are a good representation of the total number of 
lines of code that are written each year, let alone the total 
code that exists.  Visual Basic for Applications (Excel) 
programmers for example do not tend to get much attention - yet 
there's still a lot of code in VBA, a lot of new code being 
written each year.  And it's not an ideal language.  Spreadsheets 
themselves are a kind of functional code too.  And there are many 
other languages used from which D can pick up market share 
without anyone noticing.

Extended Pascal doesn't come up much.  But there's a 500k SLOC 
codebase used to design great big ships and I was speaking to a 
chap who spoke at dconf (Bastiaat) about his work on and use of 
Pegged, and there's a decent chance that will be ported to D.  
It's D or Ada - I never hear anyone talk about D vs Pascal and D 
vs Ada.  But that would be a big and important project over time.

The truth of it as I see it is that the opinions of most 
technical people are first order irrelevant for the adoption of 
D, because even if they were fanatics about its adoption they 
simply are not in a position to make decisions.  So the people 
that matter are those who can make decisions, and of those it is 
principals that matter and not agents - people who have the 
authority to decide without having to consider primarily social 
factors, and not managers who are primarily responsible to other 
people and have to not just make the right decision, but justify 
it.  And in fact that's my understanding of how D was frequently  
adopted in the firms where it is used.  Liran at Weka didn't do a 
bureaucratic study of the alternatives to justify his case to the 
board.  He knew his problem domain, and what was important, and 
when he heard about D from Kent Beck he recognised a solution, 
and he had earned the authority to decide because of his past 
accomplishments and it's difficult building a startup, but I 
doubt having to justify his language choices is one of the main 
things he worries about in life.  The Sociomantic founders didn't 
have to persuade anyone in the beginning, and I guess when they 
got bought Dunhumby didn't make their language choices a sticking 
point but were probably more happy to have found such talented 
people - if the purchase price is anything to go by.

When you have a small market share - and D's is not tiny, but 
it's not a top 10 language either, you don't need to achieve mass 
conversion to keep growing.  Just appeal to a slightly broader 
set of people, or have a higher appeal to those that already are 
sympathetic to the language - that's not something difficult to 
achieve once the ball is rolling.

These ideas are all fairly standard.  I don't completely agree 
with it, but Geoffrey Moore's Crossing the Chasm books etc get 
the idea across well.  And the idea is actually much older - it 
dates back to Toynbee's idea of creative minorities (new things 
come from the fringes), to the ideas about Ibn Khaldun (the 
founder of economics, one might say) about civilisational 
renewal, and the same insight is in Ecclesiastes in the Bible (if 
you think it through carefully).

> Just its GC keeps many C++ developers away from it, whether is 
> justified or not, despite D is as low level and performant.

Yes - but read the Reddit comments this year.  There's a subtle 
change in tone that's quite important.  Over the years people 
have developed a standard set of excuses not to explore the 
language - as Andrei observes, people develop these as a defence 
in the face of a rapid rate of change.  If one looked into 
everything, there'd be no time to do any work at all.

These standard sales objections are receding because they simply 
don't hold water at all, or not nearly so.  There are no jobs in 
D - well, if you are good I'm always open to working with the 
right sort of people; and I was at DConf on a large table of 
people all working for a living with D, and it was a funny line 
because there are jobs in D, and for some people it's been pretty 
good career-wise.  The blog posts on the GC have been very good 
at getting people to think more carefully about this blanket 
dismissal too.  (And I guess when we have ref-counted exceptions 
and much more of Phobos is truly no-gc that will help too).  By 
the way, the fact that people are committing their energy to work 
on blog posts and so on tells you something about the increasing 
commitment of energy from the community.

There's a C++ guy I work with now, and I was wondering what his 
response might be to suggesting we consider using D in the part 
of the business he is involved in.  He wasn't particularly 
concerned about the GC, but I showed him that it didn't matter 
for what we do, and that in any case you can avoid using it for 
much and keep the heap small.  That wasn't the obstacle.  Main 
thing is just needing to change our build process, which isn't 
hard but will take a little bit of time.  He didn't need 
persuading - he could just recognise it as leading to more 
readable, more componentised code and it  also - with a bit more 
investment upfront - solves our wrapping problem.

People have very different contexts, and it's worth bearing that 
in mind when one reads forum comments too.  Somebody who earns a 
living teaching people popular languages but has invested lots of 
time in D and hasn't found it paid off commercially - yes, of 
course that will shape their attitude towards D from here.  But 
that hasn't got to do much with the prospects for the further 
development of the language, which isn't to say one can't learn 
from them about what to improve.  Another guy who loves talking 
about languages in a very theoretical way - but there's some 
debate about whether he has written anything serious in D at all. 
  Well everyone is welcome to an opinion, but probably some 
perspectives may be a better guide to the likelihood of broader 
adoption than others.  Walter himself -
  a man who not just survived but flourished in a very competitive 
field operating as a leanly-staffed underdog - has remarked that 
in his experience non-customers would tell you all kinds of 
things, but when you satisfied what they wanted it never actually 
lead to a change.  What works is paying attention to people who 
are already customers, or at least using your product in some way 
seriously.

And enterprise users generally don't have time to post much in 
forums because they have work to do - how often do you see people 
from Weka and Sociomantic post here in relation to the number of 
people they have?

The above about listening to your real users could be seen as 
self-serving, but I don't mean it in that way - I find the 
leadership perfectly responsive as a commercial user (and I don't 
really need much).  Rather it's just to observe there's a lot of 
"what D really needs is this", but I'm not sure these 
perspectives are always a good guide to what will help.

Wulfklaue:
"Agrees with that. The problem with a language trying to scope 
away a specific group of developers, from a existing ecosystem is 
that your fighting the entire ecosystem, not just the language. 
That is a mistake that many new languages make."

Nobody in their right minds would try to target an 
abstractly-defined category of developers.  The world doesn't 
work that way, and it's not what anyone is doing.  People are 
drawn to things that offer them something better, and what's 
better very much depends in the situation you are in, and what 
your constraints are - and situations that might appear identical 
from the outside really aren't from the inside because these 
things are shaped by culture, history, perceptions and emotional 
factors within the group, not to mention different basic 
conditions (industry and firm challenges, the kinds of people you 
have already), and so on.

"Maybe this was mentioned before but a lot of programmers prefer 
to lazy program. They want to write there code, move forward with 
there project and not spend time on trying to get "things" to 
import/convert/work. D has more people who have no issue doing 
things the "hard" way. I applaud that resolve, i really do. But 
at the same time its a barrier, a attitude that makes it hard to 
accept those lazy people like me :)"

I don't know if D is a language for everybody.  I agree that D 
has people who don't mind a bit of discomfort and doing things 
the hard way.  I wouldn't be here if it were any different.  I 
agree that it's a barrier, but complex living things can't grow 
without a barrier, membrane or border.  I live in Barnes, and 
it's in London, only 40 minutes to Mayfair, but like a little 
English village.  And the reason for that is there is no tube and 
it's a bit difficult to get here.  If there were a tube station 
its character would be very different.  And that's true of all 
social groups - if there is no price to be paid for admission, 
implicit or not, then the group won't develop a character of its 
own.  So I see the features of D that concern you as a positive - 
it's a nice filter to be able to find the people that I would 
like to work with.  My industry is a tough and demanding industry 
and the people who do best in it are those who are resourceful 
and able to figure things out for themselves when needed.  It's 
not difficult to find excellent D programmers - one has to go 
through many more candidates to find excellent C# programmers 
that are aware of developments beyond the MS micro-culture.

A chap called Nassim Taleb talks about some of these ideas in his 
work on hormesis and antifragility.  The D community creates 
hormesis and this is a healthy filter.  And not being as 
dependent on pretty labour-saving tools (and not needing them) 
has some positive effects too.  Taleb talks about seeing a 
businessman in the lobby, giving his bags to a porter to take up 
to his room.  Twenty minutes later he sees him in the gym lifting 
weights.  And his point is that taking advantage of natural 
organic challenges to build fitness can build much more strength 
than synthetic approaches to try to replace what we have lost.  
I've personally benefited from having to figure many more things 
out for myself than I would have needed to had I stuck with 
Python or learnt C#.  The extra time invested wasn't significant 
compared to the payoff even so far, but building a capability is 
a gift that keeps on giving.

I wanted to contribute a small token amount to BountySource as I 
thought I should.  You mention crystal at $2.3k/month.  Well I've 
contributed much more than that personally per month on average 
in the time I have been involved in the community for things that 
I have open-sourced.  Not the same thing as bounties, but for 
example the work we did on dub came out of my own pocket.  And 
I'm sure Weka's investment to date dwarfs my modest contribution, 
and we have all benefited from it.  In other words this language 
community works differently - I think commercial users would 
often rather approach someone directly than post a bounty.

And as Adam says, the kind of people that work on D aren't 
necessarily motivated by money to do such work.  Studies suggest 
that when you pay someone to do something it often takes the joy 
out of it by turning motivation from autotelic to instrumental.  
So it's not clear that it's even healthy for the community.  
Pragmatically, maybe it's one solution to get people to work on 
tedious but important things - but I really wouldn't consider it 
likely to be the main driver of developments for a community such 
as the one we have.

It's happened to me by the way that I've asked somebody who 
contributes a lot to the community if he would be interested in 
helping me for a fee, and he really wasn't.  And that's sometimes 
because people are very good programmers, and for some that can 
lead to pretty good career or business success and they 
contribute to D because they like it.  It's a fortunate position 
for such a community to have such people working on the language 
or ecosystem that couldn't be paid by a company to do the same 
because their price is too high - provided any one person isn't 
ultra critical.

"The whole D foundation is nice and well but to me it feels like 
cloak and daggers. It something hiding in the background, 
something obscure. Maybe i am not expressing myself good again 
but D its fund raising seems to be largely corporate focused but 
they seem to lose a big market potential. Corporate funding is 
harder to get then a lot of small donations."

Give it a chance - it's barely got off the ground yet.  Best way 
to get a foundation to listen to you is to give them a little bit 
of money if you can afford it, or do something helpful for them 
if you have time and some talent but not money to spare.  I think 
corporate funding is easier to get than lots of small donations, 
because not all corporates are vast enterprises - it's by far 
easier to persuade entrepreneurial people who want to support 
something anyway then a legion of smaller supporters.  
Nonetheless the language needs both.  Do you contribute yet?

" Syntax is more about preference."

If you look at the reactions of people around the world, beauty 
isn't something utterly idiosyncratically subjective - tastes 
vary, but less than some would say.  And tastes may differ about 
language design (some might say part of that is that some people 
have better taste than others, but let's not discuss that for 
now) too.  But in my experience idiomatic D code is very readable 
and clear, and if you compare it say to Boost or quite a lot of 
Python code that isn't always the case.  And readability and 
clarity and ability to express intent matter a lot because code 
is read much more than it is written and code lives a long time.  
So it's not simply a question of preference - it's much more 
important than that.

"Electronic wire transfer or bank check *bwahaaha*. What are we: 
1980? Even worse, "Wire transfer information will be announced 
soon.". How long as that text been there??? Does the D team even 
look at there own website???"

I paid via PayPal.  It was easy.  If you have a suggestion for 
improving, I am sure people would welcome a pull request.  If 
you're not willing to do the work, then that's quite reasonable, 
but it's less reasonable to insist on others doing it...

"I was under the impression that D with a bountysource account 
was going to be able to raise monthly funds on a higher level 
then Crystal and Nim. I really do not know what to say. No wonder 
when most new people do not even know its exists and the lack of 
acknowledgment on the website only reinforces this."

$24k a year is a completely trivial amount that means nothing in 
the scheme of things, and it's a mistake to be distracted by such 
noise.

"There is no focus on raising funds."
Raising more substantial amounts of money works very differently 
from raising the sorts of sums you discuss.  It makes sense given 
where D starts, the people involved, and the fact that it's quite 
a lean team, to start with more substantial amounts because the 
return on time and attention is much higher (and it's working in 
a domain that's easier to understand).

"Its easy to see why Nim and Crystal out fund D on bountysource."

If you have commercial users who have been using your language at 
a reasonable scale in production (Weka manage 100s of Petabytes 
using D, I think, and most people know the scale of Sociomantic's 
use too) then your approach is going to be different from 
languages that are newer and with less commercial adoption.  Your 
strategy depends on where you are, but that's something that may 
not be obvious to a newcomer or someone who hasn't had to think 
about how to raise money.

https://news.ycombinator.com/item?id=14431315
Xored, and who else?
https://dlang.org/orgs-using-d.html
There are others not listed here even




Of course it's always interesting to hear ideas for improvement.



Laeeth







More information about the Digitalmars-d mailing list