On 17/03/16 07:13, H. S. Teoh via Digitalmars-d wrote:

Personally, I also find makefiles have a tendency to become unmaintable
messes. I have yet to find one non-trivial project whose makefiles
*aren't* unmaintainable messes.  The dmd toolchain tries to, but fails
(esp. with the nasty cross-repo references that will basically fail in
ugly ways in every case except when you setup your environment exactly
like the makefiles implicitly assume -- the hallmark of design smell).

My current go-to build system is SCons, a Python-based build system
where build scripts are Python scripts. However, far from becoming a
problem due to Turing-completeness, generally I hardly ever use the full
expressive power of Python; the primitives provided take care of 99% of
the most typical build scenarios. However, for those rare but
unavoidable cases where you need something more, having a full
programming language at your disposal is a life-saver.

I completely agree. It's the same with Ruby and especially if you include Rails. It has a lot of small DSL's that are all in Ruby. Many which might have been XML, JSON or similar in other language.

Take for example a Gemfile (which lists dependencies of a project). The Gemfile is written in a DSL in Ruby. I can't remember the last time I saw a Gemfile with something other than the standard dependency statements:

gem 'rails', '4.2.0'
gem 'pry', '0.9.1'

--
/Jacob Carlborg

Reply via email to