Where does the concept of "free" software lead?

I started this thread on one of Joel's discussion boards looking for some insight into a problem of inevitability I see with the Open Source Software (OSS) movement:

Are free software programmers systematically eliminating their own futures?

Unfortunately, most of the responses fell into one of three camps:

  1. Yes.  Open Source Software is stupid and evil and full of bugs.
  2. No, Open Software is good, and the way it should be, and people care too much about money.  I, for one, welcome our new open source overlords!
  3. No.  You and all of your proprietary-software brethren will be crushed by the mighty fist of our righteous movement; the streets will flow with the blood of the nonbelievers.

This does sadly characterize the tribal state in which we software developers exist.  Everyone else vs. Windows, Everyone else vs. PHP/Perl/Ruby, .NET vs. Java, the list goes on, with the exact same line drawn in the sand: you're either with us and love software, or against us and love money.

One point that I have a hard time making clear is that I am not anti-OSS, per se.  MySQL and PostgreSQL have forced Microsoft, Oracle, and IBM to release free (albeit limited) versions of their fantastic database software.  Overall, that is a net benefit to the world and a direct result of OSS.  However, beyond that, I start running short of "longterm good" examples.

Here's my thesis statement:

As more developers produce marketable software foundations without pay, fewer developers will be needed by the general marketplace to produce commercial software.

It's a grim thought, if you deeply consider the repercussions.  I liken the whole situation to the "Global Thermonuclear War" scenario -- everybody loses while trying to dethrone someone else.

My pessimistic view:

  1. Fewer jobs.
  2. Fewer openings for students.
  3. Fewer students learning programming.
  4. Fewer teachers needed to teach those students.
  5. Lower profits for proprietary software.
  6. Less money for software research.
  7. Less software innovation.
  8. Fewer developers needed.

I desperately want someone to say it ain't so, but most of the contrary responses are like these:

  1. You must adapt or, of course, you will be outmoded.
  2. Commercial developers' focus will change -- instead of developing proprietary software, you will be developing extensions to Open Software (plugins, installers, etc.).
  3. Commercial development jobs will continue to exist because companies will need those open solutions tailored to their business practices.

And my responses:

  1. How can you adapt to not making money?
  2. So we should all welcome the new industry monopolies and get brushing up on their APIs?  Where will the innovation come from... the best MySQL Installer?
  3. There is already a gigantic field of integration consultants; is the hope that the current ranks all quit in unison?

The absolute worst example of OSS success is MySQL:  They (MySQL AB) sell the work of all those unpaid contributors to big companies and make millions for themselves.  That's a fiefdom, not a community.

Anyway, I don't really have an end, here, because I'm still without an answer.  All I can say is that I hope the global thermonuclear war scenario doesn't play out until I'm financially secured and don't have to care.

Posted by MattL on Saturday, September 16, 2006 at 6:00 PM
Tags:  
Categories:   Development
Actions:   E-mail | Permalink | Comments (7) | Comment RSSRSS comment feed

Comments

September 17, 2006 01:55 PM

gravatar
Berislav Lopac
Berislav Lopac

I desperately want someone to say it ain't so


Well, I clearly said that it ain't so, and I'm pasting my entire post to one of the JoS threads:

Matt, I absolutely don't understand your position regarding OSS. If someone gives their code away, why would you have to do the same? If you incorporate their code into your product, it's only fair that you abide by the rules they set up. If you have nothing to do with their code, where's the problem?

If you feel that your product will lose customers to an OSS project just because the latter is free, you have a much bigger problem. This means that your customers find your product so lacking that they're willing to try something unfamiliar, not backed by an actual entity, instead.

You'll note that most accepted OSS products are in fact platforms, built upon by developers and administrators, which gives them lower starting costs, but even more importantly the ability to tweak it when the need arises. End-users generally don't use open source, and even though products like Linux or OpenOffice.org have reached quite a high level of quality, they're still accepted by a minority of end users. Heck, even Firefox, which is currently of much higher quality than its main competitor, still hasn't reached 50% of the market.

Even in the development side, there are companies faring quite well even though they're working in areas with a very strong OSS competition: take Joel's Fog Creek, competing with a number of quality open source bug tracking tools like Trac or Eventum, or Eric Sink's SourceGear which still makes good business with its Vault even though Subversion is both open source and praised by developers on all platforms.

