In the physical world the race to the bottom is won by mass manufacturers in third world countries paying their workers 2¢ an hour. That's bad. And in the race for lowest per-unit cost, low-quality products get shipped.

In the software world there are no significant manufacturing costs, so commoditization doesn't rely on reducing per-unit product cost and actually results in higher product quality. This is achieved when someone builds and releases a functioning1 Thing for free with the source code available, and other people take interest and offer to help. Game over, this thing is free and getting attention and if it doesn't exactly fit your needs, you can adapt it at a lower cost than writing another Thing from scratch. The result is always better than something you built yourself. This allows you to concentrate on the truly new and unexplored work behind the great products of today. The flywheel of software development gets a little bit faster.2

Open source is not the Only Way. People are entitled to be rewarded for coming up with new and interesting things that other people want. Successful free software tends to be commoditized software—stuff that other people have written many times before. These projects benefit most from the "collective bargaining" development style of open source, with the mistakes of all those previous implementations in mind and addressed in a package that anyone can use.

OpenSSL is a great example of this. Encryption software is terrifically hard to write, and everyone should be using it. Any bug could mean that someone owns your sensitive data, and even if it runs correctly, you're probably vulnerable to side channel attacks that monitor timing, power usage, sound, or math faults. Everyone who writes their own security routines falls for this stuff, including the open source libraries.

The best part about commoditization in software: you're better off using OpenSSL instead of DIYSSL because they've already run into these problems. Early versions had security vulnerabilities, but those have been fixed and the library is under constant analysis and attack by others and you benefit from it directly just by consuming it3. You stand on the shoulders of giants.

It's not just security either. Want high performance code? Someone probably wrote a free library that does what you want. And someone else came along later and improved it. This iteration is what makes open source software such a powerful force.

Open source software has a place in the world, and everyone in the ecosystem relies on it. As the industry matures, it becomes impossible to build a compelling new product without it4.


1 many open source projects fail at "functioning", a sign that the technology they're attempting to implement has not yet become sufficiently commoditized.
2 this is easy to prove: every modern product with a microprocessor contains at least one open source component.
3 as long as you don't screw with it
4 but you should probably bring something of your own to the table, too.