April 14, 2019
On Sunday, 14 April 2019 at 12:34:12 UTC, Chris wrote:
> On Sunday, 14 April 2019 at 09:42:01 UTC, Laeeth Isharc wrote:
> [...]
>
>> Yes - the tolerance for experimentation is an important question.
>>  In firms where there isn't much of a tolerance for experimenting and for some of those experiments to fail then it's probably not the right environment to use D.  But I think the more interesting places to work are quite different.
>
> That's all good and well and I sincerely congratulate you on your success. But what I see is the following divide: those who say that D works for their business usually use it for very specific purposes with a custom made ecosystem they've built up over the years (as I did too) maybe bound to a particular version of dmd or D1, and it's often for in-house purposes, e.g. analyzing the stock market or optimizing internet ads or machine learning. D is of course a good tool for that kinda stuff (as is Lisp or Scala). But once you have to step out of your biotope things get hairy. Once customers depend on your software directly (as in: installing it directly on a machine, interfacing with it via plug ins or accessing an API on your web server), you're out in the wild with D as far as tooling and stability (breaking changes) are concerned. In other words, D is good for fenced off software that is built for very specific purposes. When it comes to "general purpose", however, it's a different story all together. This is what I'm trying to convey.
>
> D was a personal success for you, good, but I'm sure in a few years people will tell similar stories about Crystal, Nim and whatnot. When you started using D it had the edge over other languages in some respects, but other languages have caught up and offer ease of use on top of that. This is what doesn't register with the D community. Some users live happily in their respective self-made D biotopes, while others want more, a broader focus (and they mean well as they want D to be suceessful in the world not just in niches). These are the two factions, and it's the biotope faction that dominates the Foundation and the forum, indeed the "biotopeism" in the community is so far advanced that people have stared to fork D, the ultimate stage of "Ok, I'll do my own thing.", which is of course only a logical consequence of the insular mentality that permeates D culture. You encourage people to do it themselves, they will finally fork.
>

I agree with this. This is one of the major issues with the general type of personality of those in the D community.[which are going to have certain traits]

They fail to see the bigger picture. Most people are not like D users. Also most D users do not program long the same patterns. Basically D users are outliers but they believe they are representatives of the whole. This is only bad because it is myopic and advances D in a certain direction while limiting it in others. They can't understand the limitations because for them they are not limitations. They cannot see the big picture, the forest but they have no clue they can't and they think they do. This is problem of all humans, it's very difficult to get people that don't get it to get it unfortunately... maybe that is a good thing though ultimately.

Basically many cults are formed because of this. A cult starts off with a group of people with a central concept that they all agree on and work for. They attract others who have that similar principle.

there are only two things that happen:

1. Some people that connect to the group eventually leave because it isn't what they "thought". That is, their principle does not mesh and they are not willing change their principle and leave.

2. Some people that connect have exactly the same principle and so become part of the organization(these usually are the die hard fans)

3. Some people that connect have no real principle and latch on for various reasons but eventually either leave because it isn't what they want or stay for various reasons(acceptance, brainwashing, etc).

The outcome though is always the same, the "cult" forms. It consists of people accept the fundamental principles(which may change over time but at any point in time is reinforced as the principle which is generally accepted).

What happens though is that it becomes a positive feedback cycle. The principles are reinforced to the lower level people who then reinforce it back. If dissension(which is almost always valid) comes in to play, the dissenters are usually pushed out and this then reinforces the mentalities which become concentrated.

It's basically a sort of chemical reaction that occurs. There are so many cults. Basically all large organizations are cults. Some cults are just evil, but not all. But all cults usually end up very myopic. Religion works this way, corporations work this way, government works this way, even colleges work this way.




> As there is no way the two factions can communicate with each other, there is only one logical consequence. The faction with the broader focus (like myself) wanders off and what remains are the die hard users who are happy in their biotope, so D will remain a niche language and, of course, there's the danger that some people will break off, fork D and add to the general chaos (and you may read questions like this on Stackoverflow: "Which D should I use? There are N implementations. Dragon, Volt, BetterD, CleanD, SaneD...").


Yep, this is the problem with cults. You get it in your way of thinking. Just realize it is a natural tendency of the universe... if we were talking about religion we'd have Baptists, protestants, catholics, buddhists, etc... It it were governments we have communists, democracies, monarchies, dictatorships, etc...

It's not that humans do this, it is part of life to fracture like this. We see it in evolution. Species fracture in to sub-species. Materials fracture(like attracts like)

It's an unfortunate consequence of existence I believe. The problem is that most people don't understand these things at work. There is always some insane justification: e.g., "He's a moron that he thinks this verse means this, we need to push him out because he isn't aligned with our belief and I think he's must be a sinner! I think I hear him talking about sacrificing sheep, we can't have that! We are allowed only to sacrifice cows!".

Almost always the fracturing is based in ignorance. The reason is that the truth does not fracture, it is what it is.

