Hacker News new | ask | show | jobs
by jillesvangurp 903 days ago
The tragedy with any form of software development is that it becomes a commodity very quickly. That's why open source works so well for commodity software. The challenge is that while everybody needs commodity software, they aren't necessarily willing to pay for it. People pay for other things like managed services, support, etc. But not for software directly.

Take operating systems as an example. Unless you have very specific needs, Linux is probably good enough. That's true across most of the industry. Most device manufacturers at this point default to using Linux. Why bother building your own OS when the commodity option does the job. It doesn't make any sense to want to compete with free and OSS. Apple and MS seem to continue to resist this notion but they are increasingly exceptions.

So, open source companies are a bit of a contradiction in terms. You invent something, and then immediately turn it into a cheap commodity by releasing it for free. And then you expect to get money for that. Investors get attracted by rapid growth. And giving something for free can produce some rapid growth.

So, they've repeated fallen into the trap of investing in what proved to be worthless commodities. Some outlasted their IPO at least, which makes for happy investors. But those quickly turn into niche products. Because they are at that point commodity software providers competing with perfectly good OSS ones.

Most new closed source database products out there only have a short while before their differentiating features are absorbed by open source ones. Twenty years ago there were lots of new database products. Most of those were OSS. Several of those then transitioned to closed source. But at this point postgresql does most of what used to make those products interesting. And if it doesn't, just wait five years.

The finance model for OSS is very simple. You need OSS to produce closed source software. It's not optional. You can't compete by doing everything in house. So, most OSS software projects are financed by those companies using them the most. Those projects don't fix themselves. So, there are a lot of companies spending money on the commodity stuff they've built their business on. For example, Oracle keeps on pooring money into Java. Even though it is open source. They make money from it elsewhere. Same with IBM. MS is a big OSS contributor. Google too. Every big software company out there. None of them are driven by idealistic motives. This is economically necessary for them to do.

4 comments

>The tragedy with any form of software development is that it becomes a commodity very quickly.

I can't think of anything that is less commodity like than software. Commodities are raw materials than can be easily substituted. For example Ukraine is invaded so we all switch to American grain. Try switching SQL Server for mysql or changing your Python code base to Ruby. Software is sticky.

What you are describing is lockin, which is a mechanism companies use to ensure you keep on using their software.

But think about libraries. Imagine a library that handles dates and times correctly. You probably need one for whatever you are doing. Would you pay for one? No of course not because this is a solved problem and just about any language has this built into their standard library. You could build your own but it would have no economical value. Because it is a commodity. There are countless examples like this.

SQL server is a great example. Buying SQL Server for a new project doesn't make any sense for most people. The only reason to use it would be that you are already using it or somehow stuck with it (because you work in some place with lots of legacy software). Otherwise, there are plenty of perfectly fine and free alternatives. Databases are a commodity. If you need one, there are dozen or so free mainstream alternatives. The economic value of new ones is very low unless they do something particularly novel. Which then promptly gets imitated by others. And I'm sure SQL server has a few nice bits and bobs that are amazing. But by and large most people would ignore it as an option at this point. I haven't touched it in twenty years myself. At the time we had a product that could use either mysql or sql server (and Oracle even). Mysql worked fine and there was little technical reason to prefer the other options other than some imaginary value that companies associated with it (like getting support that they would never use).

>You could build your own but it would have no economical value. Because it is a commodity. There are countless examples like this.

Not because it's a commodity but because it is free. Free because Microsoft or Oracle or an enthusiastic Ruby developer wrote the code once and then it was done. We can then go on and build our layers on top of it without raising a purchase requisition or getting our credit card out.

The reason this can happen is because the marginal cost of software is so low. Microsoft put the work on to create their standard library on the basis that it helped them sell more SQL Servers or Windows operating systems and we all get the benefits because each additional user costs them almost nothing.

At first sight this looks like a benefit to us all but there are downsides as well. If I wanted to offer a better date and time library for .Net then I would find it difficult to compete because the alternative is free even though it isn't perfect.

