I know I'll probably absorb an 8 point hit to my karma for saying this, but all the innovation around how to monetize free software is a bullet point that it doesn't work.

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...