See, both you and I are probably completely different, have come to similar conclusions, ideas... but even our ideas are different... because we are different. I'm sure we can understand our differences, but even if we formed some organization eventually our misunderstands(or ignorance) will cause fractures between us... although maybe we could deal with it better. My point is that these issues are much deeper than any singular individuals. I also believe that the better one understands it the better one can adapt and use it for positive things(I do think there is a "direction" to the universe, fracturing might be a way to isolate the bad things and get rid of them, survival of the fittest type of thing at play).

Unfortunately people who are deepest in the cult are the hardest to change. It's easy to leave something when you are on the fringes.  The seed crystals(What we are talking about is a sort of crystallization process that takes place in all things) are the generators that the molecules attach too and grow off of.  The seeds end up surrounded and "supported" by all the other similar molecules. The outside has to dissolve before the seed does(since it's generally a uniform crystallization). I don't know if this is true, but there is evidence things work this way... and if it is true, it means that we will never get anywhere with our logic. No matter what kinda of works we use, it will essentially be worthless.

That is, we can't convince the leadership here that there is another way(rather, that there is a broader way) because the universe isn't going to let that happen. At most if we wanted things to change it would have to be from the outside in, but hoping for an inside out change is trying to move a mountain with a spoon... it can be done, and sometimes it is done, but I'm not going to do it and I doubt you will want to try to do it either.

My main point with all this is that maybe these things are beyond our abilities to change. Change seems so easy for some and so hard for others(and depends on what is to be changed). It may have nothing to do with those individuals and completely to do with the universe forcing them not change(although, I think we both would agree that we can't prove this is absolutely true so it's worth trying to move the mountain... who knows, maybe there is a secret button somewhere that will teleport it to where we want!)








April 14, 2019
On Sunday, 14 April 2019 at 14:41:50 UTC, Guillaume Piolat wrote:
> On Sunday, 14 April 2019 at 10:25:03 UTC, Guillaume Lathoud wrote:
>> Maybe there is a psychological explanation for the debate here - please bear with me - just speculating:
>
> It's a lot less complicated than it sounds.
>
> Some average joes (you know who they are) with zero skin in the game are given the chance to talk to incredible programmers and have them answer in a sort of ego-tripping trance.
>
> But the only way to have them answer is to troll more or less subtly, and this behaviour has been going on for years.
>
> The lesson should only be that the leadership **should not have to listen to this whole load of non-sense** from anonymous low-achievers that blame their tools. And they want things that works well to fail with them.

Ha ha ha! Nicely put. People complain about aloofness and arrogance and are called underachievers the leaders shouldn't listen to. A beauty! A recipe that has worked well throughout history.

Also, these "skin in the game" comments, I used to have a skin, a reasonably big one, in the game, but I found out that that's what it is for you guys, a game. A game of features, a game of having one up on other posters, a game of shifting the blame. All I know is that much younger languages already get the basics right or try hard to get them right, craft and test features carefully, no cowboy work.


April 14, 2019
On Sunday, 14 April 2019 at 14:59:30 UTC, Chris wrote:
> Ha ha ha! Nicely put. People complain about aloofness and arrogance and are called underachievers the leaders shouldn't listen to. A beauty! A recipe that has worked well throughout history.
>

