We need a community effort to maintain unmaintained dub packages, suggestions

H. S. Teoh hsteoh at quickfur.ath.cx
Thu Jan 28 16:30:41 UTC 2021


On Wed, Jan 27, 2021 at 11:38:28PM +0000, Adam D. Ruppe via Digitalmars-d wrote:
> On Wednesday, 27 January 2021 at 22:47:56 UTC, H. S. Teoh wrote:
> > Not to mention, one giant, monolithic library that tries to do
> > everything [...] Adam Ruppe's arsd library is an excellent example.
> 
> fixed that for you

lol... fine, you got me there. :-D


> it is kind ironic, i have like 70 diverse modules, so it is kinda a
> "giant" library, but since I'm so strict on modular independence (even
> to the point of copy/pasting code in a few places) it is more like 50
> "libraries" in one.

I think this is the key.

Over the years I've come to question the dogma of code reuse, esp. when
it comes in the form of wanton dependencies, each of which in turn comes
with its own set of dependencies, ad nauseaum.  It's basically the
dependency hell edition of the good work vs great work conundrum. You
can't argue that dependencies are bad, because it doesn't make sense to
write everything from scratch yourself.  But each dependency begets more
dependencies.  The result is that the simplest of tasks requires pulling
in a disproportionate number of dependencies, 90% of which you don't
actually need.  It's very telling that figuring out your way in this
tangled web of dependencies is an NP-complete problem.  IMNSHO, solving
NP-complete problems should be what your program *does* for the user,
not what *you* need to do in order to be able to compile your program in
the first place!

A *great* dependency is one that does *not* itself pull in more
dependencies.  The best is that it's a self-contained unit that you can
literally just copy into your source tree and it Just Works(tm) with no
further fuss or muss.  No need for bloated heavyweight package managers
that require gobs of disk space and RAM to solve NP-complete problems
just so your program can be encumbered with an exponential number of
dependencies.  Just drop the danged file into your workspace and start
using it.  Nimble, flexible, and free of needless encumbrances.  The way
it should be.


> (I kinda hate the term library btw. A real world library is a big
> building with a bunch of random books. The librarian doesn't write all
> the books and most the books have nothing to do with each other. They
> are just made available there. That's the way I see the arsd lib - a
> "library" made up of a bunch of individual books from various sources.
> And my main job as librarian is to just ensure they stay in condition
> that people can check them out.
[...]

That actually makes more sense than the way we usually use the word
"library". :-D


T

-- 
I am a consultant. My job is to make your job redundant. -- Mr Tom


More information about the Digitalmars-d mailing list