Why Phobos is cool

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Fri Jun 26 01:58:13 UTC 2020


On 6/25/20 5:51 PM, Petar Kirov [ZombineDev] wrote:
> I don't recall you or Walter getting involved with the development of 
> dub or the dub-registry in any significant manner. I remember that you 
> criticized the addition of SDLang as an alternative to JSON package 
> description format, but that's it.
> 
> I feel there is a very big disconnect between you and the community. One 
> on hand, I think that Dub and code.dlang.org are one of the biggest 
> assets of the community. On the other hand, it seems to me that you're 
> not interested in Dub at all. It's just another community project that 
> "they"'re free to do whatever they want it.
> For example, my impression (though I'd be happy to be wrong), is that 
> you have never actually tried using Dub for any project of significant 
> size, or such depending on a significant proportion of code that you 
> don't maintain. On the other side, take as an example any company that 
> needs to bring a D web project quickly to market. The first thing 
> they'll likely reach for is dub + vibe-d + mysql-native + some js 
> frontend framework - basically 100% third-party code for that team. 
> Since (as far as I'm aware) you haven't invested much time in projects 
> like this, I'd guess that it would be hard for you to fully appreciate 
> the necessity, challenges, and benefits of using a package manager like 
> Dub. Which is why, to me it seems that Dub is not very high on your 
> radar of important things to improve for to D succeed.
> 
> Different people having different priorities is absolutely normal but on 
> the other hand, if hypothetically most people using D type `dub` in 
> their terminal say 99% of their time compared to 1% for `dmd`, perhaps 
> it's not unreasonable for the community to expect the leadership to take 
> a Dub's issues in a proportional manner. Or at least the community would 
> find it strange that the keywords code.dlang.org or Dub were not 
> mentioned even once in the vision documents, e.g. 
> https://wiki.dlang.org/Vision/2018H1. Yeah, "tooling" is mentioned, but 
> honestly, that too unspecific to be actionable. On a related topic, 
> "mobile" and "wasm" also not mentioned, which areas where D in theory 
> could do very well, and its direct competitors are rapidly gaining 
> market share.

Cool cool cool. (Kind of funny you frame lack of involvement in dub as 
something to be ashamed of, like having cheated. I'll level with you: 
I'm just a casual dub user.) So as far as I understand the argument goes 
"Whatever you've worked on, that was missing the point because you 
should have worked on dub instead, which was way more important." From a 
very simple teleological viewpoint, you're entirely right: if D isn't 
mainstream, clearly there is something we didn't do right. As such, all 
paths not taken are very attractive. What if we put all that effort in 
dub? Or an IDE? Or a killer application written in D? No shortage of 
paths not taken. You seem to believe that dub is the most important, but 
over the years there have been many ideas from many people about what is 
the most important.

 From where you stand dub would be the thing to focus on, but for years 
Walter and I have been fighting huge quality problems that now seem to 
be forgotten. Those would preclude any application work. dmd was be 
unable to compile anything beyond the most trivial examples of its own 
flagship features - for years! And when it got it right, phobos got 
something wrong.

It does seem the presence of a package manager is a contributor to 
success. Some languages swear by it (Python/pip, Rust/cargo, 
Haskell/cabal). Yet some others are successful without an official one 
(Java, C, C++, PHP); and yet others aren't doing well in spite of having 
a good one (Perl/cpan). So it's not quite the foregone conclusion. Other 
people would say that an IDE is the thing, and I have been repeatedly 
asked to work on one. I'm sure those asking were as convinced about the 
importance of an IDE, as you are about the importance of dub.

The simple fact is I'm not an expert in package management or IDEs. I 
could probably learn how to do it, but it's unlikely he result would be 
anywhere close to world-class. In the meantime, I did think I could do a 
decent job at writing a standard library and helping with the language 
definition and there was an obvious necessity for those, too.

The main problem with the argument "why didn't you work more on X, when 
clearly X would have made the D language more successful than working on 
your core expertise Y" is... there's something wrong with it. Whatever 
the problem is, the solution can't be let's have fewer people do more 
work. It doesn't scale.

> Instead, we should compare D to language communities developed in the 
> past 10-15 years. I suggest you look around and see how each one is 
> doing and what were the different steps they took. I can assure you that 
> probably all of their leaders at some points have been accused of not 
> paying enough attention to this or that thing important to some part of 
> the community. That's normal. Leading a small community or organization 
> is very different than leading a big one.

Yes, that's a good point. It is self-evident to me that I have not been 
a good leader, which is part of why I bowed out.

All the paths not taken; surely one of them must have been better. I 
totally agree we didn't find the right sauce (how could I disagree? D 
doesn't have a million users). I think something endemic to our 
community is a certain thorniness, in most likelihood caused by its 
leadership (it always starts from the leadership) and slow mainstream 
adoption. Never in my life have I thrown so much work at such an 
unending pit of hostility. Years and years of my life, and some of my 
best work ever. Hundreds of thousands of lines written. Many more 
reviewed, to be fought tooth and nail by people whom I was just trying 
to help improve. The contrast is fascinating, because many companies are 
ready to pay handily for the very same thing, and the C++ community has 
always been happy with much less significant work. I was never able to 
explain this all to myself. But clearly there's something wrong about 
it. We seem to be dealing in some counterfeit expertise currency.

To this day, many moons after I stepped aside, there's no week going by 
without somebody in this forum putting the poop on something I've done, 
or teaching me how I should have done it.

We could use more kindness around here. Look at the title of this 
thread. "Why Phobos is cool." Someone found something he liked in 
Phobos. I knew as soon as I saw the title a poopfest was going to 
inevitably follow. Let the man have his day.


More information about the Digitalmars-d mailing list