Important Project Announcements
Posted on 01 Apr 2017
by Boris Kolpackov
with comments on r/cpp/
We have several very important announcements about exciting new
developments in the build2
project... ok, it's April 1 and you
know this is a hoax. But here is the kick: one of these announcements
actually has some truth to it. Can you guess which one?
Meta-Meta-Build
We have realized that a native build system that actually performs the
build itself consistently and uniformly across all platforms and compilers
is too boring. So instead we are going to generate
CMakeList.txt
from our buildfile
. Because surely a
meta-meta-build system is better than just a meta-build system.
Switching to Python
We are switching from C++14 to Python as the implementation language. There are several reasons for this. Firstly, we feel it is unfair not to impose an additional burden of installing and maintaining a suitable version of Python on users of inferior platforms, such as Mac OS, Windows, etc. After all, there should be a penalty for such a misguided choice.
Secondly, we have now realized that the majority of C++ developers would rather code in Python than C++. This is an important consideration going forward if we want to attract external contributions.
Plus developers of other languages like Go and Rust (who implemented their build toolchains in their respective languages) clearly don't know what they are doing so this is a good indication of what not to do.
Build OS
Because of the switch to Python, we feel that we must provide an easy way
of getting all the necessary bits and pieces. As a result, we have started
work on a special-purpose Linux distribution, called Build OS, that is
optimized for the build2
toolchain. Unfortunately, this means
that in order to use build2
you will not only have to forgo
your favorite IDE and use the command line, but also your preferred
operating system and use Build OS.