It's a tired meme but we really do need some concept of "finished" in our field, along with the necessary incentive structures to enable people to do the needed maintenance on finished software in perpetuity.
It's a tired meme but we really do need some concept of "finished" in our field, along with the necessary incentive structures to enable people to do the needed maintenance on finished software in perpetuity.
For example a new feature added last month is the new pcre2_set_max_pattern_compiled_length() function, to limit the size of compiled patterns. I assume that wasn't added for the craic but in response to a real-world use case. There are also plenty of bugfixes and smaller changes.
In my comment I stated:
> a bridge needs some maintenance and upkeep, yes,
Is there a way I could have stated that to emphasize that bridges will fail if they're not maintained?
For example, I tried to implement a simple library/module system in the GNU bash shell. I was writing a lot of shell scripts and just wanted an easy built in way to load them from a standard conventional path. I didn't expect this feature to be controversial in any way. I went to their mailing lists to talk about it and it culminated in other users describing it as "schizophrenic". I now view as a huge mistake my decision to write bash scripts instead of using a proper language from the start.
it's no coincidence that corporations that own proprietary code don't have this problem.
has anybody considered that maybe Richard Stallman was wrong?
maybe it ISN'T a good idea to volunteer your time to write libraries that corporations will use to make billions, while begging for donations.
maybe, sometimes, libre licensing is a mistake specifically because it leaves maintainers with no reasonable avenue for compensation
> it's no coincidence that corporations that own proprietary code don't have this problem.
I would argue they have a similar but worse problem. Someone at google creates an awesome product. They get promoted and leave the project. Someone else is assigned to maintain the product, which slowly gets worse over time either a) because the new maintainers are less skilled/driven or b) because programmers perceive themselves as being paid to write code, and it's fun, so they're going to change things even if nothing needs to be changed.
I've seen so much commercial software get worse over time. I'm not sure if I have the causes right, but there's definitely something wrong with the model. In contrast, I've found open source software to be far better for far longer. It might stop being maintained, but it almost never gets worse in my experience.
There is no objective "right" or "wrong" when it comes to libre.
I have written dozens of libre projects. I don't want them to be proprietary. I don't want to make money from them. If I did, I'd simply use a proprietary licence, no one forced me to go libre.
Proprietary programs have a different, interesting problem: They eventually disappear. In 1995, the year PCRE2 was born, I was doing classic MacOS GUI programming on a 680x0 machine, running Metrowerks CodeWarrior as my IDE, and relying on a bunch of tools that are now gone. The proprietary technology I used in those days is now almost universally extinct. I think only BBEdit still exists.
A couple of years later, I switched to Emacs and Linux, and they're still going strong a quarter century later. I hope to get another couple of decades out of VS Code (or a fork). I can deploy Linux apps to containers. And PCRE2 is still going strong. Oh, and I can still typeset math with LaTeX.
I think there is real value in software that is "done", with stable APIs and very conservative maintenance, which can remain in use for decades. That's a world I want to live in. Let me keep using proven technology where appropriate, and switch only when I find a good reason to switch.
> maybe it ISN'T a good idea to volunteer your time to write libraries that corporations will use to make billions, while begging for donations.
I sometimes avoid letting my projects get too successful in order to minimize my support costs. But in general, if you want to earn money from software (open source or proprietary!), you're going to need to build an actual business. Using a proprietary license isn't magic. I can use a restrictive license, find no customers, and still earn no money. It's the easiest thing in the world.
If you want money for an open source project, you're still going to need to focus hard on the business part. The easiest way to do this is consulting. Your users will still capture 99.9% of the value from your software, but a successful open source project can still be turned into decent revenue—if you keep working at the business side, too.
Mostly, when I release open source, it's because I've created something useful, but I know that it would make a lousy startup for one reason or another. My employer is happy to go along. They see that a tool is useful internally, that we couldn't sell it to our customers without a massive pivot into a difficult market, and the tool isn't hugely useful to our direct competitors. So why not share it? Sometimes we get a useful PR! Even better, designing a tool to make sense as open source sometimes makes it more reusable internally.
True, but I was using Windows in '95, and it still exists. I even use the odd bit of software from that era (typically small command line things.) And I'm still using Word and Excel.
So I'm not sure your comparison holds water. In the sense that some companies keep developing a product forever, and some have a history of ending things all the time.
That's of course equally true for Free Software projects. Most have been abandoned. Most have been replaced over time.
Your point about business is spot on. If you want to make software your business then you will spend most of your time on the business part not the software part.
Consulting is one path to income. Unfortunately consulting on proprietary software pays better than consulting on Free Software [1]. Equally consulting on some large (free) product pays better than consulting on your own product [2]. Which of course is all fine. There is no reason your income anc passion have to be related.
[1] obviously I'm talking generally. But for example SAP pays better than PostgreSQL.
[2] still a generalization, but the market for say PostgreSQL consulting dwarfs the market for say MyEditor consulting.
> maybe it ISN'T a good idea to volunteer your time to write libraries that corporations will use to make billions...
If you are writing libraries that are being used by companies as part of proprietary software at all -- much less to make billions -- then you didn't pay attention to Richard Stallman.
> isn't the whole point of intellectual property law to align incentives?
Yes: which is why Richard Stallman and the Free Software Foundation specifically came up with a model which uses copyright law against proprietary software via the idea of "copyleft".
I think there are people out there who fundamentally believe in doing service for other people... as long as they aren't taken advantage of! Aligning this incentive by encoding this moral contract into a civil one is the goal of the FSF.
(Now, I won't say they nailed it... GPL2 failed to foresee and prevent DRM, and even GPL3 has issues with the new era of cloud hosting; but like, they did much better than anyone probably should have expected.)
Contrary to the title of this LWN post, PCRE2 is not "Free Software" and is actually licensed under BSD; the result is that, yes: a ton of companies use this library and they make billions.
edit: because RMS/FSF's position is not simply "all free software equally good and you should spend your time building some with any license"