On Mon, 2010-11-22 at 16:41 +0000, Manfred_Nowak wrote: > Russel Winder wrote: > > > but it has come to the end of its useful life > > why. I ask because I just realized, that llvm still uses it.
For really small systems compiled on a single platform, Make can still "cut it". But being an external DSL, the separation of relationship specification notation and action notation, and especially the platform specific action notation lead to insurmountable problems. Go is trying to persevere with Make but the cracks show readily. Also Make shows the cracks for large projects, it doesn't really scale. Autotools was a brave attempt to make Make make big projects for Posix-compliant platforms. CMake is a bold attempt to ensure Make handles things in a more platform independent way. Autotools is, I think also reaching the end of its useful life -- it was an immense bit of m4 hackery, and deserves respect, just as Make does. The alternative to all this is to use an internal DSL, i.e. use a programming language directly. SCons and Waf plough this furrow -- to name but the main two in a C, C++, D, LaTeX context. SCons and Waf both suffer some serious issues, but they are the current market leaders for a more modern system. In the JVM-based arena, Make gave way to Ant 10+ years ago then Maven came on the scene leading to Maven vs Ant warfare. With Groovy came Gant which led to Gradle and the Groovy front end to Ant. Also Groovy hit Maven hard leading to Polyglot Maven. However unless you have mixed JVM/native systems, as a D person, you are probably not that interested in these frameworks. I am not sure what the C#, F#, CLR folk use these days. The summary is: we should always be on the lookout for the next evolution of build systems. In the JVM arena the question is whether SBT is a step forward or two steps back. In the C, C++, Fortran arena legacy generally rules hence Make and Autotools still have a big install base. The issue that the JVM-based frameworks address head on that the C, C++, Fortran, D, etc. communities seems to studiously ignore is the one of dependency. Not an issue for static compilation, but a huge issue for executables reliant on dynamic linking. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: rus...@russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
signature.asc
Description: This is a digitally signed message part