Ask HN: In the real world we pay for everything so why not software?

23 points by asim ↗ HN
It seems like I and many others have develop a bad habit of giving software away for free. Whereas in the real world we charge for anything of value. I met a carpenter today. You could not imagine giving away hand crafted furniture for free. It's his trade. So why is it in software we give so much away for free? Like open source and even hosted services?

I have written a lot of open source but feel like now I need to really use my skill to sell something, to sell the things I build. Does anyone get that feeling?

42 comments

[ 3.4 ms ] story [ 64.2 ms ] thread
Software is a zero margin commodity, not because it costs nothing to produce but because it can be reproduced infinitely for free. That's why even copywritten/"paid" software like music and video games ultimately end up being free too.
You pay the carpenter for his time and materials. The same thing could be true of software development.

But instead you buy a table from Apple and it's only compatible with chairs from Apple. So you can't pay your local carpenter for repairs or better chairs.

Anyway, the big companies have long since realised it's more lucrative to stop selling the furniture and rent it out instead.

What do you build?

Many reasons:

1. Internet has made distribution frictionless. So unlike giving out Uber trips, giving out code costs you nothing.

2. You have a real job. The "80% time" for which you're paid subsidizes the self-promotional work you do for free, and let's not kid ourselves: most of us write open-source not out of altruism but for the recognition.

3. Software is immediately useful. Lawyering is a lot like programming in that both involve putting pen to paper in just the right way. But pro bono legal work is a lot more painful than whipping up some code. Lawyers have to deal with people and all their bs.

4. Software is easy. I don't know why but the return on capital blows away the return on labor. Whereas Microsoft may have once derived most of their profit from software, they've now come around to the rest of the tech industry which is selling hardware and compute -- the software that comes with it is included.

> most of us write open-source not out of altruism but for the recognition.

I've only contributed to open source to fix bugs in software i use every day.

It doesn't have to be all one or the other. I produce both commercial and free software. I produce commercial software to make a living. I produce free software to contribute to making the world a little bit better.
The question is, is it actually better for it? I have a bit of software I've created. It's a reimplementation of a commerical product. It scratches my itch. It would also scratch the itch for most of that company's paying users. Do I a) Keep it to myself and a couple of close friends b) sell it for slightly cheaper c) sell it for slightly more d) give it away for free. There is a whole company out there with people that depend on this app to pay their bills. Giving it away for free puts that whole company out of business! Everyone working there is would then be out of a job. Sharing this thing with the world for free might be generous of me, but who am I to fuck over the people at that company. There's probably a person who's not a software developer who's struggling to pay the bills as is. Giving my software away for free puts her out of a job.
Well, people do things for free because they enjoy it. Maybe there should be a place where developers can list the things they would do almost for free. But then they could solicit payment up front before starting work. So just as http://weargustin.com is for clothes, something like that for software. Then, the "pledgers/pre-funders" can get privileges once built: maybe even exclusive access.

There's also a similar crowd-funding idea here: https://reddit.com/r/oasisnetwork/comments/1py9cah/app_idea_... but releasing the funds is more discretionary and happens after delivery, with the work being more externally instigated - as opposed to passion projects just looking for buy-ins.

I have this idea where similar to railway's kickback program, a more customizable and more free way could be built where the developer sets the pricing of the server

so it might be more pricey if you are using it a lot compared to self hosting itself but then again, the deployment hassle of it and some management aspects can be handled by the person who built the code and has expertise on it

So like for simple usd$, lets say that we can charge like 10$ instead of 5$ for a simple vps and this % thing scale (obviously 100% feel wrong but also transparent compared to how most Saas work)

Like perhaps its like byok but I have never seen it really that much widespread/easy and byok is usually only popular in large businesses cloud solutions themselves and not so much in hosted options/indie people like you and me

I do things for free all the time. I love my kids for free. I serve the less fortunate for free. If I have the time and resources and it makes the world a better place free is my default price.

That being said I also produce software for a living as well and there’s nothing wrong with that either. It’s not either or. It’s yes and.

Software doesn’t have an incremental cost. The cost of one unit of software is the same as the cost of 1 trillion units of software. That’s not the same as real world items.
Free Software never had to mean Free of Charge. It is supposed to mean Free to do What You Want. People assumed giving away source code would mean that anyone could compete against them with their own code, so they mentally drove themselves to bottom barrel pricing. That assumption has basically been completely invalidated in the last 30 years, but the damage is done.
and even hosted services

Also keep this old saying in mind: "If you're not paying for it, you're the product being sold."

