D is dead (was: Dicebot on leaving D: It is anarchy driven development in all its glory.)
Laeeth Isharc
laeeth at laeeth.com
Mon Sep 3 14:26:46 UTC 2018
On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:
> On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc
> wrote:
>
>>
>> That's why the people that adopt D will inordinately be
>> principals not agents in the beginning. They will either be
>> residual claimants on earnings or will have acquired the
>> authority to make decisions without persuading a committee
>> that makes decisions on the grounds of social factors.
>>
>> If D becomes another C++ ? C++ was ugly from the beginning
>> (in my personal subjective assessment) whereas D was designed
>> by people with good taste.
>>
>> That's why it appeals inordinately to people with good taste.
>>
> [snip]
>
> Be that as it may, however, you forget the fact that people
> "with good taste" who have (had) an intrinsic motivation to
> learn D are also very critical people who take no bs, else they
> wouldn't have ended up using D in the first place. Since
> they've already learned a lot of concepts etc. with D over the
> years, it's technically easy for them to move on to either an
> easier language or one that offers more or less the same
> features as D. So once they're no longer happy with the way
> things are, they can dive into a any language fast enough for
> the cost of transition to be low.
> One has to be practical too.
Yes! And being practical involves recognising different
objectives, starting points and considerations apply to different
situations and contexts.
> Programming involves more than just features and concepts.
> Good, out of the box system integration (e.g. Android, iOS) is
> important too and he who ignores this simple truth will have to
> pay a high price.
Important for whom? It depends a lot! Ask Sociomantic, Bastian,
Weka if the lack of Android or iOS integration is a big problem
for them, and I don't think you will get the answer that it is
important. For what I am doing, Android or iOS would be nice,
but it doesn't need to be out of the box, and you can do quite a
lot on Android already. I compiled ldc on my Huawei watch, which
I never expected to be possible though given it has 4 Gig of RAM
it's not that surprising. JNI is not that bad though could
certainly be made easier with a bit of work. And I haven't
tried, but I guess you could write the GUI stuff in Python or Lua
for a simple app and do the heavy lifting with D.
Of course for the ecosystem generally yes it matters.
> why developers of new languages are so keen on giving users a
> smooth experience when it comes to app development and cross
> compilation which leads me to the next point: IDEs.
D has never been about smooth experiences! That's a commercial
benefit if you think that hormesis brings benefits and you are
not looking for programmers of the trained-monkey, strap a few
APIs together type.
It's a question of developmental stages too. I was a late
developer as a person, but then I continued to develop into my
30s and perhaps 40s too. For human beings there are different
kinds of people and implicit life strategies and natural fits
with niches. Some are quick to grow up, but stop developing
sooner and others mature more slowly but this process may
continue long after others are done. I'm not saying a computer
language is like a human being, but it is in part an organic
phenomenon and social institutions develop according to their own
logic and rhythm in my experience of studying them.
D is a late developer, and I think that's because it is a
tremendously ambitious language. What use case is D intended to
target? Well it's not like that - it's a general purpose
programming language at a time when people have given up on that
idea and think that it simply must be that you pick one tool for
the job and couldn't possibly have a tool that does many
different kind of things reasonably well. So the kind of use
cases D is suited for depends much more on the capabilities and
virtues of the people using it than is the case for other
languages. (In truth in a negative sense that's true also of
other languages - Go was designed to be easy to learn and to use
for people who didn't have much programming experience).
> No. You don't need an IDE to develop in D
Indeed, and much less so than with some other languages because
you can understand the code that's out of focus more easily and
hold more of it in your head and reason about it. I personally
use Sublime and vim, but tools are very personal because problems
are different and people think differently and there's not much
upside in engaging in a holy war about tools.
> However, an IDE can a) make coding comfortable and b) boost
> your productivity.
Sure - in can do for some people in some cases.
> to a): maybe you just grow tired of the text editor & cli
> approach and you just want to click a few buttons to fix
> imports or correct typos and be done with it, and as to b): all
> this helps to boost your productivity, especially when you can
> easily set up an app or a web service with a few mouse clicks.
Sure. I would agree with what you write but say that it's a case
of capabilities and hormesis too sometime. Nassim Taleb told a
story about checking into a hotel and seeing a guy in a suit tip
the bellboy to carry his bags upstairs. Later on he saw the same
guy in a gym lifting weights (and I think on a Nautilus-type
machine which is much inferior to free weights). So any tool can
make you lazy, and yet any tool - no matter how shiny, polished,
and expensive - sometimes will break and then if you are afraid
of the command line or just very out of practice you can end up
utterly helpless. It's a matter of balance to be sure.
> In D, if you want to do something with ARM/Android you will
> invariably end up with a potpourri of build scripts and
> spaghetti lines full of compiler flags etc. Not smooth, it
> takes a lot of time to set it up manually and it's not easily
> maintainable.
I didn't find the experience last time I tried to be worse than
just going through the Android C/C++ native SDK instructions.
The first time I tried it was quite tough as I struggled to even
build the compiler as the instructions weren't quite right. I
disagree about it not being maintainable as it's much easier to
keep something you understand and can reason about working, but
it's harder to use in the beginning, for sure.
I think that the point for Android and ARM is not the build
process but integration with Java APIs. If you can't figure out
a build process that when I tried it mostly just worked and that
doesn't have too much dark magic, I fear for how easy you are
going to find JNI. (JNI is fine, but building a D project on
Android requires less demanding technical capabilities).
> Doable, yes, but just because something is doable doesn't mean
> it's recommendable nor that people will actually bother with
> doing it.
You had one or two people who stubbornly devoted considerable
parts of their lives to getting D to build on Android. And
instead of saying what a remarkable achievement, and thank you so
much for this work, and this is very cool but we really should
consider in a constructive manner how to make this easy to use,
you are saying I want more! Fair enough - it's a free society,
although I don't think you were ever promised that the Android
experience would be something different from what it is.
But I really am not surprised that people burn out doing open
source. It's very odd to see, because I came back to this world
after a long break. My first 'open source' contribution was to
part of Tom Jenning's work on FidoNet in 1989 - an improvement to
some node routing table, and in those days people used to be
pretty appreciative. Same thing with Chuck Forsberg who invented
ZModem and came to that same conference - people then didn't talk
about all the deficiencies but they understood this was a labour
of love and the kind of attitude one sees so commonly today I
couldn't have imagined.
> I'm under the impression that the D Foundation doesn't pay much
> attention to these things once they are kind of "doable" and
> somebody has volunteered to "look into it" with no guarantee
> whatsoever if and when it will be available to users.
Dude - it's open-source and a community-developed language with
some - and increasing - commercial support. I'm not saying that
the things you ask for might not be valuable things. But I'm
curious to know from a rational means-ends perspective how you
think your chosen means will be helpful in achieving your desired
ends. Do you think that complaining without taking the smallest
step towards making things a reality (if you have done so, then I
apologise - but your message would have been more effective had
you articulated what those steps were) will change things?
> And if there are complaints, hey, it is not "official" ask the
> guy who's looking into it. Not very professional.
Gesellschaft and gemeinschaft, and open-source is something new.
One can pick only from the options available and those one can
imaginatively create. Suppose we made you dictator of D, but
subject to the same constraints that currently exist. What steps
would you take to achieve the ends you desire?
> See, that doesn't really give you confidence in D and it gives
> you an uneasy feeling. Nothing worse in software development
> than to be programming thinking "Am I actually wasting my time
> here?", and of course, you become reluctant to start anything
> new in D - which is only natural.
Don't use D if you don't want to. Almost certainly it's not
suitable for everyone. But the opposite of love is indifference.
Somehow you still choose to spend your time here for now. And
since that's the case, I strongly encourage you to think about
what little baby steps in concrete ways you can take to be the
change you wish to become.
I just spoke with Dicebot about work stuff. He incidentally
mentioned what I said before based on my impressions. The people
doing work with a language have better things to do than spend a
lot of time on forums. And I think in open source you earn the
right to be listened to by doing work of some kind. He said
(which I knew already) it was an old post he didn't put up in the
end - somebody discovered it in his repo. He is working fulltime
as a consultant with me for Symmetry and is writing D as part of
that role. I don't think that indicates he didn't mean his
criticisms, and maybe one could learn from those. But a whole
thread triggered by this is quite entertaining.
More information about the Digitalmars-d
mailing list