Ruby has Rake. I think Python has SCons.
In addition to Rake, Ruby also has
Rant.
As for
SCons,
it's based on the Perl
Cons
software construction utility, both designed by Steven Knight.
Notice that Cons, SCons, Rake and Rant are all examples of an "internal"
DSL
(Domain Specific Language).
As noted in
Using the Rake Build Language:
- make is an external DSL using a custom syntax
- ant (and nant) is an external DSL using an XML based syntax
- rake is an internal DSL using Ruby
Internal DSLs have some advantages, notably:
- You don't have to drop out of the DSL to perform tasks outside the scope of the DSL. For example, a home-grown concoction of makefiles, perl and shell scripts can be awkward to maintain.
- Easy interoperability when using multiple internal DSLs.
The trouble with Cons, SCons, rake and rant is that you are limited
to using only valid syntax of the host language; that is, you can't
invent new syntax to better express your domain.
I feel Perl 6, due to its macro capability, should prove
a superior language for implementing internal DSLs
(much like
Lisp).