2010/7/22 Jon Cruz <jon@...18...>:
- Waf. Fairly new, one-man project. Being new has the advantage of allowing it to start with refined ideas, but the one-man situation has major issues including some that Krzysztof touched on. Being modeled after SCons also brings up some warning flags. It also has decreasing year-over-year development activity.
The one-man situation is actually the least important problem, and in some cases it could be an advantage (no design by committee). The only thing in common with SCons is that it's Python based.
The actual problems are: 1. Maintainer doesn't know how to use source control. He keeps the stable version in trunk and the new development version in a branch. 2. When I attempted to make a minor correction to a sloppy code that caused O(N) behavior instead of O(1), he rejected this as an "unnecessary optimization". The correction did not decrease readability. 3. The first change he made to the 1.6 branch was to remove backwards compatibility with Python 2.x. At the same time, he did not make sure that it worked with Python 3.x, so the branch was useless for a rather long time. 4. He doesn't keep the development version in a workable state - it is frequently broken. 5. He treats the public SVN as a remote backup of his local working tree, particularly for the dev version. 6. SVN history is not usable, because he spams it with hundreds of one line commits with incomprehensible or misleading descriptions. 7. The documentation is non-free and is almost useless, because the author keeps talking about internals and concepts that are irrelevant to the user.
That said, the software itself is very nice to use. It's almost trivial to do things that would be impossible or very hard in other build systems. For example, it's easy to define a tool that renders icons to PNG using either rsvg or Inkscape, or a tool that separates binaries into debugging symbols and stripped executable. If someone took it over, showed it some love and improved the documentation, it could become the most powerful build system in existence.
Regards, Krzysztof