(for anyone who do not know, bc is a “arbitrary-precision arithmetic language”. its syntax is similar to C)

Gavin Howard’s bc (bc-gh) is adopted by busybox, toybox, FreeBSD, Android, macOS for its robustness and superior performance. It is also shipped with Gentoo Linux; LFS also use bc-gh.

Even though bc-gh is more robust and updated, Linux distros other than Gentoo and Fedora do not package it it. bc-gh is not available on Arch (available on AUR), Debian and perhaps all of its derivative. The reason seems to be a licensing reason: bc-gh is under the BSD license.

bc-gh is clearly superior to GNU bc, Gavin Howard’s benchmark show that bc-gh is faster than GNU bc in most case, while bc-gh actually do more work than GNU bc.

Today I tested GNU bc and bc-gh. I let they do this operation: (1024*1024)^(1024*1024). GNU bc give me the answer in five minutes, bc-gh give me the answer in two minutes.

GNU bc do not have a repository. All development happen in private, and we can’t make sure it is still maintained. The latest version is 1.07 from 2017. bc-gh have a public repository and it is actively maintained.

So it is clear that other Linux distro not adopting bc-gh is purely licensing reason. They reject software not under the GPL license, even if they are more robust and more performant.

We need a campaign to raise awareness about superior software alternatives. We need to stop Linux distro for not adopting superior and updated softwares for licensing reasons.

  • @solrize
    link
    162 days ago

    Does gnu bc have outstanding bug reports? If not, it doesn’t need updates. Its spec was frozen 30 years ago, more or less. Rather than unmaintained, I’d call it maintenance-free. BIFL software as it were. Sounds great to me.