> you can compute any logarithm from two base-e ones.
They need not be base e. Any base will do as long as it is the same for both the numerator and the denominatorThe binary logarithm can be computed faster and more accurately, except for arguments very close to 1.
It is a historical accident that most standard libraries have been defined in the past to include natural logarithms instead of binary logarithms. Moreover lazy implementers sometimes have written a binary logarithm function that uses a pre-existing hyperbolic logarithm function, instead of the direct implementation that would be much more efficient.
Derivatives and primitives are seldom computed, but the computational advantage of binary logarithms applies to each function evaluation.
Even when derivatives or primitives are computed, in almost all applications there already exists another multiplicative constant in the formula that must be computed, which can absorb in it the factor "ln 2", so there is no increased computational cost.
There exists absolutely no reason to ever use multiple bases with logarithms.
One can choose to always use only binary logarithms and there exists no problem that would need other kinds of logarithms.
Choosing a base for logarithms is equivalent with choosing a unit of measurement for them. Changing the base of logarithms is done by the same rules as changing the unit of measurement for any quantity. In the same way as there is no need to use multiple units of measurement for a quantity, there is no need to ever work with multiple bases for logarithms.
Thus there is no reason for a programming language to include a function with 2 arguments like "log(arg, base)" instead of having only a function with 1 argument, e.g. "log2" (and the 2 constants LN_2 and LOG2_E).