What are the worst parts of D?
Cliff via Digitalmars-d
digitalmars-d at puremagic.com
Wed Sep 24 16:02:51 PDT 2014
On Wednesday, 24 September 2014 at 22:49:08 UTC, H. S. Teoh via
Digitalmars-d wrote:
> On Wed, Sep 24, 2014 at 10:18:29PM +0000, Atila Neves via
> Digitalmars-d wrote:
> [...]
>> If I were to write a build system today that had to spell out
>> all of
>> its commands, I'd go with tup or Ninja. That CMake has support
>> for
>> Ninja is the icing on the cake for me. I wrote a Ninja build
>> system
>> generator the other day, that thing is awesome.
> [...]
>> P.S. I've thought of writing a build system in D, for which the
>> configuration language would be D. I still might. Right now,
>> dub is
>> serving my needs.
>
> I've been thinking of that too! I have in mind a hybrid between
> tup and
> SCons, integrating the best ideas of both and discarding the
> bad parts.
>
> For example, SCons is notoriously bad at scalability: the need
> to scan
> huge directory structures of large projects when all you want
> is to
> rebuild a tiny subdirectory, is disappointing. This part should
> be
> replaced by Tup-style OS file change notifications.
>
> However, Tup requires arcane shell commands to get anything
> done --
> that's good if you're a Bash guru, but most people are not. For
> this, I
> find that SCon's architecture of fully-customizable plugins may
> work
> best: ship the system with prebaked rules for common tasks like
> compiling C/C++/D/Java/etc programs, packaging into tarballs /
> zips,
> etc., and expose a consistent API for users to make their own
> rules
> where applicable.
>
> If the scripting language is D, that opens up a whole new realm
> of
> possibilities like using introspection to auto-derive build
> dependencies, which would be so cool it'd freeze the sun.
>
> Now throw in things like built-in parallelization ala SCons
> (I'm not
> sure if tup does that too, I suspect it does),
> 100%-reproducible builds,
> auto-packaging, etc., and we might have a contender for Andrei's
> "winner" build system.
>
>
>> P.S.S autotools is the worse GNU project I know of
>
> +100! It's a system of hacks built upon patches to broken
> systems built
> upon other hacks, a veritable metropolis of cards that will
> entirely
> collapse at the slightest missing toothpick in your shell
> environment /
> directory structure / stray object files or makefiles leftover
> from
> previous builds, thanks to 'make'. It's pretty marvelous for
> what it
> does -- autoconfigure complex system-dependent parameters for
> every
> existing flavor of Unix that you've never heard of -- when it
> works,
> that is. When it doesn't, you're in for days -- no, weeks --
> no, months,
> of hair-pulling frustration trying to figure out where in the
> metropolis
> of cards the missing toothpick went. The error messages help --
> in the
> same way stray hair or disturbed sand helps in a crime
> investigation --
> if you know how to interpret them. Which ordinary people don't.
>
>
> T
If you have a passion and interest in this space and would like
to collaborate, I would be thrilled. We can also split this
discussion off of this thread since it is not D specific.
More information about the Digitalmars-d
mailing list