The Failed Economics of Our Software Commons
An anonymous reader writes: Most software developers are intimately familiar with having to waste time implementing something they probably shouldn't need to implement, or spending countless hours making their code work with bad (but required) software. Developer Paul Chiusano says this is because the economic model we use for building software just doesn't work. He writes, "What's the problem? In software, everyone is solving similar problems, and software makes it trivial to share solutions to these problems (unlike physical goods), in the form of common libraries, tools, etc. This ease of sharing means it makes perfect sense for actors to cooperate on the development of solutions to common problems. ... Obviously, it would be crazy to staff such critical projects largely with a handful of unpaid volunteers working in their spare time. Er, right?? Yet that is what projects like OpenSSL do. A huge number of people and businesses ostensibly benefit from these projects, and the vast majority are freeriders that contribute nothing to their development. This problem of freeriders is something that has plagued open source software for a very long time." Chiusano has some suggestions on how we can improve the way we allocate resources to software development.
Freeriders are giving you the marketshare. Having a loss leader is not an uncommon business practice, nor is it untenable.
You can't handle the truth.
If we want to address this issue, we need a complete overhaul of our IP laws.
As a little toddler I already developed signs of geekiness. As I grew older, my geekiness ballooned so much so that I could not, even if I want to, deny that in this life, I am a geek
Now that I am old, as an old geek, I still think that what we geek do, what we truly enjoy doing, often goes counter to the outside rule
That is why, when that guy is telling me (and other geeks) that we live by a "failed economic commons", hey, I am not surprised
If we geeks are to live by a "successful economic commons" many of the geeky things that we do, and many of the geeky creations that we have created, would not exist
The gist of the whole thing is this --- economy, whether it be "failed" or "successful" --- is in eye of the beholder
One can say that the economy of a certain country/region is good --- but good for whom? For the general populace, or for the 0.1%?
That is why, we geek don't give a flying fuck about the economy. We do what we do because we enjoy what we do. That is all
If they (and when I say "they" I mean those who look down on the geeks) don't like it, they can go jump into the sea
Muchas Gracias, Señor Edward Snowden !
If you don't want free riders, don't make free software.
You get to choose your license. You don't get to complain that people are following it.
The opinions stated herein do not necessarily represent those of anybody at all. Deal with it.
The people who do this have a number of reasons. Some do it open source software garners job offers. Some do it because they or the businesses they work for need free software to exist, and it's a self perpetuating loop - the more free software there is the more people contribute to it, so the more they have to chose from. For some it's like attending church - it feels right. For some it's a nice social group to be in. None of these reasons means they or the system they contribute to are crazy.
As for the free loaders - without legions of these "free loaders" free software would not exist. Few would bother to put the effort into Linux, or X, or Debian if there weren't legions of users out there to test it, and give feedback, find bugs, suggest improvements. They are a necessary part of the system. A system that for all its faults, works as least as well as any other commercial way of developing software if you go by deployments.
Don't confuse the issue by pretending it's all about collaboration and economics of software. It doesn't make sense to try to shoehorn my software idea into an existing framework exclusively due to price and availability. Just because there's a square peg available for free doesn't mean that it'll fit a round problem, even if a square solution may take longer.
I predominately work in computational analysis and have spent a significant portion of my career trying to figure out physical problems (first in video games and now in engineering analysis), particularly in the finite element/CFD domain. That makes OpenFOAM is a classic example for me -- it's the benchmark for open source CFD analysis. But I'm still employed at an engineering firm developing our own numerical analysis tools.
OpenFOAM is quite good at a very small subset of what it claims to do, but it doesn't do *everything* well. Unfortunately, the framework is sufficiently mature at this point that trying to fork it and address those flaws would be a colossal undertaking. This means that for many toolsets, starting from the ground up is simply a more attractive alternative. Could we reuse a few elements deep in the integrators? Maybe, but those would come with their own baggage.
"Create a Basic Income (financed by the Fed at zero cost to taxpayers),"
How, out of curiosity, will this miracle be achieved? What magic wand will the Fed wave in order to create these resources from midair?
Now, there's a pretty decent argument for a basic income (from economists across the political spectrum, including Friedman, not generally known as a soft-headed liberal), but the money would have to be transferred from elsewhere in the economy via taxes.
Large companies need to stop spending boat loads of money on buying overpriced, re-released commercial operating system and productivity software that changes absolutely nothing useful about business functionality and spend maybe say, 10% of the money from what that budget would have been on donating to or contributing to software projects that the infrastructure's critical functionality relies upon.
Seriously. The money would go further and the software would last longer and everyone would get a lot more actual work done. Every time you buy a new version of Windows its like you're paying to re-arrange the deck chairs on the Titanic.
And don't fucking reply to me saying shit like "durrr, but OpenSSL got hacked and doesn't deserve to have had more money." Maybe that's true, but probably not. Even if it were true, above, I said donating or contributing, as in - spend your own company resources auditing the software if you don't trust it. If you find enough vulnerabilities to distrust the people who make it, then FORK IT OR PAY SOMEONE TO DO SO. The bottom line is, economically even in a worst-case scenario its still cheaper than every single company rolling their own from scratch, or every single company buying the same software over and over again made (perhaps not any more securely or competently) by some completely unaccountable, inauditable closed-source company.
The real problem is that software is bunches of little idiot savants glued together. They do their known role well but ONLY their known role. They are not flexible and have no common sense to adapt to new situations. They have to have an exacting or pre-known environment.
When we try to make software more flexible, it becomes unpredictable, often backfiring. Often it's better to keep it narrow and crash rather than have it "guess" and do something wrong because you may end up with a million wrong results before you catch it.
I remember a story about military battle simulation software being built in the early days of OOP. An Australian company wanted a customized version for Australia, so they asked the vendor to add Kangaroos to the simulation.
Rather than code up a Kangaroo from scratch, which would take a while, the developers made the Kangaroo class inherit from the already built "Human" class. It all worked fine until a group of simulated Kangaroo's were spooked by explosions and whipped out weapons and started fighting back. The "Human" class was tuned for military simulations, not general animals because that wasn't the vendor's original goal.
The story may be an urban myth, but it illustrates some of the pitfalls of "reuse". Unless you have full knowledge of what you are reusing, you may end up reusing unexpected and inappropriate sub-features.
It's probably an undeniable rule of the universe that you have to balance predictability against flexibility. No free lunch, at least not until "true" AI comes along such that software won't make stupid guesses anymore; but then we'd all be obsolete.
Table-ized A.I.
The article is long and poorly organized (that is, the organization is stream of conscious writing like most bloggers; he goes off into a mini-rant about how much he hates CSS/HTML, for example). Here is a summary, as well as I can understand it:
1) A new non-profit is trying to make it easy to fund open-source software, with a new donation method. You can donate, but your donation doesn't go through until ten (or X) other people donate the same amount.
2) This will increase funding for open source projects because:
* Companies don't want to fund open source if someone else will do it.
* It will be cheaper TCO for companies to fund open source projects they use. For example, if OpenSSL had been given more money, they would have fewer bugs (probably by rewriting everything in Erlang; really, that's what he said).
That is literally it. In all 2000 words he wrote, I cannot find another single point that supports his main thesis, that the new non-profit will increase funding for open source-projects. He however did spend a lot of words explaining that popular open source projects should get more money from the companies that use them, so that's something.
"First they came for the slanderers and i said nothing."
While people yell it's too offensive and impossible to get success at business (an very common opinion I've heard so many times), it at least makes the game much fair via requesting you pay for your freedom. For other licenses I think they work "well" is only because they welcome people to pillage their work as the article reveals, so sorry I don't feel sorry for those projects adopted such licenses and claim they're more friendly toward business.
Software is thought-stuff as Brooks famously put it, and it lives in a multidimensional nonlinear space. Just because two programmers are implementing the same thing sitting next door to each other doesn't always mean they're mucking in the darkness, looking for a great software sage to show them how to write reusable code. Maybe one of them is coding for speed, the other for memory footprint, and the third for prettyness. You can't have one set of libraries do all three for you without effectively implementing it three times and giving them each the option. Just because software looks close, doesn't always mean there's a short path to get it to where you need it.
I work on my pet project (http://msscodefactory.sourceforge.net) because it's a fun challenge I set myself many years ago. Whether others use it is irrelevant. Whether I ever make money off it is irrelevant. There is only one thing that matters to me:
That's it. Beginning and end of story. I work on it for fun.
I do not fail; I succeed at finding out what does not work.
The benefits of open source softwares and freeware are incomprehensible those brainwash that greed is good or even that only through greed can come good. The open source projects have created enabling technologies such as httpd, TCP/IP, html, mosaic, etc. Without those technologies the economic booms circling the globe would probably be impossible. It created a feedback loops which into the private sector which then creates jobs and technologies which then help open source projects.
Calling those effects a failure is just silly.
putting the 'B' in LGBTQ+