I have been considering building my own home lately and while at the hardware store, i picked up a thick book of home plans. As I flipped through, I realized, this isn't a book of home plans, it's a catalog for plans that you can buy. So I thought, are they selling this? There's nothing in it of value, just pictures of more things that you have to buy later. I looked at the back and sure enough, the catalog itself cost $10 and they dont even have the prices of the home plans themselves. If you want the blue prints for the house, you have to pay MORE money and those cost $60 or more.
And so I started thinking of course, like any hacker would... I've been looking for examples of industries that give away the product of their work. Here was one in architecture and construction. Not only are the blue prints not free, but the catalog of things not free isn't even free. So it's like, two layers of not free in the same industry.
Can you imagine architects giving away their blue prints? Essentially, that's what source code is, it's a blue print for a product. It's an encapsulation of a lot of work, research and development, experimentation, and energy. If architects gave away the blue prints for homes, then architects would have trouble eating.
I know, people say, you can't pay for passion. If people are passionate about software, they'll do it for free. But I'm not so sure that's true. I think there are reasons other than money and passion about software to write software, popularity for example.
Here's the rub, every other popular industry gets money in exchange for their contribution. "If you're good at something, don't do it for free."
Of course I wonder, "Why am I so opposed to Open Source?" Am I insecure about my code? Am I delusional? If so many, seemingly rational people, are pro Open Source, why am I so closed?
It's a real debate inside my head. I don't think it's insecurity. I have no problem writing code that is open and viewable to people who pay me to write it. I would have no problem writing open source code for a company that was paying me to write the code. If it's their code, and they are paying me to write it for them, please, show it to the world -- better for me. I've written enterprise code that never got used outside the company and wished I had something to show people. "I built this badass system for nuclear plants, you should have seen it!" But of course they can't...
I'm just thinking of the logical conclusion... what are the long term consequences of FOSS? I think about incentives here. I think about comparisons between teachers and athletes for example. We say, "We should pay teachers like we pay athletes." I've actually considered being a teacher. Everyone tells me I would be a great one. I really love this stuff. But why should I encourage people to go into a field where I know they will have a tough time eating because there are too many people giving away free labor? How can engineers pay for food if no one is paying them?
Why is this so difficult for me to understand? I'm not stupid. I'm pretty smart. Why doesn't something that seems so obvious to so many other seemingly smart people not make sense to me?
Compare our industry to Medicine and Law. It's actually illegal for people who aren't doctors or lawyer to dispense medical advice or legal advice. These clever professions engineered these laws to protect their industry. Oh, I know lots will cringe at the thought of that. I know the thought is that stuff like this subsidizes crappy coders through artificial scarcity. I'm still not convinced the scarcity is actually scarce, because the production of the product depends on the consumption of scarce products, but I digress...
I think the debate about the flamewar over web programming being stupid is one ramification of this issue. Web programming isn't actually easy. It's easy to a point, just like carpentry is easy to a point and plumbing is easy to a point and electrical work is easy to a point. But it's also easy to be dangerous. It's easy to biuld homes that fall down and plumbing that starts leaking next year and wire a home to catch fire. If you don't have training and education and experience, it's easier to make mistakes.
I see so many people without a background in programming write poorly architected code that performs like a dog and just breaks... it breaks because some wanabe hacker just jumped in and started hacking without knowing wtf (s)he was doing and it ends up costing the company paying for the work more money later on. And you can't blame the consumer. They don't know. They don't know if they give someone their credit card information whether or not that company actually gives a crap about security and if they do, they can actually implement good security protocols. And don't say open source helps with this, because plenty of open source products have huge security holes. I see people complaining all the time about XSS vulnerabilities in word press plugins and with something like that, I could easily write a keylogger that would send your credit card number typed into a wordpress hacked online store right to my database... Probably lots of .cn sites are already doing it...
Anyway, I'll stop ranting now...
"Compare our industry to Medicine and Law. It's actually illegal for people who aren't doctors or lawyer to dispense medical advice or legal advice."
Dispensing bad medical advice can result in serious injury or death. Dispensing bad legal advice can result in long prison sentences. Writing bad software wastes time and costs money. Industries where software CAN kill people are more stringent with their development and hiring practices because of their liabilities.
"Oh, I know lots will cringe at the thought of that. I know the thought is that stuff like this subsidizes crappy coders through artificial scarcity."
We all know that good programmers are scarce. The reason we cringe is because no one knows of a good method to draw the line between good programmer, and not-good-enough programmer, in a world where programmers do so many different domain-specific things.
"I see so many people without a background in programming write poorly architected code that performs like a dog and just breaks... it breaks because some wanabe hacker just jumped in and started hacking without knowing wtf (s)he was doing and it ends up costing the company paying for the work more money later on."
This is how people get their background in programming, by writing poorly architected code, watching it perform like a dog and break, and then fixing those issues. That is what gaining experience looks like. Companies that hire inexperienced junior level programmers and trust them with large architectural decisions have made a managerial mistake, do not blame the novice programmer for this.
--- And on open source ---
Much of open source revolves around building and maintaining tools that support people in our trade. Having open libraries, operating systems, servers, text editors, compilers, etc, helps everyone out there be more a more productive software developer. Other professionals also look out for each other and work collectively to advance their profession generally. We are no different, it just happens that due to the nature of our field, we have much more powerful mechanisms to do so at our disposal.
Actually, it's a book of dreams. Most folks who buy that book will never build a house, but they'll look at that book and dream about doing so.
Many books/publications are much the same.
Now in this "industry" the free flow of this product has allowed people to build on the shoulders of giants and arguably made a big contribution to the world.
Likewise I notice that these days when we are building, for example, various embedded gizmos, we can suddenly achieve a far higher level of functionality, integration, communication etc -- because we no longer have to write (or buy in) building blocks such as TCP/IP stack, memory management or whatever.
So open source greatly facilitates this "standing on the shoulders of giants"...
EDIT: For some it's "given away" to fill some deep hole in one's ego.
I used to be involved medical software. And, yes, you do go to federal pound me in the a$$ prison if MEDICAL software you create has bugs in it. The whole FDA approval thing cuts two ways, and it is a VERY sharp blade. That's why most software engineers won't write such software. How long could they stay out of prison using PHP or Python? Imagine a trauma center's server going down. Yep! Off you go to prison son. A missed tumor because your imaging code did not bring out enough contrast. That's good for 7 - 12 years. The lack of guarantees in the floating point code alone is probably enough to get a lot of these guys 5 to 10.
And yes, it has happened . . . several times!
These sorts of laws would make you code like your life depends on it . . . because it does.
Be careful what you wish for. That's all I can say.
I think Digsby has recognized user's feelings on this issue and their latest update addresses these feelings directly. The new version makes our grid technology apparent to the user. I think the fact they addressed the issue head-on counts for something.
I also feel that it is important for "free" software to find a revenue stream. While there are several examples of truly free software being sustainable, there should also be a place for alternative revenue streams for companies that want to make software available to users at no direct cost.
Yes, users need to know what's going on. This is uber-important. But assuming they do, alternative revenue streams are a good thing for everyone, IMO.
"[...] in fact was announced on the Digsby blog as an official way they are going to make some money, with Plura Processing as a partner."
As to whether or not you can supply processing power for a fee, I doubt it. Looking through their individuals page briefly it looks like it's very similar to SETI@home or any other distributed computing effort. If you like the projects they're running you help, if not you don't.
"Optional" crapware in the installer just takes advantage of the fact that most people just click through. It's bad and it should be discouraged.
The installer bundling has been used by the shareware people for ages as an alternative for paying for the application. From recent notable examples - Trillian IM introduced the exact same bundling over a year ago.
The CPU stealing add-on is not exactly an innovation either. The very idea is actually covered by a patent held by a company called Gomez (may be not them, can't remember 100%). The fact that I have to disable it (instead of optionally enabling it) is a reason enough not touch this Digsby thing with a long pole.
Also calling this lovely add-on a "research module" is nothing short of trying to conceal and obscure its real purpose. It is there to generate money by reselling my CPU time. Period. It does not matter if it is not running when the laptop is not plugged in. And I am sure as hell if it was called "let other people use my CPU when it is idle", no one would've enabled it ever. So they are effectively tricking people into using it, which in turn doesn't sit right with me.
And this isn't limited to PCs; for instance, I'm really annoyed when my gas pump throws up a prompt "do you want a car wash?". Why no, actually; since car washes have absolutely nothing to do with gas pumps, you can safely assume that if I'd wanted a car wash, I would have gone through other channels to request one.