The Cathedral and the Bizarre
marktarver.com
marktarver.com
The author is very critical of open source on the whole. He has a series of articles detailing criticisms of open source software.
http://marktarver.com/problems.html (The Problems of Open Source) http://marktarver.com/open.html (In Praise of Closed Source)
He is the inventor of the Qi (later Shen) language (essentially a Lisp dialect with a configurable type system). He experimented with taking it open source. He was very underwhelmed by the results and has made later revisions closed source again. In particular as far as I can tell he felt he was losing creative control of the project and getting little to nothing back for it in terms of contributions and features (and in general very unimpressed with people's reaction to the language and the wider programming community's capability of understanding the language).
He has also had at least one argument on Reddit about this (see the post by Mark_Tarver here https://www.reddit.com/r/programming/comments/57h33q/arguing...).
This is one article in a long series of events and thoughts for him that have played out over the past decade.
> This is the time when reddit made an appearance. I blessed the Shen subreddit because I thought that reddit was some polite ladies bookclub - obviously showing my ignorance of it. It is nothing of the sort of course and some of its most vicious sites like Coontown - the reddit for racists only recently closed - shows what is so often like. Reddit is a shit hole; and to a lesser degree so are SlashDot, and Hacker News.
> Unfortunately some members of the Shen group, imbibing the mindshare poison, gave much power away to the opinions on reddit.
> The OS fanatics relished their power to bully and shame and people used to mail me and say 'You need to say something because XYZ has said such and such on reddit'. I did on occasion call such people 'complete prats', but really this was whack-a-mole because the supply of arseholes was unending.
When most people refer to Open Source Software, they're referring to serious projects like the Linux kernel, Apache, PostreSQL, Firefox, etc. They're not referring to random crap on Github.
The serious projects are actually better than their closed-source counterparts, both in quality, and in their ability to be extended and customized. Customization is not going to be cheap or easy, but it will at least be possible.
The fact that I wrote a toy renderer in Rust five years ago and haven't touched it since then doesn't change this. The fact that there are 100 or 1000 times as many toy projects as there are serious projects doesn't change this either.
"... Open source users will admit that a lot of open source is buggy abandonware. However they argue that this really does not matter since some small significant fraction is really quite good and that's the stuff we should use. ..."
Finding and dissecting the paragraph that contains the above sentence is left as an exercise to the reader.
> This lesser-known fact is masked by the isolated points fallacy. The isolated points fallacy consists in taking the high scoring points on a graph and plotting your line on the basis of them. Hence open source champions wheel out the standard examples of success - Open Office, Wordpress and Red Hat Linux (we'll look at why some of these have succeeded later) - ignoring the vast sea of floating half submerged buggy and abandoned projects (over 120,000) that litter Github. It is the sort of technique Mugabe would have used for TV. If you're accused of starving the country, wheel out a handful of well nourished kids for people to see. 'Look, our country is fine; see how healthy these kids are'. Out in the slums the less fortunate die of cholera.
I think he's applying closed source's rules. A closed source project is a failure if no one uses (ie, buys) it, since it represents a development cost that wasn't compensated. Not so with open source. I don't suffer if no one uses my project, and the existence of my repositories doesn't detract from anyone else's work.
Also, I'm sure everyone's seen a closed source project that went nowhere?
So the author is wrong to compare all software on Github to closed source software he's heard about. Those "measurements" are completely different.
It's only when you make a full system that the end user can get value out of that you get into the scenario he outlines. Somewhere in the middle in between the simple code dump and Firefox, open source tends to sink into a quagmire where it looks like a product but it's not supported like a product. And the only good answers then seem to be "go small" (impose LOC limits and hard constraints on features you ship so that maintenance drifts towards stability) or "commoditize" (become part of someone's product in a way that gets you paid).
I don't think this is true. The vast majority of closed source programs are created in house for in house use. No one is ever offered it publicly so no one buys it either.
It's hard for people to see the scale though because there is usually no central repository.
Is there any special reason to believe that closed source is any better? If we can count the sea of abandonware on Github, then we get to count the mountain of "interesting" code that remains internal to large companies, or worse, the stuff that actually got released on unsuspecting customers.
FLOSS abandonware has no such constraint.
I'm not just being contrary, I've worked on a project for a year or two that got scrapped, and I think it happens a lot.
Another way to look at it, is that if you have programmers that are regular employees and not temps or something, you might as well have them work on something that's not very important, or that's risky, when you don't have something better for them to do, because you're paying them anyway.
Every job I’ve ever been involved with has always had some code base that was in framework X and now needs to be in framework Y, or on in house hardware and needs to move to the cloud, etc etc.
And having just interviewed every place has a project like that. “We were using PHP for the mvp but are moving to RoR”, “We were using class based react but now we’re using hooks”, etc etc.
I feel half of it is valuable migrations and half of it is to always have something on our plates.
And it always has to get done yesterday. What a world.
To keep engineers motivated, the work has to have sufficient amount technical accomplishments and not just churning out business features.
Luckily, due to continuous growth in market and scale of users, and improvements in hardware, there is opportunity for serious amount of technical work in any project.
Also, faster time to market is of real business value. Compromises are done in ideal perfect designs to meet timelines (or resource constraints) – hence, tech debt occurs and it is real and just as useful as financial debt to help scale a business in a competing marketplace.
And speculative/iterative market feedback based development is also real. All these things add up to one thing – things that were right for yesterday isn't right for tomorrow.
So we have to rewrite or refactor software continuously. And that's perfectly normal. It is actually one of the biggest strengths of software based solutions – that we can change things live - while it is already in use - change the engines of the rocket while it is flying - so to speak. We have to embrace this and leverage it disruptively.
Those who pine for perfect software are denying realities of the larger real-world.
Two years later, that still happens from time to time.
So, from my point of view, it looks much more like businesses pay developers to write software to be thrown away. Which I guess is fine with me, as long as my paycheck keeps coming....
If this is the case, did any of those projects contribute to you guys still being around now, two years later?
None of those projects contributed to still being around 2 years later, but one of them (if simulations based on prior years' data are assumed to be reasonably accurate) would've improved revenue on one of our sales channels by approximately 30% if it had actually been put into production....
As many (most?) of us on HN are in some sense or another professional programmers I would think that would be an easy question to answer.
In my opinion the vast bulk of closed source code suffers from exactly the same constraints.
And most definitely there are vast quantities of quite execrable code in closed source programs. I've seen plenty and written some.
Yes there will be many badly written programs (I think someone said that 90% of anything will be not very good), but there is good stuff too. I think it may be the case even with the closed sources, but in that case they are unavailable so we will not have any statistics about it.
Theodore Sturgeon is usually credited with it but he was a little less polite and rather more definite, see: https://en.wikipedia.org/wiki/Sturgeon%27s_law
> [Open source] did not reward innovation. The most successful products of open source are knockoffs of old ideas; Linux included.
So what about Spark? What about Python numpy, pandas, and scikit-learn? Most people don't just use them because they are open source. They are innovative solutions to difficult problems.
I ask you in good faith...if you pushed this to a public github repo that was your reasoning? If it was something I found to be of value and you'd LICENSE'd it under a promiscuous license and I took that code and made a few million dollars from your idea (and kept all the money), would you be happy with that?
Was this just a thing to show potential employers you can code and use git, how does an employer even know actually you wrote that code?
> they're referring to serious projects like the Linux kernel, Apache, PostreSQL, Firefox, etc.
I feel you're missing the point here, not all the contributors to these projects are getting paid for their efforts. See his point about Linux Torvalds comment about:
This model of using people was acknowledged right from the beginning with a sly wink to Linus Torvalds from Eric S. Raymond in The Cathedral and the Bazaar.
Eric S. Raymond: "In fact, I think Linus’s cleverest and most consequential hack was not the construction of the Linux kernel itself, but rather his invention of the Linux development model. When I expressed this opinion in his presence once, he smiled and quietly repeated something he has often said: “I’m basically a very lazy person who likes to get credit for things other people actually do."
I'm not a programmer, I'm a researcher. Let me tell you a fact: about 100% of research articles are not updated.
Somehow the link [0] cited in the article makes an indirect similar point, but what's wrong with programs which are not updated? After all there is a (small) group of people who keep telling that programs are the next level in mathematics, (ideally they are) better than proofs.
[0] https://www.techrepublic.com/article/open-source-failure-is-...
If "category killer" is a winner-take-all competition, then there are going to be a vast number of losers, and we do see a vast number of unmaintained projects. It's just that no one is bothering to remove them from view when they're defeated.
Maybe we should stop using bad metaphors? Writing software is not a Darwinian process, neither is competition on the market place. Unless you got your OS by randomly twiddling bits in the binary file, in which case why are we even talking about open source?
If that improved the chances of that lion's genes surviving, it would absolutely be selected for. Obviously it generally doesn't because there's safety in numbers, etc.
> the goal of evolution
Minor nit: evolution has no goal. It is undirected, random, capricious, etc.
I’d suggest that a fair amount of github open source is resume padding, or at least an attempt at it rather than “scratching a developer’s itch” which the original ESR paper mentioned as a reason.
Huh. "Abandonware" is a very old word as far as internet culture goes, referring to something entirely different.
The same abandonment happens within healthy corporations with proprietary source code.
Bit rot, for one (not keeping up with changing OSes, APIs they talk to, environments, libs they use, security concerns, etc), but also the fact that when they stopped updating they were still incomplete and more often than not half arsed.
Don't delete your repos because they are "old". You could be doing a favor for some random person with a google search, looking at something you looked at too.
The act of writing code changes the programmer. I have written many things that didn’t turn into successful open source, nor did they act as resume-ware. But the act of writing them taught me something.
There is no waste of human effort involved when you practice your craft. This is like telling me that if I climb a cliff and then lower myself back to the ground, I haven’t gone anywhere.
Right now I’m working on implementing a subset of regular expressions that compile to finite-state recognizers. There is a zero-percent chance that my working code will be used in production.
So what? I am learning something about pattern-matching, and perhaps it will grow into a little language like SNOBOL.
http://raganwald.com/2019/09/21/regular-expressions.html
If that is a waste, then most of my most enjoyable moments programming were also a waste.
Yup, what about the amount of human effort that has been wasted in the course of producing off-the-shelf proprietary software? How much of that proprietary stuff is now entirely useless, for some reason or another? It's just so weird to make an engineering-focused argument for proprietary stuff, when the only case that's even remotely plausible is about production incentives, and everything else hugely favors FLOSS.
As an aside, I'm pretty sure that, in the medium-to-long run, we'll manage to fund FLOSS development to an entirely satisfactory extent via crowdfunding, and that while saving a lot of dough compared to what it would take to fund proprietary development in the same way.
But in fact, even his point about support revenues is misguided. Well-designed and easy-to-use software does not really draw fewer paid-support arrangements than software that's hackish, unintuitive and the like. The nees for paid support is almost entirely an organizational one, so it matters zilch how easy the software is to support in reality; it's far more important that the organization can point to that support contract if any such need should arise.
There are ~3 projects that I would have actually have liked to go somewhere, real projects not toys, that I have abandoned.
So that "98% of projects" statistic is fair, but I think those numbers would be looking a lot better if you accounted for the fact that github is just a place to throw stuff up. Just because something is on github doesn't mean it's an open source "project".
Then why put it there?
git works fine without github. And by putting your projects on github all you did was add to the baseline white noise that people have to filter through.
On quality: quality is very suggestive. Quality changes if you factor in questions such as: Does it run well on low-end devices, does it track you, will it still open your files in 10 years, will the company still exist in 10 years, does it work well on many platforms, can it be automated, etc.
Open source culture changed all this drastically. This culture started with individuals loosely connected via Internet who collaborated on writing software and without much complex central infrastructure. Common conventions and standards emerged as these individuals openly discussed them and took with them to other projects – not just conventions and standards, but also the code. Without the enterprise lock-in, this has proven to be extremely successful and cost-effective.
Most commercial software companies today follow this new model for their internal software development practices. Using openly available technology components lets everyone to acquire portable skills that they can continue to improve throughout their careers across many different companies. This drastically reduces the cost of software production as cost of acquiring skills is amortized over many companies and cost of development effort of these open source standardized components is also amortized over many corporations/projects.
Every company I worked in has supported contributing to open-source with the selfish motive to attract talented engineers. And the engineers like contributing to open-source projects as a way of showing off their skills and building their resume.
For example I use Mercurial rather than Git. Mercurial had better Windows support, a better command line syntax and with TortoiseHg a better Linux GUI. However, it happens all the time that linux distributions include wrong versions of Mercurial and TortoiseHg. You can use an old version of Mercurial and an old version of TortoiseHg, or a new version of Mercurial and an new version of TortoiseHg, but the distributions package a new version of Mercurial and an old version of TortoiseHg, and then TortoiseHg does not start. So they ship a completely broken package and no one cares because it is not a standard tool. (and last time I tried to install TortoiseHg from source separately, it also did not run, because was not compatible to the Python version installed by the distribution)
Recently I wanted to use a tool written in OCaml. It is really well written, has a GUI, using gnomecanvas. And it does not start anymore. Debian/Ubuntu has decided, gnomecanvas from gnome2 is deprecated and will no longer be installed. But the new gnome does not seem to have OCaml bindings. I am not aware of anyone working on a update to fix that. OCaml is too small to be allowed to make GUIs.
I write my software in FreePascal. After a system update, my projects do not start anymore on Android. Turns out binutils has enabled relro by default and FreePascal does not work with relro enabled. Imagine GCC could not create Android apps in the default settings. That would be fixed quickly, but with FreePascal no one cares
It is a check and balance on proprietary software, in quality, cost, privacy and independence.
It has benefitted developers directly, in education, in transferrence of skills to other employers, and in direct customization of software for their personal needs.
So was the Nazi party.
The problem is with the distribution of benefits. Much like the vaulted Lebensraum the question is who gets the land and who gets to be fertilizer for the land.
So far the answer to the first is Bezos, and to the second is everyone who isn't Bezos. A distribution that leaves something to be desired of.
According to the release history, "The Cathedral and the Bazaar" was written in 1997, but originally used the term "free software". The term was changed to "open source" on February 9th. [2]
[1] https://opensource.com/article/18/2/coining-term-open-source... [2] http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral...
Nobody tell this guy about Bourbaki... He's also probably never enjoyed a movie.
[2] https://web.archive.org/web/20050305143929/http://www.cs.du....
That proof-readers, editors, etc work on it too is inconsequential.
TFA didn't say more than one person can't contribute something or work an artistic project. It said that one or a very few people have the direction and the overall command and vision -- e.g. the opposite of "community process" or "design by committee".
Software can become complete broken by a bad patch.
That is seen the best at security issues. Like someone thinks it is a good idea to add a heartbeat extension to ssl. A basically pointless extension, if you have a novel with a pointless appendix from an editor, basically no one would read the appendix and it does not matter that it is there. But with software it ruins the entire server security completely
It is better to pass on 100 good patches than risking one bad patch
It's a no true Scotsman argument.
> Within the field of mathematics, Tao is known for his collaboration with Ben J. Green of Oxford University; together they proved the Green–Tao theorem. Known for his collaborative mindset, by 2006, Tao had worked with over 30 others in his discoveries,[15] reaching 68 co-authors by October 2015.
Movies are also team work only in the sense of many people working under the vision of a single person: the director. But that's also true for any system designed by 1-2-3 people where 100s also work on.
My own projects I write by myself; often there are no other contributors at all (although I do accept bug reports and sometimes accept contributed code too, I am the only maintainer).
SQLite is a good open source software project (there are some proprietary extensions, but the core system is open source, and there are also open source extensions which are as good as the proprietary ones if you do not need the warranties and professional support they provide), and is written by only three people. Still, the commit history is public and I often look to see what changes they will have in the next version (and in one case, even found a bug and reported it, and they quickly corrected it).
I have heard Bourbaki before but didn't know much about that, but now I look it up and I can see what it is. I did not know that Bourbaki is actually a group of mathematicians, but I looked and now I know. I also did not know that the "dangerous bend" sign used by Knuth was invented by Bourbaki.
What a stupid comparison. That would be like listing all the commercial projects that go out of bussiness, or dont even progress far enough to get funding in the first place, and saying closed source model is a failure because most closed source projects fail.
⌘-F show only two references to GNU or Stallman, both derogatory references to Emacs. All references to Linux are about how early versions sucked and how it was a "copy" of Unix.
This highlights a lack of understanding from the author which may explain a lot of the viewpoints.
Then there is the argument that "open source isn't innovative." This seems like a really tired argument. Most software of any kind can be painted as just a mere modification or variation on something that someone once wrote in the past. We've had almost a century of software, after all. I also like the links to late-90s and 2000-era websites saying that Linux will never be innovative. The only way this could be better is if we could create a deep fake of Steve Ballmer saying it onstage.
But wait! Tensorflow is open source, so we can't use that, clearly. Financial deficiency disease and all. Luckily, I'm willing to make a special enterprise edition for this guy, at a modest charge.
Citation needed. I don't think people were saying "open source" in 1990. FSF/GNU had the term "free software" for longer but they had to explain it on every first use. (Probably still do to an extent.)
That's factually incorrect. The term "abandonware" dates back to the 90s (long before github) and was originally used to describe software that was predominantly proprietary. Virtually all proprietary software ever written has become abandoned or will eventually become abandoned, but I guess that fact doesn't really square with what the author wants to say.
The main problem is this: in sufficiently complex programs, roughly associated with LOC, there becomes a point where there are no longer enough eyes on enough pieces of code.
Therefore, I propose that the future of FOSS in the Bazarr style is to focus on reducing code complexity and increase readability as much as possible.
“It’s not the daily increase but daily decrease. Hack away at the unessential.” - Bruce Lee
I hadn't read ESRs paper in a few years, but just reread it again now. This author is definitely oversimplifying and mischaracterizing it. It's not right to conflate "Cathedral" with "Closed-Source" and "Commercial", nor to incorrectly imply that's what ESRs paper point was. Plenty of earlier Open Source software, notably FSF software itself, is (or was) developed "Cathedral" style and ESR definitely talks about that. I always read his paper as kind of "GNU FSF" process vs. "Linux", both being Open Source (or Free to please RMS). And I think history has proven his points rather nicely, IMHO.
But "Cathedral" and "Bazaar" are just two points on a spectrum anyway, and it's mostly orthogonal to a "Free/Open" vs. "Closed/Commercial" spectrum.
Now to the rest of the paper, while couched in formal and civil language, the author would have been much more succinct if he just came right out and said "Open Source Software Sux!". Which is an odd point to make for an academic having little experience writing either or any kind of real software.
I can see he thinks that, but there's not much in the way of actual arguments, other than opinions and cherry-picked sentences from ESR's paper, to make it worth picking apart or disagreeing with.
So yup, I fully agree: Dr Mark Tarver thinks that "Open Source Sux because Reasons".
Now then, I will just be getting back to the universe in which I live, where Open Source software is the foundation of the internet and just about every other piece of modern technology from doorbells to cars, including nearly all proprietary commercial products too...
> Help create a generation of takers that believed that all code should be open source and embraced open source as a religion. Online bullying of dissent began in forums. A large number of believers then traded 'code' for 'digitisable media' and the most active of those went in for DRM cracking and piracy.
Judging by the comments so far, I think he struck a nerve.
There's actually substantial value in access to such things. Rather than repeating the experiments yourself, you can go see where they led others without investing the time and energy to repeat the effort. If you find something that mostly resembles what you would have made, can get along with the license, and still wish to move forward - huzzah, a jump starting fork is born.
Abandonware IMHO is more appropriately applied to examples like Google's ever growing list of abandoned projects that actually had users, where the world noticed the abandonment of something useful.
The cathedral and the bazaar was not a book, it was an essay. They apparently later turned it into a book but I know nobody who read the book. The essay, in contrast, was read by everybody in the scene.
Here's how I remember it.
Open source has no specific meaning before esr claimed it. And after he claimed it, crucially, open source did not mean you could not charge for the software.
I practice almost no source code was released under non-liberal licenses, but there are some notable exceptions. For example, Microsoft released the source code of the Windows kernel for research use to universities. AFAIK that technically means Windows is open source.
esr was not against releasing source code under non-liberal licenses. He was just convinced those would not stand a chance against code released under liberal licenses. Time has proven him right, I would say.
Also this article misses the point, I think. Open source was not meant to define or enshrine a methodology. It was coined because at the time people felt that the free software movement was holding itself back in the fight against Microsoft (google "halloween documents" to get more insight into esr's struggle against Microsoft) because it sounded like you could not make money with it. Also because the GNU General Public License said if you make changes to a piece of GPL code, the result must also be under the GPL. So in a sense GPL actually did impede commercial exploitation of free software.
At the time many libertarians (like esr) felt that the market would solve this if you just let it, and software is not the place to fight ideological wars about the freedom of software.
I'm just paraphrasing the arguments here as I understood them. Personally I come down on the pro-GPL side of the aisle.
What do people think of Social Architecture, Pieter Hintjens' ideas for building successful open source software?
Collective Code Construction Contract https://rfc.zeromq.org/spec:42/C4/
https://legacy.gitbook.com/book/hintjens/social-architecture...
https://en.wikipedia.org/wiki/Pieter_Hintjens
--
Hintjens' worldview appeals to me.
I've done a bit of activism, with (very) modest success. A Design Patterns book club I started 20 years ago continues today; we somehow stumbled on a sustainable format.
Not having any successful OSS projects of my own (yet), I can't say if Hintjens' ideas work. I hope to find out.
> What the world does not need is another buggy open source copy of Windows Media Player.
Is this supposed to refer to VLC ?!? (Admittedly that one is not in in the current version of his "manifesto".)
- Somehow using GitHub as an example that Darwinian competition doesn't work.
- Retconning the term "abandonware"
- The tired (and wrong) argument equating counterfeiting to theft. (No wonder that he thinks that mindshare is unrelated to making money !)
> Instead [F(L)OSS] produced a graveyard of dead software; the largest sink of wasted human labour in history - bigger than even the Mao's Great Leap Forward or the Stalin's building of the White Sea Canal.
And after all of this, he has the gall to call F(L)OSS proponent "Zealots" !
"Why do you look at the speck of sawdust in your brother's eye and pay no attention to the plank in your own eye?"
There is no barrier to entry on GitHub or similar repositories.
It's quite another thing to contribute to the Linux kernel, or gnu, or similar, which are overwhelmingly excellent, and an essential part of running the world as it's currently configured.
1. As a learning experience, how does GitHub work?
2. As advertisement for myself as software developer
3. As a check on myself, is the software good enough for others to use. When you do something publicly "on stage" it better be good. Not only good in terms of "code quality" but in terms of "does it do something useful?".
So I think I've got some benefits from publishing my code as open source. Not financially, like the corporations.
I think the world is still waiting for a better monetizing model for opens source, as well as for component-software in general. As things go Cloud, I think such a model will eventually if not soon emerge.
On the article, I found this to the point:
"The truth revealed that OpenSSL was seriously underfinanced with only one full time operative working on a code base of hundreds of thousands of lines of C."
4. Breaking down that barrier of perfectionism that prevents you from publishing or finding worth in your creations.
So I think the point of the article is that while Open Source has its uses, it is not and as far as we can see never will be a wholesale replacement for commercial software.
"An awful lot of popular open source is inferior reverse-engineered copies of existing commercial software (Gimp, OpenOffice etc)." Is Gimp a reverse-engineered copy of existing software? Just because it is similar to some proprietary software does not necessarily mean that it is a "reverse-engineered copy" of it. OpenOffice presumably involves the reverse-engineered formats of Microsoft Office, although now there is LibreOffice. Both Microsoft Office and LibreOffice each have some features the other lacks. What is "inferior" may also depend on your opinion, because in some cases it isn't so clear, and in some cases it may be inferior in some ways but superior in others.
"If open source programmers do innovate and their innovation is good then its just as likely to be swept away from them by the corporations who have the capital to exploit it." In my experience that doesn't always happen. Many features first implemented in GNU/Linux systems are things that they did not implement similar features in Windows until much later.
"... the Linux desktop still lags behind Windows and the interface looks stuck in the 90s." Actually, I think both in Linux and Windows many programs try to be too fancy, but in Linux I can change the window manager and all of that stuff easily and still works. I uninstalled the desktop environment, and I think it works much better than Windows ever did, actually.
"Good software is properly documented, does not break and does not require hand-holding to use it." True, but that isn't the issue; the issue is customizing it.
Love of money is the root of all evil.
As he notes, it’s still the case today that the vast majority of successful open source projects are only those coming out of mega corporations that actually pay tons of smart engineers to spend time on them (fb, google, uber, et al). It happens every now and then, but it’s quite rare that some solitary programmer or duo whip up an os library or product that snags as much of the market as an os project managed by one of the big dogs.
Burnout on the part of solitary maintainers of non-corporate backed os projects is also quite a real and problematic issue.
The adoption of the MIT license, I’d wager, borders on a cultic practice these days and is rarely the outcome of long deliberation on the appropriate license selection on the part of a project maintainer (excluding of course the big companies, whom are incredibly savy and smart about this because they have lawyers).
Os projects also have, generally speaking, horrible support. If an os library isn’t small enough or written in such a way that I can read the source and understand it in about a day and a half, maximum, I won’t use it. The adoption of certain libraries also trends toward tribal practice and ritualistic behavior. People select librires based on their popularity or a personal incentive (these two motivations merge, since a thing’s being popular stirs a personal incentive to learn it in order to be more valuable on the market, see react et al.) more oft than they do based on a thorough technical assessment.
All in all, os has benefited massive corporations much more than it has benefited solo programmers or users. Tbh, I would not be surprised if a world w/o open source actually would have given us more diversity in the tech market—spawning several boutiques of software houses churning out small-scale bespoke, but closed source, tech instead of massive corps who not only use os as a “good grace” but also as a tool to create yet another relation of dependency between themselves and users or other companies—i.e. gain more power.
OS’s one invoiable benefit is that it has significantly liberated the auto-didact—its a huge boon for those that can’t learn through other channels...but even this benefit comes with wrinkles. One can’t know which of the practices one sees in os code are instances of good or bad technique without having external knowledge about programming techniques, which cannot come from code reading alone (unless you think a pattern’s frequency equates to it being a good practice, arguably a mistake in most cases).
When you're depending upon some piece of closed source abandonware, you're without recourse. If by any chance, you'd be depending upon an abandoned open-source software, most probably it has been abandoned because there are better alternatives; or in case there aren't, you're still free to salvage it from oblivion.
The whole article reeks of bad faith.
What an absurd dichotomy. Even if you work full time on open source, you probably can't be a major contributor to more than a handful of large projects, at most; many people specialize in just one. But you probably use dozens to hundreds of open source programs. So for any project with a modicum of popularity, of course the number of people who use the software without contributing dwarfs the number of contributors. That would be true even if everyone worked full time on open source.
Admittedly, the OP's definition of "takers" is not just "people who use without contributing", but tacks on some ad hominem insults to supposedly qualify it. The result has very little resemblance to reality. Sure, there will always be some people who become truly abusive if a project makes a change they don't like. But they're definitely a minority. Most people, facing such a situation, don't speak up at all; they might be annoyed, but they keep it to themselves. Others do speak up, but know how to be polite about it. Perhaps the OP assumes that people should not voice negative opinions at all, if they're not contributing to a given project. I disagree. A good default assumption is that open source maintainers are open to polite and well-reasoned negative feedback. A maintainer can always forbid such feedback in official project forums if they so choose; if they do, users should respect it, but it's is not a very gracious move.
And what the heck do DRM cracking and piracy have to do with anything? In my experience, those people – whom I respect – form communities which are oriented around piracy, and pretty separate from the open source world. In part this is because the nature of the work they do is different; reverse engineering is different from software development, and many pirates do neither of those, but just use existing tools to distribute pirated copies of whatever type of media they're fans of (e.g. anime). I'd say they're also more likely (compared to programmers as a whole) to use cracked proprietary software instead of open source. Of course, this is a massive overgeneralization, but the point is that bringing them up makes no sense.
Now that we have machines that can do weaving and sew patterns automatically, it's possible to create a tapestry without as much time and expense. But until recent times it was time-consuming, laborious, difficult, and expensive.
One day we'll have machines to write code for us in minutes that would have taken weeks or months for humans, and we won't need to pay people to slave over keyboards to churn out pithy little programs and litter source code repositories all over the internet. We won't have to whine about the unkept documentation, or use complex systems that feed random data into test harnesses just to find the bugs that we accidentally put into the code. One day programmers will be obsolete.
Until the new machines come around to replace us, our software tapestries are going to remain really frigging difficult to make. So, yes, without proper financing, most of them will probably be abandoned.
What I'm wondering is: how many of the new machines already exist, but we can't use them because they're proprietary or patented?
The FUSE situation would seem to be a key piece of evidence supporting Dr Mark Tarver's main thesis that writing open source generally doesn't pay or mostly pays corporations who are in a better position to monetize the value in the software. His linked essay at the bottom about Stallman states the Stallman offers no economic model that would pay a programmer for their labor and states that may be because he has no business experience.
'His argument rests on the claim that "most open source code is poor or unusable." When most people refer to Open Source Software, they're referring to serious projects like the Linux kernel, Apache, PostreSQL, Firefox, etc. They're not referring to random crap on Github.
I'm afraid this in an attempt to redefine open source and is an example of the 'isolated points fallacy' covered in the essay. Open source includes everything with an open source license. To say OS is successful by defining all projects that do not succeed as not part of OS is simply to coin a tautology.
'Is there any special reason to believe that closed source is any better? If we can count the sea of abandonware on Github, then we get to count the mountain of "interesting" code that remains internal to large companies, or worse, the stuff that actually got released on unsuspecting customers.'
Again covered in the essay
'Proprietary software vendors typically make money by producing software that people want to use. This is a strong incentive to make it more usable. (It doesn’t always work: for example, Microsoft, Apple, and Adobe software sometimes becomes worse but remains dominant through network effects. But it works most of the time.)
With volunteer projects, though, any incentive is much weaker. The number of users rarely makes any financial difference to developers, and with freely redistributable software, it’s near-impossible to count users anyway. There are other incentives — impressing future employers, or getting your software included in a popular OS — but they’re rather oblique.'
What an absurd dichotomy. Even if you work full time on open source, you probably can't be a major contributor to more than a handful of large projects, at most; many people specialize in just one. But you probably use dozens to hundreds of open source programs. So for any project with a modicum of popularity, of course the number of people who use the software without contributing dwarfs the number of contributors. That would be true even if everyone worked full time on open source.
A giver is a person who gives as much or more than he takes. A taker is one who takes more than he gives. Define it in relation to open source as a whole and the dichotomy is valid. There are users and corporations who take far more from OS collectively than they give back. Is this hard to grasp?
'The vast majority of comments that take issue with it in this thread thus far are nitpicks about minor points, and almost none address the essential thrusts of Tarver’s argument, all of which are actually quite cogent.'
That's basically right and that's why after 20 years the OS movement is still stuck where ESR left it.