On Tuesday, 30 January 2018 at 09:20:37 UTC, aberba wrote:
On Sunday, 28 January 2018 at 18:54:34 UTC, Laeeth Isharc wrote:
On Sunday, 28 January 2018 at 13:50:03 UTC, Michael wrote:
I do worry that, having been using D for about 3 1/2 years
now, that the perceptions of D outside of this community
don't seem to be changing much. It does seem to make a huge
difference to have a big company behind a language, purely
for the "free advertisement". Most people at my university,
outside of the computer science department, that are using
languages like Python and R and MATLAB the most, are very
aware of Rust and Go, but not D. I wonder if we do need to
pay more attention to attracting new users just to get people
talking about it.
That's what you would expect, because D is a very ambitious
language, which means its natural user base is much more
spread out and less highly concentrated. And beyond that,
most code is enterprise code that's closed source, and whilst
the web guys talk a lot and influence the culture, enterprise
guys talk much less and just do their thing quietly. Even in
our world, how often do you see the people using D get
involved in forum discussions? Sociomantic, Weka, Ebay, and
so on. (Or Microsoft - did you know that D was used in their
COM team? They didn't exactly send out a press release...) A
little bit, but only a little in relation to their use of the
language. If you're trying to accomplish something in a
representative enterprise context with lean resources, you
don't have much time to talk about what you are doing.
That's one big potential mistake. Enterprises care about making
money with whatever will help them do that (impress investors).
Its developers who care about languages that help them write
code that suites their requirements. The focus should be on
developers not companies. People using D cannot be represented
by Microsoft,
Sociomantic, Weka, etc. employees. Its of no use chasing
after companies... make it useful and everyone else will come.
Who said anything about chasing after companies? There's not much
chasing after anyone, companies or developers. One reason the
quality of people here is so high. We have a filter that
fortuitously selects for people with good taste and who don't
care about superficial things as much. Learning costs and
discomfort are amortised, and from an expected value perspective
are trivial from a long run perspective. And I suggest it's
almost a negative cost because one is forced to learn things that
are good to learn. I speak very personally when I say this,
because the value to me of what I have learnt is beyond
calculation, and let's say that it is a very big number by the
standards of the industry.
And I don't accept the distinction between developers and
companies particularly for small and medium sized companies.
Liran at Weka, I'd call him a pretty serious developer, no? But
he is also a co-founder and leader of his company. The
Sociomantic guys - that goes without saying. Bastiaan same
story. I don't know what role the technical leadership of
Funkwerk play in running the company, but that was I think a
decision adopted at a senior level - they have been using D for a
decade and their product is everywhere. The train you took
doesn't say timetable powered by D, but maybe in some years it
will, haha. An interesting looking stock chart by the way. EMSI
- founder developers adopted D. Personally I'm in charge of tech
for a 95 person company and involved in other areas of management
beyond tech and I'm also a developer.
Every language is based on different principles. The way D will
be adopted is via people who are principals giving it a try
because it solves their problems. There is no point trying to
spend much time appealing to those in management who can't make
decisions themselves and need to consider social factors because
we have a much better product than we do marketing. That's okay,
the social appeal will come later and in truth when it does it
will be a mixed blessing because the quality of the community
will change.
If you want to draw people to the language (and, honestly, I
wonder why it matters so much to many here
Its a simple math well understood since long ago. The larger
the army/workforce the better. Things get done. Walter always
say here "Its left with someone to do the work". There other
stuff he doesn't address including those outside language
internals.
Sure, but you are I think mistaking ends for means. Things
develop at their own pace and I don't think can be forced. I've
noticed that changes tend to happen when they are good and ready
and not when we wish they would. So in that context it makes
sense to focus on what you can control and influence and not on
what one wishes might be the case. If wishes were horses beggars
would ride. But they don't...
So that doesn't mean that one shouldn't work on guerilla
marketing if that's what one wishes to do. But expecting Walter
or Andrei to come up with a grand plan when there isn't the basis
for it yet doesn't advance things much.
What one can do is take action, and the smallest actions can have
very powerful effects because they inspire others.
Seb Wilzbach has been a master of this. Taking just one small
example : nobody told him to do anything. But he thought D
should have runnable examples. He wrote code to transform unit
tests into examples and made them runnable. (Maybe others were
involved, I didn't follow). And I think that small action has
had more impact on the prospects for D than all the talk without
action that others have spent time on since he became involved in
the community.
- it's clearly
taking hold, has momentum and will continue to grow for
decades; an acorn will become an oak tree, and fretting about
how much it's grown in the past year might be missing the
point, so long as it's healthy enough), why not just focus on
both improving the language itself (pull requests,
documentation)
Someone needs to do that and we're short of people willing,
have the time and able to do that.
Human creativity is unlimited. We will always be short of
resources. However scarcity is also the mother of invention. The
time spent wishing for improvements could also be spent reviewing
or writing pull requests blog posts, documentation improvements
etc. (I know you have written some blog posts).
Either someone is paid to care enough to do that (Like Google
do with Go, Oracle with Java, Jetbrains with Kotlin, etc.) OR
grow a community/workforce to collectively make that happen.
Compare the documentation today with early 2014. And the books
available. It's massively improved and in outright terms not bad.
What I'm suggesting is that things will continue to get better
with the passage of time. Also because external conditions keep
moving in directions favourable to D. The calculus of the pace
of data set sizes to cpu and especially RAM performance is
inexorable. And BTW Spectre and Meltdown, they aren't at the
margin going to get CPU manufacturers to say you know we really
need to accelerate performance from here - on the contrary, there
might need to be a change in focus, and everything is a tradeoff.
When conditions shift the people that adopt strategies adapted to
new conditions mysteriously seem to start doing well. And people
copy what's working. So another factor is that people who start
using D, it often seems to be quite good for their careers. From
the people I have known anyway over the course of a few years.
and on accomplishing something useful and worth doing with it?
There's also a possibility the acorn will loose interest and
momentum and... die. Your opinion on what is worth doing is
based on your domain or interest.
Life is risk, and anything is possible. Maybe we shall be
obliterated by a stray asteroid. Both scenarios are possible,
but I don't think so. Things are growing, and external
conditions are favourable. What I do involves recognising
patterns in social things (like language communities), and I've
seen this before. D is going to keep growing, and to my eyes is
already flourishing. Expect plenty of setbacks along the way, for
that is life, but it's the setbacks that build strength.
Of course there are the usual trolls who don't seem to write
much D, but seem to be drawn like vampires to the energy of
those who do. Sad.
Someone who doesn't write D or have no stake in it's well-being
will not waste a second in this forum.
People are strange creatures,some more than others.
don't seem
You don't know for sure. Remember we don't all use D the same
way.
On Sunday, 28 January 2018 at 17:23:12 UTC, Paulo Pinto wrote:
This has been mentioned multiple times, D really needs some
kind of killer application.
Why?
It's a generalist language for getting stuff done in an age
where people have succumbed so much to Stockholm Syndrome that
they think it's a positive thing in a language that you can
only use it to do something special. Yet trends in
performance and performance demands point to the rising
importance of efficiency (and I suspect there will be a return
to the recognition of the importance of being a generalist -
in programming, as in other fields). There was a tweet by the
author of Musl libc observing that software today runs slower
than software twenty years ago, and linking the bloat to the
insane pressure to maximise CPU performance over all else.
The era of that kind of ruthless optimization is over because
it's not the only thing that matters, and we start to see the
price of it. And generalism - in a dynamic business
environment, there's considerable value to have capabilities
that aren't adapted to particular narrow skills when what you
need is always changing and may be unknown even to you.
My generation was privileged because very quickly if you
wanted to get anything interesting done you had to learn
assembly language (maybe write your own assembler or
disassembler), had to learn a bit about hardware, and could
never pretend the CPU was this perfect platonic abstraction.
And for a while that changed, but I think the past is
returning again, as it often does.
So I see a value in hiring hacker / generalist types who can
figure things out. For example:
https://hackaday.com/2017/01/26/a-personal-fight-against-the-modern-laptop/
https://www.youtube.com/watch?v=Fzmm87oVQ6c
Back in 2007, most finance types would have said how
completely impracticable and unreasonable. But I say, with GK
Chesterton, that "all progress depends on the unreasonable
man". And someone like that doesn't succumb to helplessness
once they are outside of their shiny IDE, knows that in the
end everything is just code, and you can change it if you want
to, and there is strategic value from building organisational
capabilities from hiring such people. Usually I'm a couple of
years ahead, and I think others will follow. If you hold a
contrarian point of view, you know you're right when surprises
start coming in your direction, and people still can't see it.
And I think that's been the case since 2014.
Anyway - so D is a general purpose language, and I think we
are likely seeing a nascent return in recognizing the value of
generalist tools and people.
On my line of work having Go on the skills list is slowly
becoming a requirement, due to Docker and Kubernetes adoption
on cloud infrastructures.
That's great. Walter says that good code should look good on
the page, and Go code looks nice enough. It's got nice
network and infra libraries, as you say. But why would the
adoption of Go be bad for D? I think it's great for D because
after a period of stagnation it gets people open to newer
languages, and on the other hand the gap between the spirit of
Go and D isn't that far (GC, clean code, native target) even
if they don't have generics.
It's a big world - both D and Go can succeed, and the success
of one isn't bought at the cost of the other.
Just wondering if mir or easier GPGPU programming could be
that killer application.
We sponsor mir algorithm (some of the routines within were
developed for us, and we were happy to open source them), and
we are rewriting our core analytics - used across the firm in
a $4.1bn hedge fund in D from C++ before that. What
alternative really exists for what we are doing there? And
C++ vs D, it's not even a fair fight if you care about
productivity, plasticity of the code, and generating wrappers
for other languages that you can still understand whilst
maintaining decent performance. At the same time, we're not a
D shop - a diversity of languages is not a bad thing, provided
you have some way for them to work together. Code reuse is
very difficult, but the UNIX way does work. On the other
hand, if you want to connect components, how are you to do
that? Well, D is pretty nice for writing DSLs that can
connect to code written in other languages, and where
expressions can be evaluated from other languages.
A specialist language adapted to a particular domain or set of
domains - yes, that benefits from a killer app. But for a
generalist language that's useful for getting stuff done - why
would there be a single killer app? That doesn't make sense
to me. There should be multiple successes across different
domains, and that's what we are beginning to see. Just bear
in mind that the web and tech guys talk a lot, but most
programmers don't work in those industries. It would be a
mistake to conflate salience with economic importance, I think.
Laeeth.