Berislav Lopac

September 17, 2006 02:38 PM

Hi Berislav, thanks for continuing here.

As I said in response to this post, the problem is that an OSS project can muster more resources than any commercial product -- especially when they dual-license (like MySQL) such that they get money from the freely contributed effort.

MySQL is effectively a 2,000-employee competitor, of which 1,900 aren't paid.

If Joomla gets 1000 contributors, virtually all commercial CMSes will be doomed, and most certainly the ones at the lower end of the tail with, say, a 10-person development staff, will not be able to survive, much less thrive.

The GPL distinctly requires that you NOT redistribute GPL libraries unless your software is also GPL. As more foundations are built with GPL libraries, fewer and fewer proprietary/commercial software can survive.

As I posted there, the problem with this line of thinking is that we eventually wind up with a real software package consisting of a hundred libraries that can't be redistributed in a "package" because of GPL.

Is CPAN really the way everyone wants to go?

Finally, more free foundations = fewer commercial development opportunities = fewer developers.

MattL

September 17, 2006 06:03 PM

gravatar
Berislav Lopac
Berislav Lopac

First of all, Joomla is not a product, it's a platform. This means that you use it to create your own products -- your clients' sites -- and get paid for them. The fact that there is a free platform available lowers your costs, which is a good thing.

It's the same thing as with MySQL -- just because you use some GPL software doesn't mean that your own product must be GPL. You can build your clients' application using Joomla and MySQL, and happily charge for it; it violates no licence. As long as you don't distribute them as parts of your software, you can charge for them fully.

I agree that open source libraries and platforms have reduced the requirement for developers programming components and charging for them. But I see this as a good thing, as the options for those who write the actual end-user software have increased.

Berislav Lopac

September 17, 2006 06:23 PM

Joomla is a product in that it competes with CityDesk and other CMSes (that are also products).

You getting paid to customize Joomla makes you a consultant and integration specialist, which is exactly what I was pointing out earlier -- you're not developing anything, you're tinkering.
*Maybe* you add value through creating a custom component of some sort, but that's only until such a thing is added to the base or distributed by another OSS project.

Second, regarding MySQL. I'm sorry, but your view is inaccurate:
forums.mysql.com/read.php?4,84260,85038#msg-85038

If you connect to MySQL through your application, and your application is not open source and not distributed freely, you must license.

The only, only, only way to develop without having to license is if you give the source code for a single project to the end client and never use it again. Then it is their proprietary (undistributed) software and you are within GPL.

-Matt

MattL

September 17, 2006 06:37 PM

gravatar
Berislav Lopac
Berislav Lopac

If you connect to MySQL through your application, and your application is not open source and not distributed freely, you must license.


Again, only if you're distributing. Even then in some cases it doesn't apply if you don't distribute the connector software. The best example is PHP: the default installation doesn't include MySQL library, but it can be added on later, and any PHP code that connects to MySQL can be distributed either commercially or freely.

Also, I don't understand your position again: you believe that OSS shirnks the marke for software developers, and yet you bash MySQL which charges for your software and (presumably) uses that money to pay developers...

Berislav Lopac

September 17, 2006 09:33 PM

MySQL has a special exception to allow PHP to connect without a licensed connector.

MySQL is paying /maybe/ 10% of the people actually writing the code. The rest get nothing.

MattL

September 18, 2006 12:35 AM

gravatar
Roman Werpachowski
Roman Werpachowski

MySQL is paying /maybe/ 10% of the people actually writing the code. The rest get nothing.

Yes, but what does the rest do? The nature of OSS is that most work is done by a small active majority and the rest are people sending occasional patches or people you would rather describe as beta testers. Well, it's not unheard of commercial software companies to rely on their users as unpaid beta testers Wink and the fact that company accepts a patch from me is a Good Thing - I've seen some software companies simply ignore bug reports. Much better that they accept my patch (which has to go through the review process nevertheless).

The only place I can fathom when a large OSS project can really distribute work is translating documentation or writing plugins to software. That's why OSS apps have often documentation in a wider range of languages than commercial apps (would you issue documentation to your products in Swedish or Slovakian?) and a wider range of plugins, too.

Roman Werpachowski

Comments are closed