Why Phobos is cool
Chris
wendlec at tcd.ie
Fri Jun 26 15:06:03 UTC 2020
On Friday, 26 June 2020 at 01:58:13 UTC, Andrei Alexandrescu
wrote:
>
> 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.
But you do realize that Java does have package managers (even if
there's no official one)? And IDEs are important. It'd be enough
to have a plugin for IntelliJ or Eclipse.
> 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.
Nobody expects YOU to write a package manager, and you know that.
You should keep on working on the library and stuff like that
because you are very good at it, so you are. And here lies the
problem, I think. You only see this particular aspect while your
average John Doe needs a package manager. Think about the average
development process. You write code in order to ship a product.
You need 3rd party libraries. This should not be an issue or a
hack. The average dev just wants to write good, stable code and
ship the program, and do it fast if there are bug fixes.
> 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.
The job of the DLF would be to identify the priorities (as boring
as they may seem) and coordinate how you go about it and hire,
yes hire, programmers who work on one of the priorities.
>> 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.
Once you are a leader you have to stop developing and start
coordinating things. If you try to do both you'll fail. I said
this years ago. You love PLs and programming too much to be a
leader, you want to write good code (so does Walter). You should
never have become a leader in the first place. You'd need someone
like Steve Jobs who has a vision and the energy to push his cause.
> 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.
There were clear suggestions nobody in the leadership picked up
on. Simple things like stability, tooling. The leadership just
bulldozers on even if people shout "Noooooo!". The problem of the
D leadership is that they like programming and hacking too much
and you're experimenting with code at the expense of your users.
Do you know how it feels when you're code doesn't compile anymore
from one version to the next and you have to spend hours to fix
and test it while your users want this and that new feature?
A PL is more than just code and CS theory. It's a complicated,
delicate social network, jobs and end users depend on it, it's
embedded in a competitive fast moving economy. And you have
neglected this aspect over the years. Instead you concentrated on
code and CS theory. You were blind to socioeconomic aspects of D.
You are a very good engineer, top of the league. (I still
sometimes think of your approach when I write code.) But you are
not a leader. A man has to know his limitations.
> 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.
Because D attracts the non-mainstream crowd that is more critical
and demanding, and they feel they are closer to the leadership
(familiarity), rightly or wrongly so. And if you stick your head
out you have to live with fair and unfair criticism alike. You
cannot say "Look at my allocators! Am I not a cool programmer!"
and then ignore issues you consider "minor issues" (ARM, dub,
autodecode) that are very important to the actual users. And then
you break code for users because of some fancy CS thing you
always wanted to implement. Of course people get angry sometimes.
> 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.
Well, the post was a bit, how should I say, well, FFT is in the
standard lib, great.
More information about the Digitalmars-d
mailing list