Spending dozens of hours spreading negativity on online forums (of languages you don't like!) is the definition of lost time.
April 14, 2019
On Sunday, 14 April 2019 at 14:17:20 UTC, Chris wrote:
> On Sunday, 14 April 2019 at 14:04:53 UTC, Chris wrote:
>>[...]
>
> One thing I always notice when I look at young languages like Crystal, Zig, Kotlin etc is that they are very carefully crafted, while D just throws in random features that seem cool and fun to work with but are never really finished.

This kind of language is just boring. How about a table?

You can make one in Emacs org-mode very easily:

| D feature          | random? | seems cool | fun? | incomplete?            |
|--------------------+---------+------------+------+------------------------|
| scope(exit) et al. | ???     | sure       | yes? | where's scope(enter) ? |
|                    |         |            |      |                        |

Data's great. You can add to it, explain it, debate it. None
of the vague impressions posted to this thread are ever even
answered.
April 14, 2019
On Sunday, 14 April 2019 at 15:04:39 UTC, Guillaume Piolat wrote:
> On Sunday, 14 April 2019 at 14:59:30 UTC, Chris wrote:
>>
>
> Spending dozens of hours spreading negativity on online forums (of languages you don't like!) is the definition of lost time.

Don't like? I used to like D very much and still do, it's not that I hate it all of a sudden. It's just that I can no longer use it due to various restrictions / issues that are down to bad management, nothing else. One has to be practical sometimes. If anything I'm sad.
April 14, 2019
On Sunday, 14 April 2019 at 10:48:15 UTC, Nicholas Wilson wrote:
> On Sunday, 14 April 2019 at 08:47:18 UTC, Walter Bright wrote:
>> On 4/14/2019 1:33 AM, Nicholas Wilson wrote:
>>> The DMD codebase suffers from systemic misorganisation, both on the massive function level, and the complete lack of organisation of the files in the source directory.
>>
>> We're not going to get anywhere litigating that here. Defer to DConf.
>
> I plan to ;)
>
>> > Small change are never going to fix those issues.
>>
>> There's an lot of low hanging fruit that needs doing.
>
> Be that as it may, I'm interested in bang for buck comprehensibility and navigability improvements. The low hanging stuff you're doing, while nice, is rather lower down my, and I'm sure many others, list of perceived bang for buck improvements.

I'm going by what I see in the discussion and the links shown, not familiar with the codebase. YMMV.

Walter refactors on timeless programming principles, more functional, more immutable, more encapsulation, more information hiding. You don't care for those. You want to refactor file and directory organization fluff based on personal preference and fads.

The greatest mistake W&A did was to get contributors incapable of doing original work. They bicker forever about reorganizations that do nothing.
April 14, 2019
On Sunday, 14 April 2019 at 13:08:36 UTC, Chris wrote:
> Another one is the eternal issue of autodecode - and now there's talk of std.v2. Every time I come back to have a look at what's going on in D, I think "Thank God I made the switch!" Nowadays I spend more time writing new code (= new features = happier users) instead of fixing / worrying about old code. D may be a bit more stable now, as you say, but we can see autodecode and std.v2 on the horizon. The calm before the storm.

As far as I understand std.v2 is meant to preserve compatibility not mess it up. It is a change of direction from changing to adding.
April 14, 2019
On Sunday, 14 April 2019 at 15:12:33 UTC, Chris wrote:
> On Sunday, 14 April 2019 at 15:04:39 UTC, Guillaume Piolat wrote:
>> On Sunday, 14 April 2019 at 14:59:30 UTC, Chris wrote:
>>>
>>
>> Spending dozens of hours spreading negativity on online forums (of languages you don't like!) is the definition of lost time.
>
> Don't like? I used to like D very much and still do, it's not that I hate it all of a sudden. It's just that I can no longer use it due to various restrictions / issues that are down to bad management, nothing else. One has to be practical sometimes. If anything I'm sad.

Yes, I suspect people here honestly like D, and want it to be more perfect, but it has to be reminded time and time again that noone knows exactly what should be done - it's a bit like predicting the future -, even if we did know, it's volunteer work out of love so we cannot have that much direction (much less impulsed from the outside).

Of course the community can have blind spots but I don't think people would agree what those blind spots are.

"D is failing" has the attribute of a meme, if the number of users are great, funding solify, more compilers and platform support exist than ever before (without any seasonal hype) then there is no real reason to worry about the competition.

Really I've heard it for 14 years, "listen to me because D is failing".

OTOH An important metrics of an open-source project is _well-being of contributors_, and their numbers, and that is the prime attribute to cater for.

Hence why I think we get too much of a good thing (complaint directly aimed at important contributors) that worsen the situation it is supposed to improve.
April 14, 2019
On Sunday, 14 April 2019 at 15:10:35 UTC, Julian wrote:

>
> This kind of language is just boring. How about a table?
>
> You can make one in Emacs org-mode very easily:
>
> | D feature          | random? | seems cool | fun? | incomplete?
>           |
> |--------------------+---------+------------+------+------------------------|
> | scope(exit) et al. | ???     | sure       | yes? | where's scope(enter) ? |
> |                    |         |            |      |
>           |
>
> Data's great. You can add to it, explain it, debate it. None
> of the vague impressions posted to this thread are ever even
> answered.

Uh, what is this talk of RefRange all about, partial constructors, but no partial destructors? There are so many broken features, ... Other languages might be boring when they are young, but I prefer stability and sound principles over fanciness - and don' forget that those languages also progress over the years. It's like building up muscle. The slower you do it the longer the muscle will remain strong.
April 14, 2019
On Sunday, 14 April 2019 at 15:25:50 UTC, Chris wrote:
> On Sunday, 14 April 2019 at 15:10:35 UTC, Julian wrote:
>
>>
>> This kind of language is just boring. How about a table?
>>
>> You can make one in Emacs org-mode very easily:
>>
>> | D feature          | random? | seems cool | fun? | incomplete?
>>           |
>> |--------------------+---------+------------+------+------------------------|
>> | scope(exit) et al. | ???     | sure       | yes? | where's scope(enter) ? |
>> |                    |         |            |      |
>>           |
>>
>> Data's great. You can add to it, explain it, debate it. None
>> of the vague impressions posted to this thread are ever even
>> answered.
>
> Uh, what is this talk of RefRange all about, partial constructors, but no partial destructors? There are so many broken features,

So you don't have a clear idea either. This is where the discipline of
actually listing things out and being specific can help you. Maybe
you've had a few clear ideas, after encountering some problems, but
then since you only ever complained them with vague language, you
forgot what you wanted to complain about.