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