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.
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.
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....
> [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.
"... 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.
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.
Also, I'm sure everyone's seen a closed source project that went nowhere?
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).
So the author is wrong to compare all software on Github to closed source software he's heard about. Those "measurements" are completely different.
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."
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
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.