If you look at hardware it is a different story. I could buy a Dell laptop and it would run exactly the same software as my Lenovo (bar drivers). This looks much more like a commodified product to me.

> but it would have no economical value. Because it is a commodity.

This is trying to redefine the word "commodity". Normal commodities like oil, grain and electricity very much have economic value.

> You invent something, and then immediately turn it into a cheap commodity by releasing it for free.

Exactly. A 71-line python script https://github.com/getsentry/sentry/commit/3c2e87573d3bd16f6... was groundbreaking when it came out and the fact that it springboarded into a startup is commendable. But 15 years later and Functional Software Inc. d/b/a Sentry has to support 100+ (according to their marketing material) platforms as well as adding new verticals in UX session replay, web performance, backend profiling, CORS error monitoring, code coverage etc. just to keep the growth machine going. That's not OSS' fault.

Sentry is also not open source anymore, according to their license.
More accurately: the latest versions of some components have a two year exclusivity period. The version from two years ago rolling is fully open source* under Apache 2.

*: we just recently lowered the window from 3 to 2 years so temporarily the actual time is 3 years for a couple more months.

The true tragedy is the economic system that makes this a tragedy.
software has zero marginal cost, so therefore, if a piece of software can be used by the majority of humans, it makes sense that it ends up costing very little per instance of it.

It's not a tragedy. It's actually a good outcome imho.

Software has zero marginal cost, that software engineers can imagine.

My workstation runs all the time and I don't care that it consumes this 100$ of electricity a month. Who cares about amortisation of new hardware? New, shiny is new, shiny. There are some large, expensive server machines running my software? I don't see the bill, so the costs don't apply to me. There are dozens of engineering hours required to even partially understand how the final product should look like. But an already well fed software engineer doesn't think that every minute of his life is precious and it costs way beyond the price of his dinner cheeseburger.

Such is the fallacy of "Software engineering is free"

> My workstation runs all the time and I don't care that it consumes this 100$ of electricity a month.

That has nothing to do with zero marginal cost. The term specifically refers to the cost of producing a new copy of the software, which is so low as to be effectively zero. Almost 100% of the costs of software engineering are what would be called “fixed costs” in economics.

This is to differentiate it from the production of, say, a car, where the marginal cost of building a new Ford Focus is a significant portion of the price.

> But an already well fed software engineer doesn't think that every minute of his life is precious and it costs way beyond the price of his dinner cheeseburger.

For some developers, if they were not developing open source software for free in their spare time, they would be doing something like playing games or watching movies. At least, when they use their time to create software, they can feel like they're doing something good for other people while improving their own skills - which can translate in better jobs and hence more money though I think most would do it even if that were false.

The tragedy is that building such software should be actually very easy and incentivized, since it brings so much benefit to society. But it's not incentivized, often not easily economically viable because of the way the economic system works.
> since it brings so much benefit to society

if it brought benefit to society (at large), why doesn't said society pay for the benefit?

Why isn't there an opensource funding model from society, except for trivial donations that don't move the needle?

> Apple and MS seem to continue to resist this notion but they are increasingly exceptions.

I din't think resisting is the correct word: Linux could be perfect from the user perspective but not the device one: battery handling in a notebook, good support of certain devices, etc. Linux does not replace the whole needs of users or organizations and that is why MS and Apple continue to exist. They existed before Linux either! The business is not the OS.

You could probably modify Linux to fix those problems, but most users won't know how to do that and want something that just works.
I think it is clear that Linux has space to grow in the desktop side, this is great. I just want to point out that there are issues that could be solved if there is an UX focus. For example: "Is battery management still the biggest issue for Linux in 2023?" [1]. This is not a rant. I think Linux is really great I just think it is a pity that some obvious things are not solved. I don't think it is lack of funding but lack of focus on some specific areas.

[1] https://www.reddit.com/r/linuxquestions/comments/18gdqwd/is_...