I was working for Digital Equipment Corporation when I first met Linus and facilitated the port of Linux onto the Alpha processor.
During the port, a member of the community contacted me and asked if Digital would contribute their math library to the Linux project, since Digital’s math library was a great deal faster than the one currently in use on the Alpha Linux port. I easily got Digital to contribute the Digital Unix math library in binary form, but they refused to make the library “open source” because of the investment that they had put into it.
Digital was afraid that one of their competitors might take the source code, most of which was written in complex Alpha assembler, analyze it and re-write the code to make a library that would directly compete.
Since I walked the dual line of Digital employee and Free Software advocate, I was torn between the two groups.
After receiving yet another email complaining about the lack of source code, and I replied back to the list:
“If you guys are such great programmers, why don’t you write a better library?”
Silence from the list.
Then a few days later an email came: “Cos() is 5% faster”.
A couple of days after that: “sqrt() is 3% faster”.
Each day or two another email, another subroutine in the library was re-written to be faster on the Alpha, compiled from sources than the binary from Digital Unix. Sometimes the improvements were small, but sometimes they were significant.
Finally, all but one subroutine was faster, and it turned out that subroutine was not used a lot, so it would not mean significant speed-ups in the over-all program if it was re-written.
While we might like all closed-source people to “open” their libraries, sometimes it is better to just buckle down and do it yourself.

