Why Phobos is cool

H. S. Teoh hsteoh at quickfur.ath.cx
Thu Jun 25 19:08:34 UTC 2020


On Thu, Jun 25, 2020 at 04:42:36PM +0000, aberba via Digitalmars-d wrote:
[...]
> Almost the exact reason why i use JavaScript (nodejs) for work and not
> D. It takes more than a nice language. When some here say they don't
> use Dub or they don't care about dub packages, I'm wondering what kind
> of software they are writing.

Don't get me wrong, I'm not downplaying dub packages.  But for my
projects, it's mainly local computation and data processing and
transformation.  One project *is* related to publishing on a website,
but it's almost entirely prerendered static pages, so virtually all of
the processing is done in batch-oriented mode beforehand.


> In my line if work, it's highly dependant of availability of packages
> to get the job done. Encryption, networking, data manipulation,
> database connectors, socket, rest, cloud services, etc. Its more like
> glueing services and APIs together.

Actually, even in this area D shines, because of the ease of wrapping
existing C/C++ libraries.  If there's a C API for some library that
provides the functionality you need, it's easy to interface with it.
I've interfaced with e.g. libfreetype, X11, sqlite3, and a bunch of
other libraries, and it's pretty convenient.  Of course, the best is if
there's an existing D binding, then it's just plug-in and go, but even
where there isn't an existing binding, it's still pretty easy to declare
the C prototypes on an as-needed basis (which is what I did with X11 --
translating the entire X11 headers is too much work, and most of the API
I don't even need anyway, so I just declare what I need and add more as
the need arises).


> Unless you're building compilers and softwares that don't connect to
> internet, then it makes sense to not be bothered by the lack of
> certain packages on dub.

It depends on what kind of software you're building, certainly.  If
you're writing code for today that will be obsolete in 2-5 years' time,
then having a dub dependency pull in 200 dependencies is not a problem,
because by the time it becomes a problem you'll already have moved on
anyway.

I write my code to last; so anything that increases the likelihood of
future breakage is a big disincentive for me.  I really do not wish to
be rewriting a module that was working perfectly fine before, but broke
because some obscure dependency or sub-dependency decided to change
things in a way that breaks the way my code uses it. I consider that
time-wasting churn.  That doesn't mean I expect code to be static -- but
any change has to make actual progress, as in fixing a bug or adding a
new feature, or improving the quality of the code, not just change for
change's sake because of external factors completely unrelated to what
I'm doing.


> This will only happen when the community collaborates, which will only
> happen when there's a visible leadership push/backing.

I'm not following this logic.  Why can't the community collaborate in
spite of perceived lack of visible leadership push/backing?  The two are
not mutually exclusive.  In fact, this being a volunteer-driven project,
even if the leadership *does* push for community collaboration, it
doesn't guarantee it will actually happen.  Volunteers do whatever they
want to do, not what they're told to do, after all.


[...]
> I'm not sure why we don't even have regular online community meetups.

Because so far, nobody has stepped up to take charge of it.  Since you
feel so strongly about this, why not be the one to take charge?  Set up
an online meeting, post an announcement here to recruit people, and get
the ball rolling.  Nobody's going to stop you, and in fact, judging by
what many people are saying, probably a lot of people will appreciate
the effort and support you.  If your effort turns out to be successful,
it could even convince the BFDL(s) to officially endorse it.


> Yeah, there's people who would rather code and feel more productive
> that way.  That's also fine.
[...]

Personally, I have very limited time as it is to work on my D projects,
so whatever little time I have, I'd really rather devote to making
progress with my code than to participate in yet another online
meeting/forum/what-not (which I already have more than enough of). But
that's just me, personally; I don't speak for anyone else here.  And I
also have no opposition to such a thing, should you decide to take it
up. I might even support you in the background.  And I'm sure a good
number of people here will support you too, based on what people have
been saying about this.

So how about it?  Since D is lacking in this area, here's your
opportunity to fill the gap.  Show us how to run the community better
than we have been.  We'll support you.  Show us how to make things take
off.


T

-- 
It's bad luck to be superstitious. -- YHL


More information about the Digitalmars-d mailing list