I couldn't let the "divide and conquer road map" for keeping open source at bay, as described by my colleague Randy George, pass without comment. The more proprietary software comes to superficially resemble open source, the harder it will be for people to see the benefits of the latter.
One thing that Randy pointed out stood out the most:
The paper also makes the point that established commercial players can beat open source at its own game by offering free base versions of a product to build up the user base, then segment advanced product features and package them into premium offerings. Hmmm, sounds a little like what open source based startups are doing as well.
True, except that the free versions in question are not themselves open source -- although for the people who just want to Get Work Done, having a free-but-not-open version of the product is often more than enough. Consider Microsoft's SQL Server Express edition vs., say, MySQL: if you're not married to either platform to begin with, and you don't particularly care about lock-in, the former may just seem like one good option among many. And Microsoft has incrementally ramped up competition with open source database solutions, if not by adding features then by taking away restrictions. (For a while, SQL Server Express could not be used for an Internet-facing application, but Microsoft wisely did away with this proviso.)
So is open source itself doomed? Probably not. What I do see happening, though, is the gap between proprietary and open source narrowing from both directions, which will make the choices that much more arbitrary for people who are not especially interested in waving the open-source flag.
On the proprietary side, you'll have closed-source programs, but ones that publish their APIs and employ open standards, protocols, and data formats -- although whether they do all that as a serious bid for positive competition or just a way to ward off potential criticism is going to be anyone's guess. On the open-source side, you'll see two things: open-source core products with for-pay / closed-source enterprise functionality (e.g., MySQL), and entirely open products with the only for-pay element being services and support (e.g., Ingres).
And in the middle are all the people who have to choose between one or the other. And, again, everyone who's not inclined to choose open source for whatever reason is going to find it even more of a toss-up. What's a little vendor lock-in down the road when you can get everything you need done now? A difference that doesn't seem to make a difference is no difference.
That's the challenge to come: for open source developers to find differences that will make a difference -- visibly.