As others have already mentioned, it's possible to do both. But the things I work on in my "free time" are unlikely to be profitable anyway.

Historically, a lot of systems software was given away. Operating System source code. Text formatting systems. The annual issuance of the DECUS tape, covering pdp11 and Vax and Tops-10 systems is where I intersected with this.

And of course, this in turn fed into other trends. People shared code routinely because they had always shared code routinely. The emergence of expensive code, could be held to be an anomoly: Most code of the day outside of commerce and military and secret places was written in publicly funded institutions, and shared as a matter of course, or at worst sold for cost-recovery prices.

This also relates to the emergence of "hold harmless" licencing terms. If you give something away, you want to be sure nobody comes back at you for redress.

Stallman's GNU Manifesto was a reaction to change in this landscape. It wasn't "hey, lets break the dam wall of sold software by inventing free software" it was "this modern trend to locking software up is wrong. I want to return to the roots of free software, which has always existed"

I think part of this is that software is new. I mean really new. If we all just landed on a new continent and started a new civilization we would probably see a lot of 'free' happening as the community built the essentials. Slowly over time new community would come together less to help each other build houses and more and more a robust economy of services and goods would take over. This metaphor doesn't totally explain the opensource world, but I think it is a major driver for a lot of it.
Thanks for posting this. I struggle to understand this as well.

Something else I struggle to understand is why some people/companies will build their entire business on top of software they don't own on top of third-party platform code that they can't even see. Somehow they prefer this than paying for an unlimited license to self-host and control the code. The companies who have access to the customers/end users definitely should have that kind of leverage over platform providers.

The software industry is weird to me. Saying this as someone who has been in it for almost 2 decades. I wish someone could explain it to me.

At a fundamental level, I cannot make sense of the relationship between people and software.

The duality of people making software free and open source only to be ignored completely and at the same time companies paying massive license fees for essentially the same or even inferior software... I suspect it's largely driven by cronyism.

It's not just giving away, but getting. You get an enormous amount for free and it fuels the software industry: Operating systems, programming languages, network protocols, Unicode, applications like the web and email, codecs, information about almost everything (e.g., on HN), ... almost infinitely more.

Would things work better if you paid for every one of those? How much free do you have to contribute to get all these things in return? The network effect creates an incredible ratio, in part because moving bits is nearly free.

Ask the inverse question: Why would we pay when we can exchange these things for free?

Edit: Also, if you want to change the world, to contribute to it, freedom often facilitates that.

Well, I build software for free just like I play guitar for free, repair stuff for free, help out organising events for my children's school for free, taught elderly people at the local care home how to use computers for free et ce te ra.

I do not get the feeling that I did nor do wrong by acting this way nor do I feel like I'm doing wrong by using free software. In what way would the world be a better place if I started charging money for the mentioned services and started paying some of it for software?

A carpenter does woodworking for money. A woodworker does carpentry for fun. If you wanna charge for it, do it; if you don't want to, don't; it's up to you. And you can both give away your source code, and charge for it. Multiple/hybrid licensing, paid support, custom engineering, managed services, etc. This was an expected part of the free software movement when it started.

I've always given away my code because I didn't write it to get paid, I wrote it because I just needed the code. It costs me nothing to give it away. I already benefit daily from other people doing this very thing, so it just makes sense to me to contribute back to the community I get so much from. The hobby software market was also like this when it first started (although unfortunately a lot of that was pirated software)

The incremental cost of a carpenter giving away an extra table is the cost of the time and materials needed to build that table.

The incremental cost if duplicating and giving away a piece of software is nothing at all.

If you want to be generous to the world, open source is an incredibly cost effective way to do that!

