5 ms·
His point about scons is unfortunately well known. You can find an explanation from Steven Knight (head of the scons project) about why scons failed for chromiu
by cdavid 16y ago
His point about scons is unfortunately well known. You can find an explanation from Steven Knight (head of the scons project) about why scons failed for chromium on scons mailing list (http://old.nabble.com/why-Chromium-stop-using-SCons-for-building--td29482303.html http://old.nabble.com/why-Chromium-stop-using-SCons-for-buil...).
It would be interesting to see what would happen if they were using waf instead of scons. Waf is also in python, and started as a fork of scons (but is so different that it can now be considered as a totally different design and codebase). Waf is much faster than scons (easily one order of magnitude), to the point that I think it would be hard to be much faster without losing features and/or system specific features (notifying systems, using checksumed file systems, etc...).
Samba has been using waf for > 6 months now, and they seem quite happy with it. As a former user/contributor of scons, I much prefer waf now, and anyone interested in complete build systems should look at it IMO.
- DTrejo 16y agoI wish I had not used the WAF build system, it works - it’s okay, but it introduces more WTFs than necessary. I can perhaps dig out from under WAF at some point but it would be a monumental undertaking. — Ryan Dahl, in reference to Node.js http://bostinnovation.com/2011/01/31/node-js-interview-4-questions-with-creator-ryan-dahl/ http://bostinnovation.com/2011/01/31/node-js-interview-4-que...
- cdavid 16y agoI cannot find a link, but if samba team seems happy from their choice of waf, and samba is closer to chromium in terms of what it needs from a build tool (large multiplatform compiled codebase). Your link is not really informative - he does not like it, but we don't know why. I am not surprised it has WTF for something like nodejs (which let's be honest, has rather simplistic needs for a build tool compared to samba or chromium). Waf is far from perfect for sure. I have experience with quite a few build tools, from autoconf/make to waf, with custom ones, and waf is by far the one with the least WTF so far if you want to do something which is hard. It gives you the power of a real language, which is needed for complex builds IMHO. It looks like node.js is now using cmake, and its macro language is quite weak and error prone IMO, although it definitely works for non trivial projects. Waf is also fast, small enough that you can hack it if wanted (compared to cmake with C++ + architecture based on autogenerated makefiles...), and just enough usage by non-trivial projects I would expect for a tool I may depend on (samba and ardour are two quite big, multi-year, > 100 kloc of cross-platform, multi-language tools).