A world where people pay for software
1sub.dev
1sub.dev
If we can find a way to make sure every person has what they need to thrive regardless of their income, programmers can open source all of their software and we can enable the maximum value creation possible. Other engineers like those that design commodities like dishwashers and cars or important manufacturing or medical equipment can also open source their designs so that repair costs are low and innovative improvements are easy to apply. I genuinely believe this would result in a steeper and more rapid innovation curve as well as a better world for all, than a world where we try to monetize things which have zero marginal cost to reproduce.
A single paragraph excerpt: "Men are not good enough for Communism, but are they good enough for Capitalism? If all men were good-hearted, kind, and just, they would never exploit one another, although possessing the means of doing so. With such men the private ownership of capital would be no danger. The capitalist would hasten to share his profits with the workers, and the best-remunerated workers with those suffering from occasional causes. If men were provident they would not produce velvet and articles of luxury while food is wanted in cottages: they would not build palaces as long as there are slums. "
Could it be better? Obviously. I’m not convinced communism is the answer.
Maybe you're not aware, but it was the socialists who coined the term "capitalism", and their definition has no relation with the one you gave.
The definition is simply: the system where private property of means of production allow the accumulation of capital.
Also, think of the people who might help you with this - sewer-diving experts! You are essentially collaborating with them to displace their own roles.
This is another view common to most (Marxist) communists, the belief in society's ability to cultivate the 'socialist man'.
Another example to play around with is when you go camping with friends. There's some shit work that just needs to be done. People pitch in. The same with staying at a friends house or a vacation rental with friends. Or cleaning leaves off of the storm drains. We all do this sort of work because it makes our lives better. If literal shit was piling up in front of my house I would probably shovel it even if it took 8 hours.
Natural disasters are also examples where people do work for free without expectation of compensation. I think people are more like that than what happens in apocalyptic novels (even though I love reading them).
I think one thing people keep forgetting is that all these problems have already been solved for hundreds and thousands of years. You will never reduce inequality, abuse, pain, suffering. It's much better to contribute and improve what we already have rather than to rip it out and try "yet another variation of the same utopia that we've all been thinking about".
Build towards it, not "start again "
Didn't you have some assigned group projects in school? Perhaps some people are easily satisfied by carrying the burden of other people who they don't know and who don't appreciate them, but I'd wager a ridiculously high majority of value producers would not be. Humans are social animals, but we're individuals first and foremost and self-interest will always be the best motivator.
Is there some future where humans are engineered to be satisfied with a predefined role and purpose, amongst other traits? Sure. But until we get to that point, commune-style living is an absolute dud.
By the way, I recommend you visit and try living in an actual commune. My girlfriend told me it was the most disgusting living situation she's ever seen.
We still generally have a culture in the US of respecting our veterans and service members, for example. There is some social value in serving that's not material. If there wasn't, the material benefits would need to be more substantial.
I also visited a couple of Greek Orthodox monasteries and they were not just nice but beautiful. So for small scale communities with a strong cultural binding "communes" can totally work. It doesn't scale though.
First, they didn't literally write the latter:
A: every leftist I've talked to
B: every leftist I've ever talked to
Second, if true, would imply that every leftist they've ever talked to will always get asked "who will run the garbage system, and who will clean the sewer" which wouldn't make sense outside the context of having given a specific opinion on a specific topic first.
Hence the topic of conversation is implied as context.
Cleaning the sewers sounds objectionable. I think you shouldn't discount the idea that in a societal structure that's different from ours you'd remove some of the social stigma that comes from such a job. But at the same time, if you observed that very very few people wanted to clean sewers for whatever reason, and there wasn't enough supply to meet demand, then you invest more in technology that reduces the shortfall. As others suggested, automation.
The reason might be, most people do not like to be in the literal shit of others? It comes with actual health hazards btw.
"and there wasn't enough supply to meet demand, then you invest more in technology that reduces the shortfall. As others suggested, automation"
But we ain't there yet at all. What do we do, till then?
The sewage needs to run 24 h and not only if someone feels like taking a look eventually.
And as for ordinary garbage: mostly it is not a desk job, but physical labour to touch and move hundreds of different dirty garbage bins every day.
Dealing with that shit, should always come with good compensation. (whether money or social credits or whatever currency is in use)
Sure, but you iterate. We decided as a society that Polio was awful enough that we wanted to eradicate it. If we freed up enough effort that is currently wasted on chasing profits, we could eventually get to solving problems like "shit stinks and it sucks having to clean it".
Considering this, I don’t see how effort is wasted on profit, since the effort produced something that someone considered valuable. Do we have another way of computing value at scale? To date, I haven’t seen any realistic proposals.
I can see you haven't done any of jobs like that ever in your life. "Social stigma", lmao, that shit smells
> But at the same time, if you observed that very very few people wanted to clean sewers for whatever reason, and there wasn't enough supply to meet demand, then you invest more in technology that reduces the shortfall.
It's delusional to think every job that's undesirable but necessary could be automated and that it would be cheaper than ye olde good material compensation for doing something hard/unpleasant.
I mean, I'm all for it, but that won't happen to the level that would eliminate unpleasant jobs
I haven't, but I didn't say that shit didn't smell. My point was that one component of why some jobs are worse than others is social stigma. Working at a fish monger or in a butchers shop stinks, and you probably get way less PPE than a sewer cleaner would. But butchers and fishmongers have less social stigma.
> It's delusional to think every job that's undesirable but necessary could be automated and that it would be cheaper than ye olde good material compensation for doing something hard/unpleasant.
The fallacy here is that it _needs_ to be cheaper. Sewer cleaning is valuable. If it requires more investment to automate so that we have enough supply to meet the demand, so be it. The only reason we haven't already automated this smelly job is because it's easier to turn a profit if you just pay people peanuts. If profit is no longer motivating, you can make vastly different decisions.
I think if you can't find volunteers, you can have a lottery.
what happens if the lottery "winners" refuse?
If the winners refuse, they'll have a chance to explain themselves, and then they'll be judged by those who didn't refuse. Exactly what happens next depends.
What would you do in the scenario described for people who refuse any undesirable work?
If we had UBI, for instance, and people did not have to work in order to have basic needs (food and shelter) met, then the willingness to do unpleasant jobs like sewer cleaning will go down, and it'll be necessary to pay people more to do that work.
And the need to pay people more will then drive technological innovation that may today not be worthwhile because "just hire someone" is less expensive. And in a world with UBI, automating away unpleasant jobs becomes more of an unmitigated win.
(In case it isn't clear: I think "UBI plus a free market" is a much better system than "don't pay people but magically hope all the work gets done anyway".)
If there's a ubi, then there's price floor that is higher than a non ubi price floor, meaning that the median prices of goods go up, less taxes to find the ubi, and the ubi must then increase to meet the increased costs for a basic standard of living.
Well done you invented inflation.
If housing/shelter is a necessity, it might not be cheap. I think housing projects aimed to do exactly this. You'll eventually find 'poverty' redefined to those receiving UBI only, stuck in undesirable locations, who don't consider it true that "work is optional".
Another issue is policing, which is also increasingly expensive, and has all sorts of issues in the US. People like to just shout "fix the police", but have no answer as to how you can recruit for such a job.
(There's of course normal inflation in these places, like everywhere else, it's a by-design feature of most monetary systems)
Let me give you an example: If the government offers anyone buying a house an incentive of $10K, every house asking price will go up by $10K and wipe out the discount. The relative/competitive nature of the market opposes many en-mass pay-outs.
You might find one sucker, but not nearly enough
The problem clearly involves an unequal distribution of work.
If everyone is else being paid and you are trying to convince a single person to literally shovel shit for 8 hours then yes, that won't work. They will feel like they are being taken advantage of. I think this is a common feeling amongst all workers. If your boss asks you to work late you are much less likely to be pissed off if the boss stays late and helps out too.
1) Have you personally tried to put this idea to practice? If yes, for how long? Would you be willing to share some details? If no, why not? It doesn't take changing the entire society, you can do something like that literally now. Be creative, travel to a different random town twice a month and offer to clean toilets in a couple of buildings? Again, I don't mean to be snarky with this example, I just think working on 3D printers doesn't cut it as a type of difficult labor. Think more along the lines of going down into a mine, shoveling literal shit for 8 hours, etc.
2) Imagine, the society has actually changed such that everyone is supposed to do a couple days of difficult labor. What happens if someone refuses? A punishment? If there is no punishment, what happens if almost everyone refuses and there's not enough people to sustain this undesirable but critical jobs?
And monuments are only for the very, very few.
Are you saying that we can make communism work with… NFTs?
Even if you imagine software development to be generally fun, even the mundane, the rest of the workflow can be God awful boring. While Communism is a cool idea , it never works since you need incentives to motivate people.
By the way this is a decent job for an apprentice under supervision. It’s a good way to learn with minimal risk and young people are often willing to do this kind of thing. Then the veteran comes in and makes a few improvements to the QA system and hopefully it’s good for a while.
In the same way you want your 3D printer to not burn your house down you want your dishwasher to not flood your house.
Sounds very similar to me.
However, here are the list of release notes for LibreOffice: https://www.libreoffice.org/download/release-notes/
You can see man bugs were fixed in the latest release.
What may sound dreadful to you might be interesting for someone else.
While capitalism sounds nice in practice, it results in the destruction of the planet because the profit motive eats everything alive and leaves nothing behind for future generations.
A couple of people with a bunch of fixes attributed to them seem to work for Red Hat, and several contributors have Collabora email addresses. A fair bunch of fixes would seem to be from members of a LibreOffice team at some company (based on bugzilla comments and email addresses). One contributor seems to be from a company that does consulting related to LibreOffice.
A few fixes are from people registered with what look like private email addresses or with email addresses associated with the LibreOffice or other open source projects themselves. But they seem to be a minority.
That doesn't mean it can't be interesting to those people, or to many people, but it also doesn't mean most of the fixes were motivated by that alone.
(Also, fixing bugs is different than QA.)
> While capitalism sounds nice in practice, it results in the destruction of the planet because the profit motive eats everything alive and leaves nothing behind for future generations.
As always, that doesn't mean communism (or some other supposed polar opposite) would work. Or that those are the two possible binary options.
"The original goal of the VORON project, back in 2015, was to create a no-compromise 3D printer that was fun to assemble and a joy to use. It had to be quiet, clean, pretty, and continue to operate 24 hours a day without requiring constant fiddling. In short a true home micro-manufacturing machine without a hefty price tag. It took over a year in development, with every part being redesigned, stress tested and optimized. Shortly after the release a vibrant community formed around the project and continues to grow today. This community is part of what makes VORON such a special experience.
What was once a one-person operation has grown into a small tight-knit group of engineers united under a common design ethos. We're dedicated to creating production-quality printers you can assemble in your kitchen. It's this passion and dedication that drive us to push the boundaries just a little further. We build space shuttles with gardening tools so anyone can have a space shuttle of their own. Welcome to VORON Design"
People aren’t building a washing machine at home. That takes industrial machinery.
Or they can go spend time with their families which is a much better use of their time.
I’ll bite. Who builds the tools?
I prefer being told what to do so that I can use my mental capacity on things I care about.
I do not care about making a dishwasher or a 3d printer. I would rather pay someone else to do it, and I would rather that person has a team of people under them who can help me with trivial issues if I come across it.
I desperately do not want to waste my time with a dishwasher or anything else in the kitchen.
It's bound to happen at some point, right? There's a lot of people doing dishes.
No. As a hardware hacker myself, the benefit and draw is the fun of it, I don't want to have to hack my own dishwasher and make it work to my requirements, not maintain it.
Hackers usually write very bad code, in case you weren't aware
I don't think this is limited to just digital items like software.
I would absolutely use an open source dishwasher if I could ship my custom design to a manufacturer to build.
I'm absolutely sure someone would design one out of sheer annoyance with existing solution (if existing solution would be bad).
It would be interesting if system with very short copyright (say 3-5 years) would work. You'd still have leader's advantage for investing in development, but overall winner would be companies that can both innovate and fill the market and not just throw some ideas, patent them and live off people actually trying to implement them...
It looks to me more like a suggestion to give people a some kind of guaranteed minimum income, and abolish all IP laws.
Hence why open source maintainers are barely paid, and companies in the space rely on selling services, not software. If you want, as the title of the article suggests, a world where people pay for software, strengthen IP laws instead of weakening them.
Mises Institute "How Intellectual Property Hampers Capitalism | Stephan Kinsella"
I don’t see any suggestions to remove property rights. This was the bit of confusion I was pointing out.
There are "actual property rights" because an actual property is an actual property - owning one house doesn't mean you own them all. An idea is an abstract "property" that isn't like real estate at all, and most of the concerns highly subjective interpretation of scope and value.
If you produce intellectual work there are really only three ways to do that. Give it away for free and beg and provide services, accept some sort of feudal patronage (now reinvented on the internet) or have rights to what you make. The last one is the only thing that gives creators independence and compensates them directly, even if yes you have to settle subjective differences sometimes.
Anyone who wants to abolish IP needs to tell me how a novelist earns a living without being reduced to some sort of begging.
There is a lot of open-source software, and still software development contractors exist and do well, all the while they may use 90%-100% open-source stacks to solve a client's problem.
I'm pretty sure Alec from Technology Connections would if he had the resources.
Personally, I think that a lot of people who right now go into programming "because it's a good career", would instead do things that are equally creative but also capture other things high on the Maslow hierarchy — e.g. fame.
Personally, despite enthusiastically enjoying my programming career and puzzle-oriented problem-solving more generally, I'm still intending to retire early and become a novelist. If I could "thrive regardless of income", I'd do that right now.
You might try your novel, and one of two things could happen:
You find out you love it, you write a really good novel, and society wins.
You try it, find out that the actual experience of writing a novel is a drag. No harm no foul, you move on and keep trying things until you find something you are really passionate about and good at, and society wins.
Maybe it is programming but you just need a more interesting program.
The key part of what people would work on without needing to worry about money is that there is literally zero reason to assume that the thing worked on would be useful to society in any way whatsoever, it can be useless or even detrimental to it - the current mechanism of monetary compensation is the thing aligning the work to interests of others, remove it and you can't expect that alignment to persist.
Unconditional income is a solution to the problem when we don't need people's labor anymore - it makes all sense when people can just go off and do whatever without worrying if it benefits others enough to justify the basic goods and services they need, and the society is okay with that. But while we still do need the labor of most people, there needs to be motivation to guide that labor to the specific things society needs.
But I will still want luxury goods and I'm willing to work for them most of the time. I want a phone upgrade every few years which might be a luxury I couldn't afford under UBI. I like flying airplanes and certainly would need to work to pay for that hobby. But if I get burnt out and want to read books for a year then I could do that too!
I think a strong argument can be made that the current system does not necessarily align the work being done with the interests of others in a broad or universal sense. Think about a corporation with a very useful drug whose patent is about to expire. Allowing the drug to go generic would be in the best interests of many poor sick people all over the world (patent harmonization means even poor countries must follow US patent law or get locked out of global systems). However companies often find legal tricks they can use to effectively renew the patents for their drugs. This aligns with the interests of some people - the shareholders for example, but is detrimental to the interests of sick poor people all over the world.
And this isn’t a hypothetical, this just happened again two weeks ago with Johnson and Johnson and only a coordinated pressure campaign from some high profile YouTubers was able to get the company to relax their plans: https://youtu.be/tMhgw5SW0h4
However when there is no profit motive, people often work on problems that they personally need to solve, and there is often good alignment with the work they are doing and the needs of others.
More broadly, we can say that the current system does not necessarily align the work being done with the needs of most people, and that alternative ways of aligning that work must be possible.
Do we really need all of the programmers that are currently being employed? Will society collapse if there aren't 100,000 working on the next photo sharing app?
The important stuff will get done. Anything that is a luxury will get done only if someone wants to do it for themselves or if someone can convince another person to do it. Money doesn't need to disappear under a world of UBI, it's just not something that every single person on earth needs to participate in under thread of starvation and death.
> 100,000 working on the next photo sharing app?
hmm..
There are plenty of programmers that don't work for FB et al companies. A lot of modern infrastructure depends of custom software.
We probably don't need Twitter (although the cultural impact of SMN might be important e.g. #meetoo, arab-spring etc).
> The important stuff will get done.
Yes, it will. You know how? Because the importance will inspire more money to be offered.
Actually I am the lead engineer and maintainer on an open source farming robot project. I do get paid enough to cover my bills, but the pay is less than 50% what I could earn at any of the companies which repeatedly pester me on linkedin. But the work I am doing is more important to me than all that. I am doing the work for less money specifically because it is important.
In a world where we have community control of the means of production, what does it mean for work to be important? It means our community members need us to solve problems so they can grow food, make clothes, and build shelter. Caring for one another is in our DNA, literally! There is no specific monetary incentive required, the care for community members is already enough incentive. The only reason we need to pay people huge sums of money for some SAAS app is that the work is nearly meaningless to us. The money is the only thing that makes it worthwhile. But if we don't need money, we can work on what really matters. And when we open source the results of the work we needed, many others will find that it solves their problems too, perhaps with modest changes, so they don't need to reinvent the wheel over and over again. This means the work goes farther for the same effort.
The incentive structures are complex, and money still serves as a potent motivator for many to push boundaries and innovate. Remember, open-source doesn’t always equate to high-quality or innovative, and proprietary doesn’t always mean restrictive or uncreative. A balanced ecosystem where both proprietary and open-source software can coexist might be a more realistic and productive approach. I’m afraid that balance isn’t too dissimilar from the one we have now, so I’m sort of forced to go with Occam’s razor here.
As far as initial investment in the creation of the software - yeah, that’s programmer time. The point of my scheme is to lower the cost of programmer time because their needs are already met, thus lowering the cost of initial investment.
Hardware is a separate concern but I have a whole thing about how open source hardware tends to bring the hardware costs down to the lowest physically possible cost. Just look at 3D printers under patent ($25k) versus ten years after the patents expired and open source took over the low end ($250).
I’m not sure how Occam’s razor would suggest that the status quo is close to the ideal situation here. Those seem unrelated.
Just because someone is proposing something for a small slice of society, doesn’t mean they intend to propose something similar for all of society. For instance, insisting on free schools, free (rail) roads, free health care, free water, and nationalised energy plants doesn’t mean they want to make everything free, or that they want to nationalise everything, or that they are nostalgic for communist Russia or whatever. That’s just the Red Scare talking. The fact is, different systems for different slices of society can and do coexist.
Human nature is not limited to the environment we’re currently living in. Genetically we’re barely different from the people of a couple hundred years ago. And yet our ancestors lived under many kinds of societies. It would be a little presumptuous to assume the one we’re currently living in is the best. Especially considering how it came to be: remember that as Thatcher was saying capitalism/neoliberalism was natural, she did "nudge" things along by having the army pay a visit to workers on strike.
Even communism isn’t a monolith. It took various forms, which failed for various reasons. Sometimes it was direct outside interference, like how the Paris Commune was basically crushed by the national army.
Yup, a "small slice of society" that's just proverbially eating the world.
> remember that as Thatcher was saying capitalism/neoliberalism was natural, she did "nudge" things along by having the army pay a visit to workers on strike.
Unfortunately things never happening at times gets in the way of me remembering them.
> Even communism isn’t a monolith. It took various forms, which failed for various reasons [...such as] direct outside interference
Similarly to how perpetual motion machines took various forms and failed for various reasons, including direct outside interference.
Software may be everywhere, but last time I checked very few of us actually write it. Something similar can be said about food: everyone has to eat, but relatively few people actually grow crops. And even if we were to implement UBI for everyone, it’s an idea that was around for quite some time, with weaker versions of it implemented for decades now. It didn’t kill capitalism, let alone spread communism (whatever that means) all over the world — or any single major Western country.
> Unfortunately things never happening at times gets in the way of me remembering them.
Sorry, my facts weren’t quite right: https://www.theguardian.com/politics/2014/jan/03/margaret-th...
Thatcher only planned to use the army and declare a state of emergency. Actual repression only used regular police forces… resulting in quite a few injuries, as well as trumped up charges (that turned out to have been fabricated by the police if my link is to be believed): https://www.history.com/news/margaret-thatcher-miners-strike... Also remember what a strike is: people stopping to work because they don’t want something. Something they reject so badly they’re willing to sacrifice their income to prevent it.
So my main point remains: what Thatcher did was far from natural, not to mention contrary to of the will of her people. You could deny that if you want, but to be honest it would be more an expression of your allegiances than your actual beliefs. (Then again, people have an uncanny ability to tailor their beliefs to suit their allegiances…)
I'd be skeptical of any system where there's no opportunity to get ahead as people will either find ways to take advantage of the system and screw others over, or the system becomes unsustainable as populations shift in size.
More broadly I would say that many people believe the current system actually does not serve people well. We have a very small portion of the society that owns the means of production and 99 percent of the population have to deal with the dictums of those owners with very little say in how production is allocated. This leads to a world where the output is heavily slanted towards the ownership class while everyone else is fighting for scraps. A world with community ownership of the means of production would mean MUCH more wealth for the average person, so concerns over resource allocation would be less of a concern.
The point anyway is that in the current system I certainly don’t get to decide what my “level” is beyond trying to work hard, but in a community ownership model I would have much more say.
As you have said we have been trying different value systems for thousands of years. No reason to believe attempts to improve the system should not continue.
You seem to be trying really hard to avoid the word "communism". Is it a banned word in HN?
If I design something, how do I get compensated for the work if anyone can clone the work? Why is manufacturing counted as "compensated actually-doing-something" while design/R&D isn't?
In other words: Necessary value can only exist, if other humans have a problem and depend on somebody/something to solve it (temporarily).
Explaining valuation from individual desire is hard, but group desire depends on techniques to control the masses and in between are many layers of uncertainty.
people advocating for this are on the receiving end of a very extractive and destructive system
This is not what I wrote or meant, but I do agree that it could be understand like that. It would be of course better to measure necessity with something else, but so far approaches to replace it have failed for various reasons.
For me, it is quite gratifying to ship, but for many people, the 50% (or more) of shipping software that is non-coding work, isn’t fun, and is usually deprecated, during the planning process.
Examples are things like end-user documentation (not just maintenance docs), training, error handling, accessibility, localization (a huge task), continuing customer support, legal checklists, patent searches, copyright searches, branding strategies, glossaries, distribution channels, evangelists, usage feedback support, synchronization between all of the above, and the Web site, etc.
Big fat, not-fun pain, but needs to be done. A lot of this stuff really needs to be considered before the first line of code is written, and the journey can take years.
The app I’m working on has been in development for over two years (but to be fair, I did “wipe the slate,” and restart, after about a year). The basic “business logic” is in one SDK that I wrote in about a month and a half. All the rest of the work has been chrome.
I know people like to rail against it, but I actually like the SAAS model. It keeps incentives aligned. It used to be that I might shell out $200 for a piece of productivity software. Now, I might pay $10 a month instead. The thing is that under the old model, a company was incentivized by make a sale but retention didn’t matter. Now, a sale is almost worthless, but retention is very valuable. Yes, over time I will pay much more with SAAS, but I also have companies that are incentivized to keep the software working. It doesn’t matter that I have a perpetual license on accounting software I bought in 2005… it no longer functions with my operating system anyway. SAAS helps solve this problem.
There there's even less incentives to fix bugs, fix broken functionality and god forbid new functionality.
As for bug fixes, do you think I am more or less likely to recommend your software to my friends if it is full of bugs and you don’t fix them?
Probably less so for software you use daily or make your living off of.
> those that do often have extremely valuable products.
I agree with that. All those products above are valuable and useful to me. But, the price is not commensurate with the value of the product alone. The price only makes sense when you add both the value I get from using the product and the pain I would experience by not using the product anymore. The product developers work hard not only to make the product useful, but also to punish you if you leave. That's the gross part.
And in practice, what does "get you hooked, take your data hostage" mean? I can't think of many SAAS subscriptions in my personal life where this is a real issue.
Some SaaS platforms bill just enough to stay under the cost of transitioning to a competitor (or building first party) to maximize revenue.
I find SaaS products, including ones I have paid for, disappear at a much greater rate than the rate at which the desktop tools they replaced stop working.
There's also next to nothing I can do as an end user when they do disappear. If I'm very lucky, I get a limited window to be able to export a portion of my data. But we've eroded data formats to the point where even if I can export my data, there might be nothing to plug it into. What good is a CSV, even, when what I need is a tool that processes the data in the CSV? There's no option for me to keep an old machine or a VM around and self-support on a discontinued piece of SaaS.
That's to say nothing of the price hikes. $10 a month today becomes $14.99 next month, $17.99 in a year, and before you know it the proprietary system you've locked yourself into now costs five times what you originally paid. Sure, they might add some more features, but since it's SaaS, in many cases you have no choice to seek out a different vendor to provide the same feature, as again, your data is locked up in a format you can't easily extract and work with elsewhere.
For example, I've used Adobe products for a very long time, and they get a lot of flack. I was an extensive user of Photoshop (PS) and Lightroom (LR) for a long time.
However, the old model was - PS pay $600 once, then $200 for updates every 2 years or so. LR was $200/100 as I recall. So your run-rate for both was over $150/year (factoring in the initial $800). This was in like year 2000 dollars.
For $150 2023 dollars.. I get constant feature updates, cloud storage & sync, licensed to run on at least 2 machines, etc. Inflation adjusted this is nearly half the price of paying $150 in 2000.
I'm also intrigued by how many very wealthy people are unwilling to pay $10/mo to stream music/video and/or share passwords, when I recall paying $20/CD at the record store in 1998 dollars. You can listen to basically every song you want for the year for the price of (inflation adjusted) 2.5 CDs purchased by my mallrat teenage self back then.
I think we are all just very spoiled..
The thing is those startups sometimes make very useful software while they're around. I ran Sparrow (an email client from > 10 years ago) for years after the company that made it was shuttered and acquired by Google. If Sparrow was a SaaS product it would be gone 30 days after the acquisition was announced.
> SaaS from established firms seems to be more durable & maintained.
I'm sure many other users have noticed this too. I wonder if it makes breaking into the software space as an upstart firm harder than "in the old days".
If I'm buying a subscription, it's an obligation. I'll have to spend money from now until I die or I'll get reduced QoL.
Even if today I have spare $200/month, that might not be the case tomorrow. Maybe I'll get fired. Maybe government turn my cash into paper. Maybe I'll have to pay everything I have to doctors to save my live or health. I'll still have bought songs, but I'll no longer have access to the streaming service.
Content constantly changed delivery mechanisms and people had to buy new media/devices every 5-10 years VHS/Betamax -> Laserdisc -> DVD -> Bluray / HD-DVD -> Bluray 4K Vinyl -> 8 track -> Cassette -> CD
For many things there are cheap/free alternatives or you can opt for the fixed cost up front version.
Paper books/eBooks/CDs/DVDs/MP3s can still be purchased outright. Streaming services have ad supported free tiers. You can go to the library, turn on the radio or tune into over the air TV signal. You can buy an old version of photoshop/lightroom put it on an old computer, and don't expect updates. Etc.
Then I'm sorry you didn't play SimCity 2000 (-:
For sufficiently valuable software, people will hold back on an older OS to keep using the software.
A lot of high-end film scanners will come with the 68k or PowerPC mac that’s used to run the software, because the alternative would be spending $20-30k for a new one. And industrial systems run on similar models.
I'd be surprised if many SaaS products from today will still be available in 28 years time.
I'd assume that many 32bit programs from Win95 era still work natively on Windows 11, and for the rest (including 16bit and DOS programs) you can use compatibility layers (e.g. Wine) and emulators.
When Boxed software dies, you run it on your emulator and your files can be read.
> Content constantly changed delivery mechanisms and people had to buy new media/devices every 5-10 years VHS/Betamax -> Laserdisc -> DVD -> Bluray / HD-DVD -> Bluray 4K Vinyl -> 8 track -> Cassette -> CD
You can still find VHS players. You can't get data from SaaS app that died yesterday
I don't think you have tried too much to run it.
You should hang around more in retro-gaming and retro-computing communities. They invest a lot of time, blood, sweat and tears to get to run some old software on modern devices, or preserve old computing/games devices that is able to run this software.
Because everything is a recurring automatic charge to my credit card, and one more thing to try and keep track of and continually reevaluate if it's still valuable enough to me to continue paying for it.
When you bought a CD you didn't have to from that point forward continue to think about if you want to continue paying money to have access to the CD.
Subscriptions, on the other hand, match how consuming media feels to me - I spent time doing something I liked and the cost enabled that.
Looking on it from a pure economics point of view, clearly it makes more sense to buy a CD and have access to it forever from that spend. But psychologically it feels very different
We buy thousands of items and for most people it’s impossible to know how much something “should” cost. So we anchor our expectations to what we know.
Web software was mostly free for years because it was either ad-supported or a speculative venture capital investment. Or a dev releasing it for free thinking that “if we get lots of users we can raise money and figure out monetization later”. The Social Network came out in 2009 and there’s a scene where Zuckerberg was made to look like a genius for rejecting monetization. People who wanted to be like Zuckerberg made stuff for free then hoped to raise money. Finally add in many developers made software for free for personal or ideological reasons.
The end result is that consumers are psychologically anchored to expect that web software “should” be free, an app “should” cost $1 at most, etc It’s not really about the $10 as much as people don’t like feeling ripped off and paying $10 for something that should cost nothing makes them feel ripped off.
An experience is burned into my brain when a friend who was an aspiring yoga teacher was doing a Twitch stream for 10k viewers as part of an online festival but at the last moment needed to stream to Twitch from his iPhone. There was an app that worked perfectly that cost $15 but he almost sabotaged his whole show frantically searching the App Store for a free alternative because $15 was a ripoff. He caved eventually and unhappily, then to celebrate the stream led friends and family to a sushi restaurant that was $200/person . It was never about his inability to afford $15 but his psychological feeling that a $15 app is a ripoff. But fancy sushi “should” be expensive so $200 is a fair price.
We are very slowly seeing this change as interest rates rise and everyone understands software monetization better but it’s a gradual process. For whatever reason it’s often devs themselves who push back the hardest against monetization, in their warped world view someone charging $10/mo for a SaaS is deeply unethical but going to work for some FAANG company and fighting hard to maximize TC is completely fine and in fact encouraged. That way your boss worries about monetization and you are free of any moral qualms about it. FAANG devs complaining about subscriptions, privacy , and paywalls are quite common and similar to vegetarians who only eat beef and pork but avoid eating cows or pigs.
Google is infamous for shutting down services. And the same thing regularly happens even to large companies when they get acquired by even larger companies who then shut down their existing services and try to force migrate everyone to the parent's offering.
Conversely, stalwarts like Oracle and IBM will often continue providing a service indefinitely. For a price. Because once you're locked in they're happy to keep taking your money. All of your money. Forever. This is... differently terrible?
> the old model was - PS pay $600 once, then $200 for updates every 2 years or so.
But many people would just keep using the original version indefinitely. Paying $800 once is a lot less than paying $150/year until you die. It also lets you choose whether you want to pay more for the new features or save money because you don't need them.
And you can't use the Consumer Price Index for software because software inflation is negative. As more people get computers over time the size of the market increases but the fixed cost of developing the software is the same, so the amortized unit cost goes down and in a competitive market that gets passed on to the customer. In the 90s people paid money for Unix and zip utilities and web browsers and now they're all free because they have such a big market that the unit cost is effectively zero.
SaaS things remain not because they don't follow the same cost structure but because lock-in through proprietary formats and training costs and migration costs keep people stuck on the thing they started with, which in turn keeps competitors from achieving the scale needed to get prices down.
The way around that was to change file format so if you're in industry using that file format (say .PSD Photoshop files), at some point you won't be able to open files from your clients...
coughPantonecough
I think when it was $10 or $15 a month for Netflix, and you got everything, that people did pay. The problem now is that it’s $20 a month for Netflix, and $20 for Hulu, and $25 for Disney plus, and $20 for HBO (ahem, “Max!”), and $15 for Amazon, etc. Fragmentation has meant we’re back to a cable bill worth of cost on top of the actual internet (and possibly actual cable), and half the time you still can’t watch the thing you want to watch (some seasons not currently in rotation etc).
(Also, the cable model was driven by bundling, you may not watch a bunch of discovery channel or scifi channel personally but you're paying for them regardless. Most people didn't buy that many optional extras, maybe an extra movie channel or sports or something, but, most people were never racking up $100 of ala carte services either. A lot of people would have spent a lot less on cable tv if they were allowed to unbundle.)
Anyway the “piracy is an availability problem” line isn’t always true. A lot of times it’s a price problem too. Even if Super Netflix came out with actually everything on it for $99 a month I don’t think you’d get a lot of takers. There is a number where it’s worth my time to pirate even if it’s available, it’s not like Best Buy didn’t carry music or movies pre-iTunes/Netflix, and you could always buy esoteric bands on the web etc. Netflix solved availability for $10/month and that last part can’t be severed while retaining the truth of the insight.
You might say it’s not just steam that ended piracy, but steam sales, and as they’ve slowed down so has my proclivity to spend. I’ll buy any old crap at $5 or $10 if it looks fun, and throw it on the backlog, but for $30 or $40 it has to be something I’m specifically interested in playing in the near future.
This summer sale was the first time prices have been decent in a long while, for the last 5 years the discounts have been meager and the base prices remained pretty high. 75% off a game you're still trying to get $60 for 3-5 years after launch isn't exactly the deep discount it's presented as. Konami and Capcom are awful about this.
Isn't the line "piracy is a service problem"? That covers availability price, and even user experience (sometimes piracy is an even better experience than paying, like in games that use Denuvo)
It deliberately changes in the interests of the business at the expense of the customer.
Updates are forced, cannot be backed out, lock in the customer, degrade privacy, remove features, upsell, and more.
There needs to be a way to attract willing customers and maintain a respectful trustworthy relationship. Saas doesn't seem to do it.
I'm willing to pay $10/mo to play music but that gets me access to near-all music I want access to, on all devices I use. A CD can be just in one place at once and needs a specific player. So it's a terrible comparison.
Building with boring technology on the other hand can remain very low in monthly costs and still provide a lot of scale and capacity for users.
Sure, you can get versions of your data that are technically usable/readable by other software out of Google Docs or Figma, but you’ll never have a fully fleshed out original because nothing else can read those formats because they’re not documented and can change at the whim of their creators.
There is a dramatic difference between a world where some software is SaaS but most is owned vs. our current environment where everything is SaaS. It's the gestalt of the SaaS economy you have to look at and not the isolated cases.
Moveover the issue isn't "productivity software" really. That enhances your life. The fact I can't even own some books, music, simple software, movies, etc is the problem. It creates an environment where the average person is tied down with so many subscriptions just for things they'd normally buy once that they become more poor than would be otherwise.
I am at the point where piracy now makes more sense again and I will basically refuse to purchase any more software. To be honest, I don't care who it hurts. I am tired of being victimized by companies. One of the only software I pay for is the Jetbrains product suite because they are a company whose SaaS model is actually cooperative. Sublime is another one who has more than acceptable terms.
How is it a company can give me recurring charges and I have no ability to turn them on or off?
Of course, the flowchart is just one example. The same can be said for a lot of utility software I only need occasionally.
By the way, if you are on Apple ecosystem, I recently tried the newly included Apple tool, Freeform, and found it to be surprisingly capable.
If I only use flowchart software 2x/yr, I can just pay those two individual months and nothing else. Six times over three years is way cheaper than buying it outright ever would have been. Plus after three years I'd be needing something that the newer version introduced anyways.
So in your scenario SAAS saves a bunch of money and keeps your features and OS compatibility up to date.
You just have to remember to cancel it once you're done each month, but that's easy enough with a calendar reminder.
This way you get to save a lot of money over buying it outright.
A long time ago I worked out an agreement with a local gym. To avoid a membership that I would only need for a few months (I was living in a hotel temporarily with no access to my own equipment), I paid $10 each time I showed up. This could be a useful model for rarely-used software.
But it already is. Pay for a month and then cancel. Repeat each time you need it.
I don't understand why people are assuming you have to pay continuously for years instead of just paying for the months you actually use.
Companies are fully aware that many, many people forget about charges on their card and leech off those for extended periods.
And it's as easy as setting a calendar reminder.
I do wish you could pay a month without auto renewal turned on, but it's also not a big deal. You can also often just cancel auto-renew immediately after paying, so no need even for a calendar reminder.
I don't think you realize that people willingly pay for convenience.
JetBrains figured this out already. Sell me a perpetual software license that I own and charge me separately to get the updates.
For example JetBrain's products: Oh look, we have changed our icons/ updated UI/ improved UX/ etc! We know that nobody asked for this, but it will be shoved into your mouth anyway!
Pretty much sure you can find that everywhere.
There's thankless work such as programming language development, operating systems (Linux), databases and Linux distributions that are profoundly valuable. Even just wrangling them from a devops perspective is painful though.
I've never paid for any of the work that went into Ubuntu, Python or Java (I use Corretto) or MySQL or C.
I kind of want a community of people that help run a sideproject PaaS and solve the things I would prefer not to work on. Servers that are up-to-date and patched and scalable and robust.
I use OmniNotes on my Android phone, I use FreeFileSync, Typora (paid software), IntelliJ Community.
What's a price that you would pay pay for your open source software?
If it was like Spotify, spotify is like $9.99 a month and apparently 210 million susbcribers according to Bing search "spotify number of subscribers". That's a fair amount of people's living costs to pay for.
You’ve almost certainly paid for them, just not directly. Some share of the cost in the supply chain that delivers you goods and services will inevitably end up with the large enterprises who sponsor or develop those projects.
It was not that all funding or contributions are made by large enterprises.
I applaud efforts to more directly support projects that give you utility. It’s becoming easier for individuals to do that (as evidenced by the article).
"Pay to download or for other services: Not worth it; users can find the software somewhere else and they don't need your other services."
So users won't pay a one-time fee, but instead they will pay a subscription to get that one software they need? They won't "find the software somewhere else" if it's behind a subscription, but will do so if it's behind a single payment?
Also, it doesn't have to be a subscription. The payment is 100% up to the developers that you pay, so they could sell a one time payment and register a lifetime subscription in this system for that.
However, OP's resource allocation model (each user determines which developer gets their payment) doesn't make sense to me. I think it would be better to prototype multiple resource allocation models in parallel and see which are most fair and sustainable over time.
I could maaaaaybe see it working on iphone, a premium apps service, where they have a lot more control
OAuth might one way to enable it. Instead of logging in via Google/Facebook/Apple you could login via "SaaSBundler", this would register you've used that product which could help allocate the distribution of funds. Might need some more work if you wanted to distribute based on time
It's nothing about what it actually does. If your business model:
1. Targets general people, rather than a very specific niche group 2. Requires users to carefully read a paragraph of text to understand the benefits
It just won't work. There is a reason that insurance salemans exist.
What if the person does make decent software, but is a huge influencer?
Why not opt for the Spotify model? Usage = money. Why turn this into a popularity contest?
Then they would probably be able to make more money selling subscriptions than other developers that are less known. I don't know how different that would be though from if they sold physical products. One important thing here is that there is a limit to how many subscriptions one developer can sell. This is done to emulate physical products as much as possible.
Also, they would probably sell the subscriptions for a higher price than other developers, since they can, which would mean that people who don't know about that person would buy from someone who is cheaper.
> Why not opt for the Spotify model? Usage = money. Why turn this into a popularity contest?
That means there has to be usage statistics collection in all software. Since the software has to be open source, that could be abused a lot, including removed. I also don't like the idea of having any requirement like that on the software. It would for example require that the software has access to the internet which doesn't work well for some software.
I mean that's the literal point of this website, no? In the real world, a sale is a sale. Imagine going into BestBuy, leaving $100 at the front, telling the clerk to put it all into Sony (because Sony is 4 cool kidz) and then just grabbing a nVidia graphics card and Apple AirPods.
> One important thing here is that there is a limit to how many subscriptions one developer can sell.
Definitely interested in seeing how this will play out. Sounds like a recipe for either (a) a super cool, tightly nit community with high quality contributers who care about their software or (b) a dump for software which woudlnt cut it in the real world market.
>Also, they would probably sell the subscriptions for a higher price than other developers, since they can, which would mean that people who don't know about that person would buy from someone who is cheaper.
My game theory senses are tingling. Why would I incentivize people into buying other people's subscription while gaining access to my stuff?
>That means there has to be usage statistics collection in all software.
You could always implement it on your end, right? Could be download based, or whatever. A one time thingy.
Ok, I see what you mean now. I think the distribution of who gets the money in 1Sub would be similar to donations, with two remedies:
- The owner of the paywall that made you subscribe gets a 10 credits bonus as described in [0]. This will lead to more money to the people who make the things that you actually try to use.
- If someone is popular, they will either run out of subscriptions to sell, or they will sell them at a higher price. In either case that makes it possible for the less known developers to sell more subscriptions.
Whatever revenue you generated that is above what you got paid would go towards the less "lucrative" projects and maintainers keeping the open source going.
Sorta like expanding the mobile phone experience to encompass your whole internet experience, so you can choose what services you use, and where they're hosted, and those two things are fundamentally decoupled.
One such app could be a sort of 'charge card' for websites, which would pay them pennies, or larger tips if you like, instead of having to see ads.
Another might be a connection to a search engine which allows you to tailor _your_ search experience instead of it being optimized in e.g. Google's interests with all the commercial stuff at the top.
Heroku?
casaOS : https://casaos.io/
Kagi solves the conflict of interest aspect of search engines like Google. (No affiliation, just a satisfied early adopter.)
If you install e.g. a Photos app, then that'd be a viewer app + cache on your phone; a bounded-size cache on your NAS or ISP gateway-router; a thumbnailing and face-detection background worker started in your ISP's edge DC; and a primary store in some cloud.
If you install e.g. Minecraft, then the server for that game will dynamically reposition itself (and migrate its data) between running embedded on device, vs. on appliance-compute on your home network, vs. on your ISP's edge-compute, vs. on the cloud — depending on whether you're playing single-player, vs. multiplayer with someone else on the same network, vs. at least one player being elsewhere in your region, vs. people connecting all over the world. (And, of course, when nobody is connected to it, the server should quiesce to just being dead state and then gradually have that state "evict upward" toward the cloud.)
IMHO a major part of this would be getting ISPs to sell commodity edge-compute power to OS vendors, both in-DC and in-home-network (presumably by putting addressable application processing capability into ISP gateway routers.)
The closest we have to this is app stores - and look how everyone moans about them.
In world when people would rather throw another $5/mo on another single service doing the thing.
I do think it might've been pretty popular if the experience was truly seamless but that takes a lot
I can't even imagine how to make it profitable, considering this market (seems to) be much smaller than App Store.
If I'm a developer and get to chose what to charge, that means I can ask people for $0.01, and they would get access to everything from all developers of this "platform"?
The example on [0] where a developer pays credits when they get a subscriber is confusing. Should Devs "top up" somehow?
You can do that but you will not make a lot of money that way. The number of subscriptions you can sell is limited so if you sell all of them for $0.01 you will probably wish you had asked for more and when you have sold out, only the more expensive subscriptions sold by other developers remain and they will make more money than you.
> The example on [0] where a developer pays credits when they get a subscriber is confusing. Should Devs "top up" somehow?
I don't know exactly what you mean by "top up" but the credits are turned into subscriptions when sold. This is how we make sure the developers can't sell infinite subscriptions. The plan is then that with time, the developers will get more credits so that they can sell more subscriptions. How fast they will get more could depend on the current value of their account, where the value could be calculated from the credits and the number of subscribers they have.
So are you then implicitly setting the price yourself because anyone who doesn't charge enough can't get more credits?
Suppose someone develops an app which takes hardly any effort to make -- it's a hundred lines of code -- but it does something common that everybody needs so if available for $0.01 it would have a hundred million users. Which would gross a million dollars and more than pay for the development of the simple app, so the developer is satisfied with that. But to do that you'd have to let them sell a hundred million subscriptions for $0.01 each.
Now let's go toward the other end of the spectrum. Some app which is specialized and requires a million dollars of developer time but only has a market of 10,000 customers. Those customers would pay $100 each for it, if they had to, but not if they can buy into the system somewhere else for $10 (or $0.01) instead.
In general, who is going to buy a fungible subscription for significantly more than it's available somewhere else? How do you handle the fact that the development cost of a thing isn't proportional to the number of people who use it?
Everyone can get more credits. The idea is that when we think we need more subscriptions to sell, every developer would get a number of additional credits that is proportional to the number of credits they have (with active subscriptions converted to credits for the calculation).
> But to do that you'd have to let them sell a hundred million subscriptions for $0.01 each.
That would be very difficult for them to do since the number of subscirptions they can sell is limited by how many credits they have.
> Some app which is specialized and requires a million dollars of developer time but only has a market of 10,000 customers.
If you make software for only a few people and you need a lot of money then I don't think this system is for you. It is mostly for developers who make software for everybody.
This is what I mean by implicitly setting the price. You set it indirectly by rate limiting the number of subscriptions.
A service with high cost and low volume gets priced out, even if it's only somewhat above average, because people can buy a subscription from someone else for less.
Conversely, if subscriptions are rate limited then no one has any incentive to sell them for less than the market rate, which is in turn set by supply and demand (and you having your hand on the supply knob). Why would anyone charge less, or pay more, than the median price?
Then anyone who needs more than that is priced out, and if you allocate credits based on how many people sign up or use a service, the service that provides only trivial value but to a large number of people gets a ton of credits disproportional to the value of their service.
Software is easier to produce, sell, and distribute than any physical product. You don't have to worry about warehouses filled with unsold inventory. You don't have to worry about quality control and returns. It still blows my mind how much easier it is to run a business that deals with bytes instead of atoms. The OP talks about software having no copy protection, but Amazon sells DVD players and cordless drills for $30. Imagine for a second how hard it is to compete with that. Competing with Google or Microsoft or some startup is a walk in the park in comparison.
In software the hard part is making an excellent product. And let's face it, that's where most people fail. It has nothing to do with monetization.
Maintenance, addition of new functionality, bugfixing, porting to other platforms etc. takes easily 10x-50x time than the initial release, and eats the vast majority of the developers' time and energy.
This is where "not being paid for your work" translates into abandoned projects.
In the case of Apple, keep selling new hardware. I can't remember if they ever sold their software in the first years of Macs or if it was bundled with the hardware.
In the early OSX era they used to sell their office suite separately. Eventually it got bundled with hardware for free. They still sell some software, like Final Cut Pro.
For most software that can be sold in a box, without an attached cloud service, this approach works.
EDIT: Also some fraction would be using them on computers that literally haven't been upgraded or connected to the internet for a decade or more.
Not receiving new features is VERY different from not receiving maintenance. It is wholly implausible to believe that there has been zero energy spent on keeping those codebases working in the past 10 years.
You don't have to believe me, I imagine practically every reader on HN has the means to verify this for themselves.
> Plenty of people are using Word, Powerpoint, and Excel 2003 just fine
Are you claiming that a reasonable majority (for the sake of discussion) of this plenty of people are using Office 2003 on Windows XP machines??
I'd doubt it. More like there's plenty of people using old software in modern versions of Windows. The maintenance work, of course, exists and has been done indirectly, by Microsoft, in the development iterations of Windows itself.
Whether or not they make up the numerical majority of all extant users is simply irrelevant to the point of 'Plenty of people'. It's easily many, many, thousands.
https://www.cvedetails.com/vulnerability-list.php?vendor_id=...
So you can try it out but don't open any documents, or run it while connected to the net. You'd better also not insert any images. Have fun!
We could also have a post "World where bad people don't try to break your software"
Office 2016 is going EOL in two years.
That's from Microsoft themselves. They do not hide these facts or make it hard to find.
I find it mindboggling that a simple program like text processors have to be continually updated for decades. Just program it right once for god sakes.
Your assumption that a word processor is a simple program is something you might want to consider, at a low level handling text rendering in a word processor is highly complex work. Besides text encodings regularly evolving and changing over the years especially in the pre-UTF-8 world (but even with Unicode), there's also the reality that security threats evolve over time, and once threats are discovered old code that once seemed fine becomes insecure and dangerous. In computing the reality is that there's constant change driven by supporting a regularly changing computing environment, security fixes, bug fixes, increased computing power permitting new features that are then implemented and new ideas appearing, et al. Software will always be changing, that's the way things are, there's good reasons for this. Trying to oppose that reality with an unrealistic model that doesn't account for the causes of change just leaves you misunderstanding the way the industry works.
This is in fact how all software worked until, I don't know, about two decades ago? Things being patched was a big deal, a voluntary manual process, and didn't happen often. The update would even have a well-known name like "Service Pack 2".
The idea that all software must be constantly maintained is recent and the assumption that it is necessary is mostly self-imposed by the software business. Users don't share this assumption, and in fact on many products, updates are viewed mostly neutral to negatively, other than perhaps critical security updates on products that are used in connection to the internet or untrusted data.
Even if they don't work on maintaining Office 2003 directly, they indirectly work very hard making sure every subsequent version of Windows does not break Office 2003.
It's backward compatibility if Word 2003 runs on the later Windows versions - like Windows 10 and 11. I don't know the answer to that, but I'm sure someone here does.
Though it's possible to mix and match so the OS backwards compatibility isn't the full story.
i.e. a launch copy of Word 2003 works on later OS updates, yet the final patch version of Word 2003 also works on a 2009 launch copy of 7.
If you don't understand Excel's history, it's better to not make such a bizarre claim.
What part of my claim is bizarre? My claim is simply that Word and Excel had 20 years of history prior to the 2003 release. Your claim that it was originally written on a different OS is not really a reasonable counter-argument. The Windows version of Excel came out 2 years after the Mac version, so that only knocks the history of the "Windows" version down to 16 years.
And that those were in turn based on the ideas of Von Neuman & co. from 1945 of tabulating numbers efficiently, and so on and so forth in roughly equivalent leaps all the way back to the first abacus.
It's so reductive of a perspective that it's self-defeating, since no human being, including you, could ever actually comprehend the entirety of technological development, or even just the post-1945 developments.
I think it is a pretty clear line between attributing the quality of a piece of software to two decades of prior development at the same company, with its own continuity of developers and institutional knowledge, as opposed to the general benefits all software gains from the industry advances it builds upon.
Unless they're also using computers and OSes from 2003 (spoiler -- they're not because those OSes wouldn't work with today's internet), those people are benefiting from untold efforts in the meantime to maintain their OS so it has that compatibility with 20 year old user space code.
That sweet sensation of being owner of what you paid for comes as a bonus.
Nowadays, software is different from the CD era, where you bought a game/software and that was it. Nowadays, people expect the software to be maintained, kept up to date and always compatible with the latest changes (new OS versions, compatibility with other software, etc.).
Maintenance is the high cost of software, not building it. This is why I sell my products with a perpetual license but with paid yearly updates. I can not work for free indefinitely as all the "lifetime" licenses promise.
First, some of these problems are created by software developers themselves. In particular, shoving in an online component where one doesn't need to exist basically guarantees that you will have recurring costs and the need for constant maintenance.
Second, Microsoft is much more careful about maintaining backwards compatibility than Apple. I can generally fire up 10+ year old software on Windows 10, no problem. The same is sometimes true on OSX/iOS, but often not. The increasing popularity of Apple products and the lower priority they place on backwards compatibility has definitely made developers' lives harder.
Having said all that, I don't think everybody expects constant updates. I think power users, especially, are used to running what works for them for long periods of time. You probably can't build the next Google on this, but a lifestyle business? Certainly. Just look at Pinboard and it's lack of enhancements or UI overhauls - and that's an online service.
Engineering projects usually have a finished state. Software engineering is no different, no matter how much the industry wants you to believe otherwise.
Underlying hardware/OS/firmwares/JVM/etc change.
Dependencies break.
Security updates.
Etc.
Engineering projects usually hand off maintenance to their owner. Your house/car need maintenance. Your cities roads/bridges/tunnels need maintenance.
The difference with software is that maintenance is done by the producers as they own the code.
OSes also can be "excellent products". They don't need yearly updates, there's nothing inherent to them that would prevent them from being made perfect, finished and never updated again.
The only case when an otherwise perfect OS would truly need to update is when new hardware capabilities require OS-level changes to support. Sometimes it may be beneficial to expose these new hardware capabilities as APIs for apps to consume. But again, adding new APIs shouldn't break the existing ones. For example, on phones, this would include things like notched screens, fingerprint readers or multiple rear-facing cameras.
> Dependencies break.
Don't update dependencies. Pick one version that serves you well and stick with it forever. I'm serious.
> Security updates.
It seems like we've already realized that writing code that deals with complex data structures received from untrusted parties in memory-unsafe languages like C is a terrible idea. If you exclude memory safety vulnerabilities, the attack surface shrinks drastically. You'd run out of security vulnerabilities pretty fast if you'd have any to begin with.
> Your house/car need maintenance. Your cities roads/bridges/tunnels need maintenance.
Houses, cars, and road infrastructure are made out of atoms and exposed to elements and stress of our imperfect real world. They wear out. Code doesn't. In 100 years, the bits would be the same they are today (as long as you use a reliable enough storage medium).
theres this thing called the internet, to which the OS connects, filled with adversarial actors, so no this is not correct at all
Why?
There's a thing called formal verification of software.
The perfect OS doesn't exist yet. Right now, I'd rather use some OS than no OS.
Why a perfect OS doesn't exist? Good question. Maybe because the programming field is relatively immature so we're still figuring things out and we don't apply formal verification to everything. Compare that to say, architecture, where we can calculate how much weight a structure can withstand. Or the other way around: what do we need to do to support an X amount of load.
I guess the stakes are lower too. I wouldn't walk on a wobbly bridge, but I don't mind if a desktop app I use crashes occasionally under unusual circumstances. Critical software (say, aviation) is generally written with more care but it's still not perfect.
Edit:
"if it doesn't rely on any online services"
That is a big IF. How many things don't, at least indirectly? (e.g. by relying on HTTPS, which requires TLS, which requires keeping up with current cryptographic standards.)
Even in electronic hardware there's often continuation of design and refinement. Have you never seen a board with a revision number on it?
Real-world objects like these wear out. Code doesn't.
> Have you never seen a board with a revision number on it?
Of course I have. There's a difference though. You can't ship an electronic device that's unfinished with a promise to "fix it later". Yet this is what routinely happens with software these days. Also, if your device serves its purpose well, you'd probably have a "final" board revision with all flaws fixed. If you want to add features to an electronic device, you'd make it a different model, possibly sold concurrently with your existing one to serve people with different needs and budgets.
You just said "engineering". Bridges and roads are engineering as well buddy. And it's not even just the wear, it's the continued refinement and upgrade of these structures which is a constant engineering effort.
> Engineering projects usually have a finished state
This is the statement I'm addressing. And it's just not entirely accurate. Things change, assumptions get proven wrong, there's always a newer and better way to do something, etc.
Sure your widget was probably about as good as you could do at the time you first launched it, but several years later there's better components available. Or maybe a supplier stops making some part you were using. Or a few years later you start getting parts back failing early in their service life and need to make an update. What was once your finished state now isn't.
Imagine the gas stations (operating system) changed the kind of fuel they dispense every few years. No, by no means a car (software) that is fully finished today would be able to continue doing its thing tomorrow, without ongoing updates.
This also happens in the real world, it's just that changes are more likely in the decades or centuries, so we as humans don't perceive them so well.
The fact that Microsoft spends a whole lot of money to avoid this, is circumstantial. Apple doesn't so much, and at some point your finished software will stop working with newer MacOS releases if you don't update it to the newer system versions.
Linux is even more of a moving target. Good luck having a perfectly well working compiled program today, and trying to run it in 10 years time.
Look at macOS for example, which over the years has gained app sandboxing and mobile-like access permissions. Software pre-dating these additions that assumes that it has access to everything all the time will have its functionality impaired. Devs had to update their software to not make such huge assumptions and to handle no access cases gracefully.
> Devs had to update their software to not make such huge assumptions and to handle no access cases gracefully.
Sure. But at some point it will reach the "secure enough" state, won't it?
(Actually, macOS permissions work mostly transparently API-wise. Apps can request access explicitly so it better fits their particular UX, but the prompt would also pop up the first time the protected resource is accessed. No code-level changes are necessary to support this.)
Google is a bit of a special case I think due to their culture of using big projects as a means of climbing the corporate ladder. The only thing that could ever possibly result from that is endless churn.
> Sure. But at some point it will reach the "secure enough" state, won't it?
Maybe, I’m too much of a layman in the field of infosec to be able to say.
> (Actually, macOS permissions work mostly transparently API-wise. Apps can request access explicitly so it better fits their particular UX, but the prompt would also pop up the first time the protected resource is accessed)
True, but it’s still problematic if e.g. the user accidentally denies access unknowingly, which will result in the app producing seemingly nonsensical errors. For a good user experience the app needs to be able to tell the user what the real problem is.
Sounds like it's not "finished" if it needs all these updates.
As for why change the window dressing, the market for style changes over time. Why do car companies change the look of their products? Why does the outside of a cereal box ever change? Do the inside of our houses today look the same as the 80s? The 70s? The 40s?
Are you arguing that Windows and MacOS should continue to look like it's 1.0 release?
Software is a tool, a means to an end. It doesn't need to participate in fashion.
> Are you arguing that Windows and MacOS should continue to look like it's 1.0 release?
Yes. It should remain an option at least. Not the literal "1.0", but the version when a decent UX was figured out. For Windows in particular, that's clearly 95. I know people who used the "classic" theme in Windows 7 and earlier, which remained mostly unchanged from Windows 95, and are resentful of its removal in subsequent versions that they have to use in order to have support for modern hardware.
I wouldn't say that's very clear. There were still lots of refinements and redesign that happened as Windows started becoming more of a multi-user OS with NT and later XP. Just because there was a classic skin in 7 doesn't mean it was the same UX. Even with the "classic" skin there's pretty massive changes in the behavior and usability of most of the UI.
Maybe you find 95 to be the end-all be-all of design, but many don't. UI, and to an extent UX, is partially subjective and then also very different based on the user. Imagine a user who has only used an iPad gets dropped in front of a Windows 95 machine, would they consider it the peak of OS UI/UX design?
And as the product's target market evolves and changes so too should the software for what customers expect. Which brings me to...
> Software is a tool, a means to an end. It doesn't need to participate in fashion.
One could make the same argument of a bed or a couch or hell even a whole house. A house is just a tool, something to keep the environment consistent and shelter from the elements. A couch is just a tool to support a sitting human being. It doesn't need to participate in fashion. And yet people are pretty dang picky about their furniture choices and paint comes in thousands of colors.
Any piece software competes in a market of software. Say there's two pieces of software with identical feature sets. One looks like an ancient Java Swing UI and has bad colors and overall just looks ugly, meanwhile the other looks nice and pleasing (insert your own ideas of "nice and pleasing" here). One is probably going to hemorrhage users over time, can you imagine which?
The windows themselves, the taskbar and the desktop all worked the same in 7 as they did in 95. Many of the changes made over that time came with settings to revert them — like that new thicc taskbar with icon-only buttons and window grouping.
> Imagine a user who has only used an iPad gets dropped in front of a Windows 95 machine
I'm sick of perfectly good desktop UIs getting redesigns which are compromised by the existence of iPads and other touchscreen devices. This just should not happen, period. Windows 95 UI is straightforward enough once you get the basic principles, which takes all of one hour of poking around. Microsoft didn't conduct all that research for nothing, after all.
What frustrated people about Windows 95 (and 98, and ME) when it was current wasn't the UI. The UI was nice. It was the inherent instability of the system itself due to its architecture. Same for classic Mac OS, it doesn't matter how nice your UI is if the system itself can be trivially crashed or locked up by a single misbehaving app because of cooperative multitasking and lack of memory protection.
> One could make the same argument of a bed or a couch or hell even a whole house.
All beds and couches work the same and look largely the same. You know a bed when you see one.
All buttons and text fields and window titles used to also look largely the same and everyone was fine with that. But then the plague of flat design happened.
Imagine being exhausted after a long flight, walking into your hotel room only to see white, textureless walls, floor, and ceiling, and multiple white textureless blocks of different sizes inside. You get to figure out which one is a bed, which one is a chair, which one is a toilet, and which one is a sink! How exciting! This is what modern affordance-less UIs feel like. A good tool shows how it's meant to be used by its form.
> And yet people are pretty dang picky about their furniture choices and paint comes in thousands of colors.
That same classic Windows theme was extremely customizable for that very reason. You could change all colors and fonts to your liking, and some people did! You could make yourself a dark theme way before dark themes became mainstream.
> Say there's two pieces of software with identical feature sets.
You mean the control skins are the only thing different between them, otherwise all UI/UX being identical down to the layouts?
It's almost like you've never been in a furniture store. They come in tons of different sizes, shapes, textures, colors, features, and more. There's not just a single couch model that you can then change the color on.
> The UI was nice.
I highly disagree. The taskbar would get filled up quickly and get squished for me since there was no grouping. The notification tray couldn't hide things. No virtual desktop support. The start menu was incredibly basic in form. No search from the start menu. Editing the start menu programs list was extremely non-obvious and not self explained. Navigating the nested start menu shortcuts was a huge pain. Installers just threw everything in the start menu leading to a ton of clutter. UI elements are miserable at scaling, in that there is zero scaling support. The taskbar was only on your primary display. Difficult to change default sound output device straight from the taskbar. No central place to see previous notifications. No jumplists. No Win+Number shortcuts to quickly swap between things on the taskbar. Alt+Tab prompt doesn't have window previews. I could go on and on and on and on and on about what I perceive to be massive failures of 95's UI/UX.
I didn't really care for the overall icon design throughout the OS and generally see the overall style in the OS as pretty basic, bland, and boring. Changing the color or setting the title bar font to Comic Sans isn't solving that.
In the end though, you probably disagree with a lot of these things. I think your couch is ugly and uncomfortable, and you probably think my couch is ugly and uncomfortable. UI/UX has some subjectivity involved. Not everyone agrees 95 was the ultimate software design unable to be improved upon.
> Physical manufacturing is hard, but it at least brings in dollars
You say this as if it's some indelible fact that if you make a physical product, it WILL be bought and you WILL make a profit no matter what, but I think it's safe to say this is objectively false, as many failed physical business would attest to.
> OSS, privacy and wankers reverse engineering your software shrinks your market substantially.
As opposed to in the physical world, where nobody ever cribs your ideas and sells them at a discount compared to you... AKA "Amazon's business model"? (not to mention overseas knockoffs of products
Given all these things being equal then, software has all the same benefits that your parent comment mentioned, while staying at best EQUAL with physical manufacturing, save for maybe higher salaries to the people making your product (arguable in some cases, but on average probably true) but this difference pales in comparison to not having to own a warehouse and manage last-mile shipping costs etc.
Software has expectations that it can and should be changed after purchase through updates/patches/upgrades/saas products. That creates an ongoing cost a physical product doesn't have.
There are tradeoffs and different expectations which make both difficult. I would rather go the software root because I have the advantage of free developer time but someone else might find making 10,000 widgets from China much easier and cheaper. We think software is easier because we devalue what we add and what we really cost
Nowadays businesses use this to create a constant revenue stream from what used to be a single purchase. It's not to service the product, its to continue to soak money from the people who do end up spending on it.
Aside from security updates most software I have, I just want them to stop. No changes, no design upgrades, no "we changed this tier of our pricing" etc. Most of that stuff is working against the customer not for them. Your SaaS model is so you can make money, I have no incentive to pay more than I have to.
You have to pay their recurring revenue if you want them to stay in business and keep the lights on so you can use their product. That's the hard reality. If you run your own server and fix your own bugs and etc. (which is feasible for many here, I'm not saying it's a bad option) then you can "pay no more than you have to".
It's not my problem that they've settled on a revenue model that isn't in line with what I'm prepared to do.
I have worked on FLOSS software and I have worked on non-FLOSS software and I don't see most FLOSS software sucking in a way that non-FLOSS does not.
FLOSS has some advantages - as there is no compelling need to release new features which can drive up revenue and profit (or at least OKRs) for the next quarter, you don't get a constant need to release unneeded junk to try to squeeze the last dime out of consumers. You can actually spend time refactoring the code, or only releasing when it is properly architected.
Most of the servers and smartphones in the world are running on a FLOSS kernel. MacBook's OS derive from CSRG's BSD, and even some of Windows, like the Internet stack, derive from FLOSS. If it sucks so much, why do virtually all major operating systems derive fully, or at least partially, from it?
Whether or not I pay money for it doesn't enter into my calculation much at all.
It is excludable, but more so with SaaS type things: https://en.wikipedia.org/wiki/Excludability
Low barrier to entry is really important for new software. So it’s this struggle with some orgs trying to increase lock-in (Microsoft, Oracle, etc) and a constant stream of new products taking off, dominating the world, and getting knocked off themselves.
However, since then we have come to learn a lot about software. The most important of which is that software, just like physical products, needs maintenance. The world is constantly changing and evolving, and software has to keep up otherwise it'll become obsolete within couple of years. At the very least it must be patched up with newly discovered security threats.
Just look at all the money/effort spent to make features backward compatible, or army of engineers employed by companies just to maintain existing software.
I'd say at the very most it needs security updates. Too much software changes just to change. UI redesigns for the sake of redesign, cramming features that nobody wants so a product owner can get promoted, adding telemetry and analytics to chase metrics that no user cares about, adding annoying notifications and popups to juice "engagement". I pine for the days of desktop software, where I can wake up in the morning and not be worried that some developer 1,000 miles away from me changed my product out from under me because developers gotta develop.
Another benefit of software that doesn't change every week is you can charge one time for it rather than these awful subscription pricing that most software are switching to. They justify subscriptions because "we have to keep paying developers to develop." Not a problem that the user has, so why should the user have to pay for it?
Old, unchanged software is not obsolete. It's mature. Bugfixes only, please.
It makes sense though, if software companies could make just as much money doing less work, they certainly would.
And then there are the "upgrades" that try to force you to pay more.
There was a dev tool that I purchased a couple years ago. Don't remember the name. It was reasonably priced and came with 1 year of support. A bit over a year later I got a notification that they had put out an update, so I downloaded it to take a look, only to find out that it had deleted the version I had bought and my license wouldn't transfer over. If I didn't now buy this new version, not only could I not use it past the trial period, but I'd lost the version I had before.
Yeah, I was pissed. And the company really had trouble understanding why I was so pissed off by this behavior. I did finally find out where I could download the version I had before, but there went my entire workday. And the product that previously I would recommend became something I cautioned people to avoid!
Any successful piece of software cannot realistically just stay still. It has to keep evolving with the trends of user interface. The difficult part is doing it well. BBEdit has managed it.
All of them? Hell I hate it when things change in a way that forces me to give them attention now rather than when I have time. Nothing worse than doing an update and having to rework my flow, scripts, and code just to be productive again. Let me choose when I update my tools, don't force it on me just because your UI team found an even more complicated and torturous way to make simple things ugly and hard - I have my own work to do.
And the market keeps evolving, so you need to evolve with the market if you want to continue selling.
If you do it slowly enough, and cautiously, then existing customers can adapt.
But if you stop updating your app, it's eventually going to lose its appeal and will be forgotten.
Many people I know in my industry have been looking to dump the service contracts for CAD software for 10+ years. No useful added features, no improvements in stability, and no service to speak of through the VARs. What is the point of paying?
Now people use it in very interconnected ways.
As a user-developer, I'd also be happy with being provided the source (or un-linked object files, or the equivalent for whatever language being used) after the maintenance period was over, so I could continue applying dependency security patches myself.
"Security" patches are something only checklist-driven corporate IT (i.e. people who can't consider use-case) ought to care about. For individuals, they're mostly a cudgel to justify abusive practices and should be ignored.
> Too much software changes just to change.
But it doesn't imply this:
> I'd say at the very most it needs security updates.
What the parent said about "security updates at the very least" is correct, and sometimes that happens to also be the very most updates that should be made. And sometimes it's that but a little bit more. And sometimes it's that and a lot more.
The hard part is figuring out the right balance. And then, figuring out how to staff in order to achieve that balance.
The "only security updates" approach turns out to be among the hardest to figure out how to staff for. Because the idea is that this software is essentially complete upon release, so the natural business model is to sell it that way, for a one-time fixed price. And then with that revenue structure, the natural cost structure is to move all the staffing to a new project (or to build these kinds of products with project-based contracts to begin with).
But once you've accepted that you should at least be doing updates for security (and I think this is correct in almost all cases), well, now who is going to do those? You have a recurring cost with a non-recurring revenue stream. You can push down the recurring costs as far as possible, but eventually this model just struggles to pencil out. At that point, you'll probably decide to just stop all updates, including security patches.
This phenomenon is why most people making software seek a business model with a recurring revenue stream. It's not an accident that the days of boxed software were also the days of rampant insecurity.
But, you're totally right that the next step in this is often, "well if we have to have ongoing staffing and recurring revenue, we need something for them to do besides maintenance, so let's do UI refreshes and metrics and stuff I guess". It's a test of leadership, to avoid that temptation. Better products have better leadership that is making better decisions about when it makes sense to do more on a product and when it makes sense to mostly leave it be.
And a lot of those updates wouldn't be necessary of software and tools wouldn't offer so much attack surfaces, that they wouldn't need if they cared less about those things as necessary features...
How do you pay developers to continuously fix bugs, provide security updates and update their software when the underlying hardware and operating system changes?
Have we really strayed so far that everyone's forgotten how this is done? Security fixes and serious bug fixes should always be free (At least going back N-1. You price that work into the sale price to begin with), and you get ongoing revenue by selling new versions.
This works exactly up until the moment that your software is good enough that most of your userbase stops paying to upgrade. Then you are dead in the water, and the software becomes abandonned by design.
There's a reason farmers want the ability to repair their own tractors without having to give John Deere an extra cut, you know.
Two decades ago, for instance Apple was still selling PPC based Macs.
George R.R. Martin pretty famously uses WordStar on DOS. I can't imagine it'd be some win for consumers (either Martin personally, or downstream enjoyers of his books) if he had to be on the latest internet-connected, ad-infested, notification-riddled copy of Windows just so that his OS and Office Suite could repeatedly check to make sure he still has an active subscription and a valid "digital entitlement."
I still use Office 2010. (Though it gets increasingly difficult to activate it, and it last received security updates in 2020.) In 2010 I was using x86_64 (an Athlon 64 X2), and today I'm using x86_64. Why should I upgrade? It happens to still run on Windows 11, but I'd gladly stuff it in a VM to continue using it. (I do use Office <current 365 build> for work, so I can pretty confidently say there is nothing worth paying for in there. The only feature even remotely interesting is PowerQuery for Excel, which is available as an add-in for Office 2010.)
We each get 1TB of online storage.
Compare that to the $599 that Office for Mac use to cost and that you could only use on one computer.
Of course there is, but that's why software in a box cost hundreds or thousands of dollars per version, with minimal bug or security updates thereafter. The grass is always greener, yeah it's a pain in the ass having a ton of $10/mo subscriptions. But I'd much rather have that - as both a consumer and a developer - than have $800 single-sale purchases.
They will still need to buy a new version or should that be free?
If the author of BBEdit never added a feature since 1991. You would have still had to pay for new versions to run on your PPC/Classic MacOS, OS X PPC, x86 Mac and now your ARM Mac.
Back in the “good old days” MS Office cost $595 for each version if you had a Mac and Windows PC.
Now it’s $99/year for five users and you can run on your Mac, Windows, iPad, iPhone, web, or Android device.
The same for Photoshop.
And you get continuous features added as the platform vendor and software vendor add more capabilities.
This assumes a waterfall approach to development which implies multiple 6 month to year long development cycles.
In reality, a mature stable project can receive monthly updates, and an immature half-working project can be in maintenance mode. Furthermore this may work for software that should be seen and not heard doing its job in the background without much user interaction, but for software that users interact with regularly, the design needs to be periodically refreshed to match current trends or users will leave for the newer sexier product with fewer features. We've seen this time and again. I have absolutely experienced a mature product that was "finished" (abandoned) like 4 OS version ago that just doesn't run/work on the current OS version because the platform has added new security controls, APIs, and/or UX expectations, etc. No amount of security updates would fix that.
So while I understand where you're coming from opining for a world where we ship mature software and security updates only, I don't think it's remotely realistic given the way humans operate.
Software that gets frequent updates isn't "mature and stable" by definition. It's constantly changing.
That's simply not universally true and it's incredibly naïve to try and assert that it is. Obviously there are examples of immature unstable software that receives monthly updates, but it's not a tautology that monthly updates imply immaturity. You either don't work in software or haven't really thought this through.
Stable means the software run reliably without major issues and mature means it is a solution well adapted to the problem domain and solves a problem with grace, tried and true. Monthly updates might be "integrate support for new technology/service (that didn't exist 6 months ago)" or "support latest changes in macOS 14" or even "fix issue that happens 0.01% of the time". Other software changes and you have to adapt, and no software ships bug free. Being mature and stable means you have the time to work on things that aren't existential for your product/business, like adding convenient support for some sexy new service as a nice value bump or making sure those 0.01% of your users aren't occasionally encountering an annoying or frustrating issue.
Most people in engineering roles think the job is done when the engineering is done, and the maintenance is unnecessary unless it's necessary for stability or security. That's not limited to software, either. The fact is, to the vast majority of non-developer software users, an improved workflow, more intuitive, or yes, even more attractive interface makes more of a difference than moderate performance upgrades or minor stability improvements.
To a developer, interfaces are a way to interact with with software, like an API for humans. To everyone else, the interface is the software. Old interfaces are as or more usable to you because you have a sophisticated mental model of software and a high tolerance for logical complexity. These dreaded designers' profession is figuring out how people who don't have those things can most easily solve their problem with the tool you built.
Car controls would look a lot different if the engineers maintained control over the available controls without designer input. They might intuitively understand that the array of controls that change fuel injection parameters should only be used in certain instances, but they liked having them right there just in case. When told that they'd just confuse average drivers and should probably be hidden, they might argue, "I explained to my 6 year old nephew how more or less air can affect engine preformance." Multiply that by the dozen internal systems they want to control or get real time data from. A designer world recognize that this would confuse most drivers for little benefit and hide everything but the things most drivers need to find and parse instantly... And they would be met with the same heavy sighs and eyerolls that software designers regularly get from developers.
Designers are in the organization because they can do things that developers can't. They make developers work vastly more useful to the world because the way someone solves their problem is as or more important than it being optimally solved using the smallest amount of available resources with 5 9s of reliability instead of 3.
And that's why, in the overwhelming majority of cases, end-user-facing commercial software with professionally designed UIs and someone looking at UX on a whole will dominate FOSS alternatives while tools targeted at developers and other technical people do as well or better, and the commercial equivalents.
It is really easy to get caught in the trap that YOU are the end-user, but a couple user interviews will quickly shatter that reality.
You're touching on the real problem, here. Software isn't broken, it's just that the inherent issues in capital are starting to become painfully clear in this context.
I've been trying to find a term for "behavior focused on maintaining your job when the need wouldn't exist without such behavior". It's kinda tangential to artificial scarcity but broader in scope, and if we don't have a term for it, we need one badly. So much of our society's resources are committed to solving problems that don't exist, because the actual problem is "you need money to live and for whatever reason the thing you do in the place and time you are isn't necessary or desired".
The concept of self-preservation or calling it superfluous self-preservation probably works here. But perhaps saying auto-preservation conveys better the sometimes lack of conscious intention that goes on in these situations.
and then you move the bar a little (although I agree):
> Bugfixes only, please.
I would also add updating to work with the current OS / hardware. (I have unusable games that are a recompile away from being usable.)
But I agree with the rest of your points. Especially when, in addition to asking you to fund new features, the new features make the app worse for your use cases.
However I don't know if the root cause is more accurately described as "developers gotta develop" or "product managers gotta produce".
Software degradation is much like hardware degradation: it happens with time as underlying platforms change.
Only if it talks to the internet. I have plenty of software I downloaded over a decade ago that has no internet access and runs perfectly fine on Windows 11. Much of it is even older than that. Just stop trying to cram social media integration into your label-making program and it gets a lot easier.
So.... Most software.
Agreed
I mean, sure, this is what all the software developers have been saying...
In the meantime, I'm constantly seeing users, even here on HN, complaining about how their favorite software tools are changing. Users the world over annoyed at SaaS, and pining for installable software that they can just put on a machine and never have to worry about forced upgrades or annual maintenance fees, etc., or even the convenience of not needing an internet connection for it to work.
The software world has never been black and white. There are product niches, and also use-case niches. You could probably make a good business by choosing something that's only available as SaaS and releasing a local-only version of it.
Take into account maintenance when pricing your software.
Like 9/10 apps need no internet connectivity at all, unless they are spyware of course, which most commercial apps are nowadays.
There are plenty of open source libraries, that many software developers used in their applications, that have had to have security updates. No software will be 100% secure.
"Like 9/10 apps need no internet connectivity at all"
This might have been true 10 years ago. Almost all apps people want need internet connectivity.
The whole connectivity thing is the fundamental problem. Transferring files between devices have never been as easy as during the floppy disk days. Usability is not the driving factor behind forcing the internet into everything.
There's some truth to this, but I think this factor is usually dramatically overstated. At least, most of the software I use doesn't need to constantly change. The majority of software updates I see are unnecessary, and many of them are undesirable.
I left before they upgraded anything, and they're still in business, so I guess it worked out. But it proves that not everything has to change to continue to work.
> ..not everything has to change to continue to work...
That was sort of my argument; you could make do without changing the software but the cost keeps increasing and the user base keeps shrinking. At some point it'll be down to that one customer who refuses to budge and will be asked to make a tough choice; upgrade to the latest version or hire developers yourself to support...and even that may become impossible if h/w guys stop manufacturing that old machine configuration.
I feel this is largely being overstated point, or rather that in reality majority of important patches for software is due shoddy quality of it originally rather than external changes. Most security issues are rehashes of common well-known attacks rather than completely novel discoveries. Especially on desktop the platform churn is pretty low, windows happily runs like decades old binaries, and on Linux desktop we have this one major breakage happening that is Wayland but otherwise well-written decades old code is at least source compatible if not binary compatible (although even that is not that far-fetched...).
Each line of code is a burden of future maintenance.
I'm not sure exactly what you mean by this, as a large part of software development is QA testing, and validation. Which is a form of quality control.
You need a QA/QC process to identify units which are too far out of tolerance and either remove them from the pipeline or remediate them. You also need to track trends in the measured tolerances to proactively fix your production equipment.
In the software world, that’s trivially easy. Your CI pipe publishes an artifact and then every user gets a bit-perfect copy of that artifact. Your entire QC is just: Users compare the artifact’s checksum to the expected checksum. It essentially always matches because we use things like TCP to copy the data.
The type of QA you’re talking about is also required for physical widgets.
Maybe you've never experienced the difference between writing software for 1000 people and writing software for 1M people, or (I imagine) 1B. The marginal per-person cost of software is not on shipping. It's on "what kind of weird shit will I now have to do because 1M is a lot of chances for my software to break weirdly, and people have paid for it"
> You don't have to worry about quality control and returns.
You don't have to worry about quality control and returns if you don't care about quality control or returns.
I don't believe such software exists. (And, to be clear, I'm writing from direct, day-job experience.)
EDIT: I take it back. SQLite, cURL. Maybe.
EDIT2: I can't reply to the SEL4 response, so here goes. I'm a huge fan of verification tools, but consider the Spectre class of bugs. Verification is always done wrt a mathematical model that you've defined after inspecting the world and writing down the properties you want to track. But the world changes, and the chance that the world changes increases with the number of users of your software. That's the nature of the beast.
When I had a reply I couldn't reply to, I opened the reply separately in a new tab, and there I could reply to it, try this.
It's a bug in the processor that causes a bug in the software. It's not a bug in your idealized mathematical model, but try telling that to the people who paid you not to leak private keys.
I see my job as an engineer to be to create a product that satisfies the user's expectations (which in this case are eminently reasonable). It matters not one bit that I can point the finger to the chipmakers. I'm still selling something that I now learned doesn't do what I said it would. It's still on me to fix it the best I can. If I care about the product quality, that is.
Not my business to decide what you think is reasonable. That's just what happens in the world, and what (in my view) good engineers sign up for.
Why do you think so?
What choice? I have to fix bugs today as they come.
I think that this is a bad analogy to hardware, though. Polished steel roads are unreasonable to ask for, but bugless processors are reasonable to ask for.
I’m software we deal more with curses than miracles. Those happen every day too.
But if we're talking about plain old regular software, something that needs no server to operate, and functions perfectly fine offline, something like, say, Photoshop, how different is the impact on the manufacturer when the software is used by 1k users, 1M users, and 1B users?
Yes, having 1M or 1B users means more opportunities for the bugs to surface and for people do be upset with the product. But do those scenarios impact the quality of the product for other users? Does they introduce unseen costs to the manufacturer? Do they make the product unprofitable or unsuccessful in anyway? Or does it mean that the manufacturer will have to refund 0.1% of their sales, and only benefit from the 99.9% of sales where the product worked as expected?
_very different_, when the user's environment is different. And 1) you haven't seen shit if you think you can perfectly control the user's environment. 2) every new user is a chance for the environment to bite you.
> Do they make the product unprofitable or unsuccessful in anyway?
You do your engineer best to try and fight that. But there's absolutely a marginal cost, which is what I was responding to.
Can you provide some examples of this? I'd like more info here, because off of the top of my head, I can think of the following counter-examples:
1. This isn't a new problem. User environment has been an issue ever since software as an industry was born. Specifying minimum specs is a pretty typical thing. And while I don't have depth of knowledge on these challenges or their history, my understanding is that it's only become less of a factor over time. So why is digital software different in this regard? If the industry was able to sustain itself before it went digital, what about the change to digital makes it unsustainable now?
2. Computer games, which are probably a good candidate for the most resource-heavy programs that need an appropriate environment, still largely adhere to a pay once business model. Doesn't this indicate that offline experiences aren't affected by environment to such a degree that a single payment business model isn't problematic?
> You do your engineer best to try and fight that. But there's absolutely a marginal cost, which is what I was responding to.
It surely has a marginal cost. But is that cost significant, is the question. In particular, significant enough to warrant a recurring payment business model.
I think you're assuming more of my answer than what I gave. That's fair given that this is the point of the article, but it's not mine. I'm very specifically only responding to "is there a per-user marginal cost on software?", and my answer is most definitely yes.
To warrant a recurring payment business model, I think the right question to ask is "Is there a per user-year marginal cost on software?", and now the answer is in my view, much more complicated and domain-specific. Worse yet, I think that there's perverse incentives at play here in recurring payments.
Fair, but I feel it's disingenuous to ignore the context the original comment was written in (the context of the article) and try to argue against a specific point in the post as if it was made without that original context. The sentence may have lacked inherent context, but it was supporting the key points the GP was making in response to the article. It wasn't designed to stand alone.
Given, I'm not the author of that post so entirely possible they were intending for it to stand alone, but I think it would still be better to see if that was intent rather than to assume so and antagonize what they were saying.
Try selling English-only software in Europe and you generally won't get very far.
If a company was only able to sell 2.6M copies of their digital software before running to expansion problems... good for them! That's a lot of sales and they probably made a great deal off of those sales. Sure, they can grow to 1B users, but they don't have to. There's no requirement for them to do that other than choosing to expand into those markets, and that's strictly optional. The business model is doing fine, there's no need to adopt a recurring payment system for ongoing maintenance.
And let's be honest, even if they do choose to expand into those other markets, the cost to convert the existing product to work in those markets is most likely less than the money they'll earn from selling in those markets, so... is there really a need for recurring payments to support maintenance? Will one-payment sale structures inherently fail to make the product profitable in a given market?
Absolutely. Anything involving internationalization is an open invitation for very weird edge cases. Some languages (Hebrew!) are written right-to-left, some require more than one byte to store (Japanese, Chinese), time formats and time zones vary, some write currencies with the symbol in the front (US dollar) and some at the end (Euro).
If all your testing was done by Americans speaking English, the only thing you may stumble upon is timezones. If you're in Europe, timezones won't be much of an issue (as almost everyone is on CET), but you may find out that, whoops, Windows localizes certain path elements like C:\Users.
On top of that, a constant pain point in support is displays. Most Windows users are on a 1080p screen on their laptop, but may plug in their new 4K monitor and notice that your UI is completely illegible because it doesn't respect DPI settings. Or you thought you supported variable DPI, but never planned on a user stretching your window across two screens with different DPI settings. Or monitors use different color profiles or gamma settings and users complaining about that.
The main product at work is a desktop application. That means that every OS version / hardware configuration of every platform that any user might install it on can have its own bugs. It means that we support multiple major versions rather than being able to just always deploy the latest version. It means that a user might want to have multiple versions of the software installed side-by-side on the same machine. It doesn't change the fact that more users means more use cases.
Software use cases experience combinatorics, and almost all useful algorithms have log(n) runtime. Even when Knuth says they are O(1), physics or EE say he’s wrong. There are no economies of scale. Racks don’t get cheaper when you run out of network ports. Cooling doesn’t get cheaper when you run out of roof. Things that failed one time in a million calls now happen every hour instead of twice a month, and actually have to be fixed.
It’s death by a million cuts.
Take for example any mobile app. Apps require constant upgrades to keep up with the hardware and software changes on the platforms. You can’t just build an iPhone app and leave it alone to be enjoyed by people. I’ve tried, within a year or two there will be changes that require developer work, if you don’t keep it maintained, it will start to crash and function poorly, Apple, for example, tracks everything and will start with de-boosting search results for your app and end with removing it from the platform entirely.
Google is the same. I’ve tried, I built a Top 25 RPG and got busy with other things. It went from Top 25 to deplatformed in less 5 years because unmaintained software just doesn’t work in most cases today.
Software is more complex now. All software is a conglomeration of lots of other software: frameworks, platform tools, libraries, APIs, etc.
Another example: Flash
Another example: All the AI software being written on top of the OpenAI API will be broken in a year or two as they roll new versions of the API and deprecate the old.
Software doesn’t just work anymore. The platform that executes it is constantly changing.
My favorite is when a new Apple update breaks your app, so you identify where the issue is and make a small update, but now Apple rejects your update because of some other arbitrary guidelines it's changed, so you then have to start down that rabbit hole.
It depends on the software. But where this is true, it's not because of some innate nature of software, it's because of business decisions software companies have made.
Unlike hobby software, where you could reasonably write everything from scratch just for fun, or say in write it in 6502 ASM which hasn’t changed at all for 50 years and won’t change in 50 more, in modern business software, you use common frameworks, APIs, platforms. All of those mean the software you write will fail as those dependencies and platforms change and age out.
Business software has to be built on common building blocks because as a business you need to be able to hire people who can work on it. So things like Java and node and react and dozens of APIs exist which creates dependencies and requires ongoing maintenance as those components continue to change.
- How does this feature work?
- How does the software do this?
- you said it does this and it doesn't why?
- can make the software do this?
Each one of these questions cost money to answer and needs someone to hand hold the user. especially if they are a non-technical business user.
A few offices, macbooks, and data center space is very cheap compared to building a manufacturing plant.
On the other side, what tech people understand that the general public does not... is that software has a healthy dose of maintenance and operational costs when it scales. Not a massive cost, but higher than zero - which is what most MBAs think the maintenance cost is.
* Software is extremely expensive. Software engineers are expensive, and for a good software project you need a tech lead, a manager and probably a few developers. These are all people you need to pay tons of money for.
* Software is constantly changing, something that worked 2 years ago can be broken beyond repair today. You need a team that can keep up with this.
* Software needs maintenance. You can't just build an app an call it a day, you need to employ a team to maintain it continuously. You can build a massive, gargantuan bridge and maintain it maybe every few years/half a decade to keep it safe for 30+ years, you cannot do that in software.
* Unlike what outsider think, software -- even "boring" CRUD/web software -- is still very much a research project. If you ask a civil engineer how to build a bridge, they'll tell you about all the techniques that were developed over the many many decades. What a developer focuses on while writing code is mostly ideas developed in the last few years. Although you think you're building a simple app with 3 devs, what you're missing is you have your own tiny research lab studying how to develop this simple app the cheapest way possible while making it maintainable.
* Software by its very nature is hard to make money off of. Its complexity is opaque to most people, they're not willing to pay. You'll always have people pirating it, eating away from your bottom line. Moreover, each new software means changing workflow, so even if you have the best product on the market, decent amount of people won't switch from the industry standard.
* Modern software engineering methodology focuses on, among other things, time to ship, feature richness and maintainability. It does not focus on correctness -- partially because our theories on software correctness are lacking (even if you decide to use novel/extreme approaches such as Dependently Typed Programming, formal proofs etc it's unclear/unknown if you'll reach a significantly better correctness metric). This makes your product inherently frustrating to the customer. No matter how much money you spend, you'll always have a product that's a little bit buggy. This means the product is very sensitive to the amount of money you throw at it. If you throw Apple level of money, it'll be less buggy, if you have a barebones team it'll be more buggy.
> * Unlike what outsider think, software -- even "boring" CRUD/web software -- is still very much a research project. If you ask a civil engineer how to build a bridge, they'll tell you about all the techniques that were developed over the many many decades.
As a nonpracticing civil engineer, you're underestimating the ongoing maintence that goes into any large bridge.
Also, though the techniques may be more established, every bridge must still be designed to fit the specific characteristics of its local geology and geography. But come to think of it, fundamental computer science algorithms are pretty well established, like bridge-building techniques. Software engineering is simply fitting the code to each unique problem, as bridge design fits a bridge to each unique place.
Most (all?) of the ideas I see are at least 20 years old, if not 40-50. Something like Spring wouldn't be my ideal choice, but it can certainly get the job done for most people, and it's 20 years old. MVC dates back to the 70s. Postgresql is 27 years old and is a fantastic choice. SQL and RDBMSs date back to the 70s. The term CRUD itself dates back to the 80s. Server rendered pages are still easy to do, perform way better than most React-based abominations, and are as old as the web. If anything, software is plagued by these "research projects" that are mostly just to scratch smart people's itches.
That must be why most software startups succeed.
Hard tech startups are notoriously harder to get off the ground than software companies.
The fact of marginal cost results in a lot of software being written that otherwise never would have been. After all, the difficulty of solving a problem for myself often doesn’t offset the trouble of making a reusable solution. It’s only through having other people use it or pay for it that it becomes worthwhile.
Randall Munroe’s chart is incomplete because it thinks too locally.
I'd argue in all domains, the hard part is making an excellent product.
There are virtually zero real-world constraints you can leverage as excuses in the domain of software, other than the original idea was bad or you have really bad people around the idea. Most of the software ideas I have encountered in my career are fantastic. It's not hard to describe what a high quality product experience is like if you are a domain expert and have suffered the gauntlet for 30+ years. The part that always seems to go straight to hell is the implementation of the idea.
I suspect most software projects go bad because there are too many layers of separation between participants. In physical products, substantially more direct interaction is required to get things done. With software products, you can isolate everyone into different multiverses as long as they are pushing PRs to the same GitHub repo (and sometimes not even the repo is shared...). Over time, these silos ultimately ruin any sense of ownership and quality in the product.
It is quite tragic - while on one hand software is the most accessible form of human enterprise ever, it is also the easiest to do wrong. Having no constraints seems like win-win at first, but it is absolutely a double-edged sword. In my view, the best software company CTOs are the ones who intentionally add as many artificial constraints as they can to the technology and process. Do more with less. Force lateral thinking. Make the product people go back to the customer and say things like "we actually can't do that because of a technology policy" instead of pretending like an unlimited infinity of things is always possible.
This is exactly why people should pay for software: consumption of physical goods destroys the planet. Money spent on software can't be spent on destroying the environment.
Ban ads*, make people pay for content and software and save the planet. Win-win-win.
* most of them anyways
What's the incentive for a developer to sign up to this then, if they don't get a share of your subscription when you use their service? Isn't this a bit like asking Disney+ to give all Netflix subscribers access with no compensation?
So I don't see how joining in would benefit me - if anything I'd lose a bit of revenue from people who would have paid and now find they don't need to because they're signed up for some other product which I have no hand in and no revenue from?
Exactly.
> So I don't see how joining in would benefit me - if anything I'd lose a bit of revenue from people who would have paid and now find they don't need to because they're signed up for some other product which I have no hand in and no revenue from?
It would not benefit you if the average person paid for multiple free software projects. In that case, they would only have to pay for one instead of multiple.
I don't think that's the case though, so this solution should make more people pay for free software and that should benefit the developers on average.
This isn't it.
I donate a little to the EFF, monthly automatic, and a few other things irregularly as I feel particular gratitude. It leaves a million people unaccounted for, but all you can do today is pick a few things that matter to you and let others get the others.
And/or pay back/forward by contributing a little work of your own to the commons which I also do, but you can't expect most to do that, and I don't claim mine is valuable. Actually come to think of that, the reason I work on the things I work on is mostly because I just want to, so maybe most of those million are fine and there's no problem. But come to me with any kind of demand, well, I guess that's when paying enters the chat.
One such service that distributes payments could sell subscriptions in this system. That's one of the ideas I have had all the time with this project but I guess I forgot to write down; payment distributers should be one of those you can subscribe to.
Is this like Kindle unlimited where someone pays a single subscription and gets access to all content providers on the platform (in this case content is software), where creators get a proportion of the subscription fee based on how much a user used an app? So e.g. 10$ per month, I use FooReader 90% of the time, so they get 9$.
Idk, even if I am not getting the details, I don't think that any collective approach to app is going to work. Unlike with other industries like movies or music, products in software are very different from each other and is consumed in a variety of ways (library vs end-user app) that have a lot of complicated nuance (in terms of licensing and company goals).
It is like that, except that users buy the subscriptions directly from the developers. 1Sub doesn't handle any money. This also means that the developers get 100% of the money (except for any transaction fees depending on payment method).
> Pay to download or for other services: Not worth it; users can find the software somewhere else and they don't need your other services.
I also reject this premise. My evidence being the trillions of dollars spent annually on software and other services.
https://1sub.dev/link?u=https://news.ycombinator.com/item?id%3D&s=p_GonuAYEe0&k=&n=hK5ZOXymlHi5s2Es&a=a.18and what happens when you release a new version? someone will have to be the first to pay, and most people who want to immediately upgrade will also pay the day it's released instead of waiting for some sketchy dude to upload the executable somewhere else
People should not pay for software - average Joe should have all kinds of software basically free.
Now you ask "who should pay for development", corporations, companies or foundations where people still could donate but would not have to. Where corporations and companies pay salaries and provide end users with services.
Solo devs should not write and maintain anything without getting paid.
Yes it is "corporate dystopia" but on the other hand when I see all kinds of rants or horror stories from OSS maintainers and companies that don't want to contribute it seems only reasonable way. Corporation/Company/Foundation pay salaries for devs and provide people with software while charging for services like keeping data or any other actual services that can be connected to software they provide or in case of foundations by donations.
Same with OSS development. Why should you pay for something if people just do it for free? Doesn't matter who the consumer is.
> Solo devs should not write and maintain anything without getting paid.
But they do, and they will regardless. And until they stop, nothing will change. There's an oversupply of eager coders coding for free
Companies will pay (their own developers) once the OSS solution doesn't work or needs extra extensions that doesn't exist.
There's no thriving market of OSS apps for iOS.
So the solution is simple. Charge some money from developer to allow distribution of his apps. This seem to kill open source attitude very well.
anyways, here is a list of FOSS apps on IOS: https://dev.to/devfan/a-curated-list-of-open-source-example-...
and how about "corporation should not be allowed to use any software without paying for it"? it should essentially be treated like a tax. if the software has no price, then the price will be evaluated by some metric. (could be lines of code, but also revenue of the company could be considered)
What does it mean to "give access to downloads and other resources"? What kind of downloads and resources?
Can you give some examples of services that exist that you think don't work well enough?
That's simple, decentralized networks are better than platforms and this thing has no need for centralization
Subscribing to one is easier than subscribing to many. There is less friction and the user gets more for that subscription.
> Why does subscribing to one developer give access to all developers?
All developers (and everyone else) can add subscription checks to whatever they like that will let only subscribers pass.
> Why not put yourself in the middle and offer a subscription to "1Sub.dev" and give users the same benefits?
Then they would all have to pay me. I don't want that. Someone could have something against paying me. Maybe the payment methods I offer doesn't work for someone. Distributing payments seems like the only right thing to do.
> What does it mean to "give access to downloads and other resources"? What kind of downloads and resources?
It could be anything. Here is an example of a paywall for this comments page that will only let subscribers follow the link:
https://1sub.dev/link?u=https://news.ycombinator.com/item?id%3D&s=p_GonuAYEe0&k=&n=hK5ZOXymlHi5s2Es&a=a.18
> Can you give some examples of services that exist that you think don't work well enough?I don't know what kind of services you mean.
> I don't know what kind of services you mean.
You write on your website: "Why this is better than the alternatives"
If you could give examples of the alternatives that you think don't work then it might be helpful to see how your service differs from those.
Developers could sell subscriptions for any price they want. They have a limited number of subscriptions they can sell so there is a supply/demand that influences the price. Users buy directly from the developers so they would get 100% of the money (minus possible transaction fees depending on payment method).
> If you could give examples of the alternatives that you think don't work then it might be helpful to see how your service differs from those.
The alternatives are mainly the ones listed on the page above: buying things from developers in the usual way and donating. There are also other systems that work in a more centralized way where you pay the system that then distributes the money to the creators and this system differs from all of those in that it doesn't handle any money.
If you want an example, there is liberapay.com that seems to be donations with centralized payments. My system tries to be better than that because:
- Payments are less voluntary because you get access to stuff when you pay.
- Payments are decentralized so there can be more freedom of choice in how you pay.
What are you going to do about people asking for 1 cent to join the network?
More people should want to pay if they use this system because if you just ask for money, you either don't give anything in return (donations) or you give access to your stuff, but with this system, the user gets access to everything that uses this system.
> What are you going to do about people asking for 1 cent to join the network?
Developers can sell subscriptions for 1 cent but since they have a limited number of subscriptions to sell, they will not make a lot of money that way.
If you mean 1 cent to join as a developer, that is free; it's about trust. This should be a cooperation between developers who trust each other.
Oh, I don't remember the website mentioning this. How does this work, and what are the implications?
You can read about it here (bottom): https://1sub.dev/about/how-it-works
It means that there is a supply/demand that influences what price the subscriptions can be sold for. Developers have a limited number of "credits" that can be turned into subscriptions. They can get more credits by making people subscribe through their links. There is also a plan that the credits will be multiplied and grow with time in order to keep the prices on a sane level.
What prevents me, as a rogue actor, from just adding all my mates to the database without them paying me anything? Would they get access to all other software from the developers who take part in this affair?
If you are not a trusted developer in the system then the API key prevents you.
If you are a trusted developer, then you can give away as many subscriptions for free as you like but you only have a limited number of subscriptions to sell so you will not make as much money that way.
Yes, a developer can sell the subscriptions for very cheap but then they will probably quickly run out of subscriptions (there is a limited number) and then wish they had sold them for more.
Also, the subscription is not really tied to any product; think of it more as a subscription to free software in general, that can be sold by different resellers (the developers).
In the opening statement of the site the idea of merely trusting the user without copy protection is completely ignored, but without more details it's not clear if the proposed system is any better.
If people subscribe once and access everything, it seems like they'd need to charge a lot to make it a worthwhile co-op to participate in. It feels like the amount they would have to charge would become pretty financially restrictive to access the code and not in the interests of someone who wanted to open source in the first place...
- How does this handle the scenario of a developer disappearing?
Does everyone who had access through that developer continue to have access?
It seems since payment processing is handled by individual developers, no longer would people have to pay for access to the whole catalog. Does this now mean over the long term you are handling an ever increase supply of people with access who do not pay but can transfer their access to others for free?
- How does this handle the scenario of developers with subscribers who are supposed to pay a reoccurring payment but have stopped?
Does the developer have the ability to remove access to the catalog from specific subscribers?
If the developers have the ability to remove subscribers at will, doesn't this disincentivize paying at all because paying gives you no security in your access you just bought? What is your plan to arbitrate this without access to primary payment information to confirm who is right?
- It seems like although decentralized, this approximates to the journal model but for code? Is this your intention?
> If people subscribe once and access everything, it seems like they'd need to charge a lot to make it a worthwhile co-op to participate in.
I have thought about this a bit and yes, when this thing grows, the subscriptions will be worth more and more. I haven't really done any calculations though because it's really hard to know what things will be like. Anyway, let's try one:
Let's say there are 100 developers (individuals) and a developer wants $4000 per month. Then if we want a subscription to be $5 per month or maybe we could allow it to be $10, the number of subscribers per developer would have to be 100 * 4000 / 10 / 100 or just 4000/10 = 400. So I guess as long as the number of subscribers are a few hundreds times more than the number of developers (individuals), it could work.
> - How does this handle the scenario of a developer disappearing?
Interesting question; I have not thought about that. Developers register and unregister the subscriptions so hopefully they would unregister their subscriptions before they disappear. If they don't do that, it could be forced by the system but there would have to be rules about that then so everybody knows what will happen.
> Does the developer have the ability to remove access to the catalog from specific subscribers?
Yes, they can register and unregister subscriptions as much as they want.
> If the developers have the ability to remove subscribers at will, doesn't this disincentivize paying at all because paying gives you no security in your access you just bought? What is your plan to arbitrate this without access to primary payment information to confirm who is right?
That is between the buyer and the seller. If you buy something and you don't get what you bought, you would try to solve that with the seller. Of cource people can complain to 1Sub too and then maybe the other developers will lose trust in that developer and they can be kicked out.
> - It seems like although decentralized, this approximates to the journal model but for code? Is this your intention?
I have not thought much about the journal model but I can see how this is similar. My main vision has been tax that everyone who wants to be a citizen pays so that they then can enjoy things that are not sold directly to people.
A lot of hatred of subscriptions comes from hard-to-cancel dark patterns that should be illegal.
The issue that I have with subscriptions is, as I said, they become unmanageable and they are frequently dishonest, betting on you to forget to cancel them. You do a one year subscription for something, forget to cancel in time, and now you're stuck paying for two years.
Both SaaS and many other type of subscriptions really need to drop the recurring part and just let you "rent" the product. That seems more honest to me.
Subscriptions always feel a little scummy to me, due in part to the way they're often advertised. I think that "Only $5/mo!" followed by tiny print saying "Billed annually" should be illegal, because it's clearly deceptive advertising.
Imho, the "just buy it" or "patreon to access the development discord/forum/whatever for OSS" seem like the best approaches. Like, I'm in Mastodon's patreon, and I'm happy to buy software. And while it may sting, I'm okay with "major release = new version buy it again". Not fond fond of installed local non-cloud software in the SAAS business model.
It's exactly Patreon or one of its many competitors. The "subscribe to a creator and get special perks" problem is common and solved, but as you note the "CaaS" (creator as a service) model isn't for everyone.
IMO the most sensical low level* economic model for digital things would be one where you pay a really tiny amount every time you derive value from something. A fraction of a penny each time you play a song, each time you edit an image in some software, each time you visit a website.
There are a boatload of obstacles to getting to a model like this, but as a thought exercise it's really interesting to consider an alternate universe where this model got established instead of, say, everything being ad-based. Not only would it provide a model for monetizing software, it would also for example completely reframe DRM (making it both far more ubiquitous but also far less antagonizing to the user, since it would be aligned with what the user is trying to do instead of being at odds with it).
* The idea being that this low level economic would exist but for practical reasons (like overcoming human psychology) you might need to overlay a higher level model like a monthly "unlimited consumption" subscription or tax.
As in, if someone created something and you derive value (utility, enjoyment, etc.) from it, what is the basis for at some point no longer providing compensation for that utility?
FWIW, I haven't come up with a completely convincing answer, and yet I still feel like you do! Maybe there is no firm justification for terminating compensation, but instead it's more of an idea instilled by the culture, that after X years, the thing you created becomes owned by society at large just for the greater good, or maybe in recognition that your work came about because of prior accomplishments from others, or that as a society we want ongoing creativity and not stagnation.
Then there’s public domain, which you alluded to.
This argument assumes that you are lawful, in opposite to chaotic, on the ethical axis (see https://tvtropes.org/pmwiki/pmwiki.php/Main/CharacterAlignme...).
"The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions [...]"
And more recently Brave, the browser tried to implement it.
"Crypto and DeFi are hard to use and the $330 billion digital advertising industry is failing users, publishers and advertisers. With Basic Attention Token and Brave we want to take Crypto to the next 1B users and solve the endemic inefficiencies and privacy violations hobbling the digital ad industry."[^2]
I personally think this is a beautiful idea, had it worked out as envisioned, the Internet could've been a very different and likely better place now. Pity cryptocurrencies came to be what they're in their present condition.
---
I read through your landing page and your how-it-works page and I am still...confused. That it ends on a hand wavey "we haven't solved this part yet" statement does not inspire confidence.
As best I can tell you are going to take a lot of open software and gatekeep it behind a paywall but each user only has to pay once...to someone...and then they can access all of the software behind that gate. So you are trying to make an ecosystem of software that can only be accessed by people that have paid some money at least once?
> Sorry, there are no developers to subscribe to currently.
If you actually want adoption, more needs done than posting the thing you built and suggesting people use it. Building effective, self-sufficient marketplaces is tough. Benefit has to be seen on both sides from the get-go.
Android -> Sales funnel for app store/services, and consumer profiling
MacOS -> Sales funnel for app store/services, and consumer profiling
Windows 11 -> Sales funnel for app store/services, and consumer profiling
Ubuntu -> Sales funnel for app store/services, and consumer profiling
Most people conflate information appliances with general purpose computing.
It is a shame 98% of the market went this route... You still pay, but are just unaware how you are being monetized. =)
The idea has problems though. How to pay for background ("invisble" layers). How to prevetn "hyper transparent citizens". Etc.
Software is stupidly simple to distribute, but for some reason one of the hardest to keep. Obviously if we cannot use any software of the past, we are stuck with developers having to maintain old or new solutions.
Society is spending billions of dollars each year for working on complex hardware and software to make that distribution possible. Physical goods are the stupidly simply thing to distribute.
Would billions solve software distribution & longevity? How?
If users can find the software elsewhere, then it must be cheaper or better if they don't want to use yours. If this is about pirating, then it's just a matter of time before they buy, unless the ransom for decrypting their personal files bankrupts them.
Please, no more subscriptions.
Take a free open source product, and charge for hosting & maintaining it.
Sketch App - $99 once, $99/yr if you want upgrades (I did not)
Wordpress model - Core is FOSS, money is made with custom plug-ins that can be priced freely.
Problem is with quality and adaptation.
If you mean "people" as in "A world where people pay for software", then no.
I think companies, especially software companies, would like to subscribe in this system if it gets big because if they have dependencies that require subscriptions, they probably don't want anything to get in the way for their employees.
the idea of "property" (ownership) which is the cornerstone of the whole of civilization breaks down when applied to digital goods.
Optional extras like 'downloads or other resources' are presumably digital and therefore do not solve the problem - folks can still pirate it. If that's not the point, then it is a donation, in the simplified parlance of the first paragraph of 1sub.dev.
And this all from a company/effort that has such lofty goals that the html title of the page is 'a world where people pay for software'.
This (how do you monetize software development / how do we e.g. let FOSS developers capture more than the current 0.0000000001% of the value they create) is an incredibly difficult problem and this effort sounds like some naive newbie took 5 seconds to think about it and thought: Yeah let's fix things!
At the risk of sounding like a crotchety old fart: Hoo boy if it was that simple, it'd have been solved already.
Alternative plans that work a lot better:
* The NPM ecosystem has a ton of software-as-a-service offerings, e.g. where you can use their site to serve as online tool to e.g. make documentation, to have their site host that documentation, etc. I hate this model (you get nickel-and-dimed and both companies and open source developers alike don't usually like having 50 downstream service providers who, if they go down or have issues, require you having to explain to _your_ customers what's going wrong), but it solves the problems this site names (you can't pirate this, and you get something of value for your money in return).
* Tidelift tries to provide security assurances and support: The payers don't just 'donate', they pay to just be done with the security issues with FOSS dependencies: Tidelift gives you software that scans all your dev work for all your deps and which versions you are on, and tidelift ensures not just that there are no major security holes in those deps, but also that the authors of those deps have made some basic promises about maintaining it in trade for real consideration (namely: money). Github sponsors and the like are more or less barking up the same tree. These setups also solve an unstated problem 1sub.dev tries to solve, which is: You tend to use _a lot_ of software; if you have, say, 600 dependencies (not crazy in this modern age of software dev), and you want to individually set up a 'deal' with all of em, one person has a full time job as they will have to renew over 2 contracts __every working day__ assuming all your subscriptions are yearly.
* Microsoft and co do it as a package deal: You pay one fee for everything they offer and aggressively legally chase down anybody that pirates.
* patreon and co grease the wheels of the donation flow by making it simpler and allowing developers to give something that's hard to pirate: T-shirts and stickers, mentions in the 'about...' page and so on.
* Some developers of FOSS, as well as _many_ commercial outfits, will accept money in trade for priority support.
All of these models have issues. But at least they actually aim to solve the problems. This attempt doesn't even begin to tackle the actual issues, unless I'm missing something.
As a 1million+ user FOSS developer who maintains the library primarily based on privilege (I have enough income to work for the roughly minimum wage I currently get for it, though I could have earned vastly more if I worked for a commercial entity for those hours) - I'm aware that this is not a good situation, that you need to sort out your finances separately just to be a good FOSS author. But, I don't see how 1sub.dev is going to add much compared to what's already there (patreon, github sponsors, FOSS aggregators like apache and eclipse foundation, tidelift, etc).
Here is how 1sub solves or remedies the problems with the mentioned methods:
- Pay to download or for other services: With 1sub it will be more worth it because you don't just get access to that software or that service, you get access to the software and services of all developers who participate in this system.
- Accepting donations: While 1sub keeps some of the voluntary aspect of donations, you also get something for your money.
> folks can still pirate it
Yes, the point of this is not to make it impossible to do anything without a subscription. It just makes the difference in convenience between subscribing and not subscribing bigger since there are more things that you get or don't get depending on whether you subscribe.
> this effort sounds like some naive newbie took 5 seconds to think about
Interestingly I have thought about this for many years and no idea I have had before or any solution I have seen has felt as good as this one because they always fail in that the user doesn't have enough reason to pay. The main objective of this solution is to give the user more reason to pay.
We pay for software almost exclusively through digital means, but the fees are too damn high.
Imagine if transaction fees were zero.
Imagine if a piece of software you used costed 10 cents per months. Or someone's patreon or github sponsor was 5 cents per month.
And then imagine if starting and stopping the subscription was intuitive and super easy with any digital payment method you happened to use.
I could see the flood gates open and now developers who got basically nothing will get a ton of small contributions that together would make up quite a nice lump sum every month
Something in the mind switches and people turn full on psychotic when it comes to paying for digital services, and there's not much that you can do to fight it with logic.
Just look at Github projects for some really good stuff that are used by thousands or millions. At most the developers will have received 10-20 donations. Almost all of the commenters here on HN have never donated a single dollar to the projects that they love and enjoy.
The reality is that just because someone pays less doesn't mean they cost less to support. And then, if you support a large number of cheap users, it's even more expensive to support.
As a business, you'd rather have 10 customers paying $10 dollars each instead of 100 customers paying $1 each. Larger businesses can overcome this with economies of scale, but smaller businesses cannot
One of the strengths of small business over a big co like Google is your support is NOT automated and you take the time and care to talk to and answer your customer's questions. You can't do that when you charge 10 cents a customer
On top of that, you still need to market/advertise to those users.
It's less time consuming, causes less friction, and is more profitable to just charge $10 dollars instead