(I remain extremely interested in ways we can ensure open source developers do get compensated for the huge amount of value they put out into the world, but that's the key difference between carpenters and software developers.)

I pay for software and I bet everyone reading this, has as well. The question is which software, doing what, and how to get paid.

To take iPhone apps as a category, some are paid, but most are "free", because experience shows that people will easily try a "free" app, greatly preferentially even if the price is $0.99. But for many, probably most, of such apps, there's in-app purchases, designed to be an ongoing source of revenue.

Yeah that's the difference between value creation and value capture. If you're not good at the latter then you're not going to get paid. You can capture value many ways:

- subscriptions that promise improvements or act as DRM

- vendor contracts

- becoming a platform and extracting rent

- using your audience as an advertising resource

But the reality is that the hard part with software is discovering what's useful. Actually writing software has been getting easier for a while. Once you've discovered what's useful, no one is going to pay you for that. They can replicate. I'd rather use podman than docker.

If the carpenter could build 1 chair, and then infinitely duplicate that chair to everyone who needed it, the economics would look similar to software.

I actually dumped a bunch of my project files into chatGPT, and asked it "Is there anything in here close to completion/close to marketable" and the answer was "Nope", which mirrors my own thoughts. My code is too niche, and the 10 or so people playing in the same space as my hobbies already have their own full working stacks and have no need for my stuff. One of my projects, I found 3 other people on a tiny discord, had already working prototypes with better software and hardware.

So I dump it all on my github for whatever minor assistance I can give anyone else with the same brainwoms that I have.

Because people enjoy coding.

And before you say "the carpenter enjoys making chairs too"... I'll believe that if you can show me that a substantial percentage of carpenters spend 8 hours a day making chairs even when they're not monetising them. A substantial percentage of developers spend 8 hours a day coding when they're unemployed because they enjoy it.

Thats easy.

Its costs time to make a software thing once. Then once done, copying is basically 0 cost, and storage is near 0 cost, and bandwidth is near 0 cost.

If I make furniture, it costs resources for each thing I make. I can't copy a sofa 10e6 times for negligible costs.

Its also why "Shit as a service" is so popular in the commercial world. Selling the tool is a fools game - you sell access to a rental of the tool. Then you get recurring income, and can fuck over people who are firmly in your ecosystem.

The carpenter comparison isn’t a good one. The output of the carpenter’s labor and (importantly) material resources yields a hard good and that process does not scale. Software on the other hand scales extremely well and the marginal cost of giving software away for free or selling it to the next person who wants it has next to no additional cost. The expense model of software enables economic models that would never work on physical goods.

Unlike hand crafted furniture, software has next to no durable value beyond the transactions it enables. Don’t get me wrong, software investment can be incredibly durable, e.g. banking and insurance mainframe apps built 50 years ago. But without a specific business application software itself is nearly worthless.

Writing open source software is probably better compared to published research. It’s an academic endeavor and also a way to put your name out in the world in a way that recognizes your contribution and may lead to commercial opportunities for you and/or your software.

We don’t pay for everything in the real world.

Music is the first thing that comes to mind. Nobody pays for music anymore. They maybe subscribe to a streaming service but most people expect to consume as much of the actual music basically for free.

Boxed software back in the day was something people would pay for, but like music it’s become an intangible commodity that people don’t feel they should pay for.

It’s a service economy now.

> have develop a bad habit of giving software away for free.

Thankfully, it's still early in the year, so this doesn't mean much yet but at least I can say it with complete certainty; so congratulations, you have said the dumbest thing I've heard all year!

> Does anyone get that feeling?

No, I don't feel bad about giving gifts. I don't feel bad about trying hard to make the world I'm forced to exist within a bit better even if that "better" is inconsequential. No I don't feel bad about not making the effort I'm able to produce, predicated on some sort of compensation. Neither compassion, nor the desire to try to help others is a bad thing! Why would I want to demand payment from people who I want to help?

I don't regret playing a positive sum game.

Especially when everyone around me is determined to play negative sum games, or force others into the same. Or in case of this question; have been gaslit so traumatically, that they feel they are wrong for trying to help other people without demanding compensation.

You're allowed to do nice things for others, without expecting anything from them in return.

Don't confuse gifts, with the effort required to exist in a "user hostile" universe. You might need to trade effort for compensation to 'survive'. But that doesn't devalue the positive improvement you're capable of, regardless of that reality. And it doesn't make it wrong to do so.

Open source, when talking about linux and related apps has mostly been a force for good. Improving competition, innovation, extending support for products, helping train & inspire young developers in the trade. Gates claimed it would destroy the software industry, and years later the industry grew much faster off open source than it would have otherwise, and made Microsoft more competitive than they would have otherwise.

That being said, there are negative aspects. Open source advocates can be a bit sanctimonious in the other direction. For example, complaints (not from the devs themselves) about corporations making loads off ffmpeg, or openssl, without adequately compensating them. Even though companies are employing the licensed apps as intended. Another issue is how entitled open source consumers can be: demanding free access to apps, or judging seemingly trivial apps for charging a fee.

Selling even a trivial business is hard work, and 90% of the time there's much more nuance to a business than meets the eye.

If someone chooses to donate their time for free, and it's not done out of spite to undermine a competitor, it's probably a good thing. But we could all use a bit more humility and introspection.