Am 20.10.2014 18:12, schrieb Angst:

(...)

Don't underestimate the usefulness of trivial/small pieces of code!

Take the grunt plugins:
http://gruntjs.com/plugins

You could classify a lot of these node modules as trivial: actual code (excluding tests) being around 100 lines. But they are well tested and without them grunt would not be possible.

Standing on tiny shoulders is still nice ;)

Sure, but it also comes at a cost:

  • Selecting the right package may cost more time than writing the code
    itself if there are many alternatives
  • It increases the chance for unintended license violations when
    different licenses are involved and a project has dozens of dependencies
  • It increases the chance for version conflicts when e.g.
    "trivial-pack-a" depends on the same dependency "pack-c" as
    "trivial-pack-b" (maybe indirectly), but accepts a different
    version(range) for that package
  • It increases the maintenance friction (e.g. you have to wait for all
    dependencies to fix compilation on the latest DMD version and you may)

So it's a nice thing to have in principle, especially for rapid
prototyping, but I'd definitely rather prefer a library that manages a
bunch of trivialities under one umbrella to avoid the above issues.
There are always exceptions of course, though!

At least with the new "dub.selections.json" feature, DUB should be well
prepared for managing large dependency hierarchies.