lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

On 8 March 2013 09:08, Spencer Parkin <> wrote:
> Admittedly, my knowledge of build systems is limited, but I can already tell
> you that for as long as I've been working with them, (which has been as long
> as I've been programming, (which is a fairly long time.)), that I really,
> really hate build systems.

The real problem is that there are too many build systems. Everyone
seems to feel a need to invent their own.

It seems to me that enthusiastic hackers eventually get bored with
their own project but still want to hack, and the next-closest-thing
is the build system. Totally unnecessary, but new and exciting. Or
maybe, once the project satisfies their needs adequately, the closest
thing that still annoys them about it is the build system.

There is a Torvalds quote (which I just completely failed to find) in
response to proposals for yet more new build systems, which is
basically "Please! Don't!"

As for "they're too complicated", the reason that build system
languages are complex is that building software from source, generally
speaking, is complex.  If you only want it to be able to compile one
program then, yes, something simpler would work. Then when you try to
compile some other program, you will have to make it more complex. And
to support other languages.  Oh, and it's slow, so you need parallel
builds. And to automatically generate dependencies on header files.
And so on and so on.

In the end, it will be able to compile any program in any language,
and then a new programmer will arrive, saying "Hey, this build system
is so complicated! I don't know much about build systems, but I bet I
could write a simpler one to compile my program..."

And the cycle repeats...

I mean, the problem has been solved a hundred times already. There are
more build systems than there are source code control systems.

Now, if you wanted to write a tool to help people select a build
system by selecting the language they want it written in, the language
they want to compile, the OS they want to run it on and so on, that
would be a thing! :)

But seriously though, to understand the problem more, you might start here


(PS The Makefile syntax you quote sucks. That's not make, that's some
other language translated into Makefile syntax.)

(PPS, Steve, you forgot scons, gradle, bitbake, bam, mono-xbuild,
leiningen, omake, maven, kbuild, cdbs, ...)

(PPPS, I agree, graphical build systems suck even worse)