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