FOSS is an alternative, not true freedom

Is Free/Open Source Software (FOSS) really all about “freedom of choice?” Or is it really about simply “having a choice?” I believe it is the latter. I really hate to say it, too. I like the LAMP stack as the main front of the FOSS movement, and there is a lot about it that I find attractive. Frequent readers know that I give away gobs of source code in these posts and in my articles. Indeed, all of my recent articles that involve any code contain not just examples of the core code, but a full application with source code. That is fairly unusual in the .Net community, and my articles tend to use .Net since it is what I spend my days programming in lately. But as demonstrated by the somewhat rigid adherence to the LAMP stack, FOSS is not really about “freedom of choice.”

Indeed, having spent the last few years around the .Net community, I really miss my Perl days. Working, usable modules readily downloaded, great tools for free, and a great community. When you are in the world of proprietary, these things are just not as “out there” as I was used to in my Perl days.

But the more FOSS I encounter, the more I doubt the movement’s dedication to “freedom of choice.”

Sure, FOSS presents a great alternative to Microsoft, Oracle, IBM, and the other closed source software vendors. But unfortunately, FOSS does not seem to have many choices available within in for a lot of things. If you are not sticking to the LAMP stack, your “freedom of choice” can get pretty limited pretty quick.

The first limitation I keep hitting is the “L”: Linux. I run FreeBSD on my home server. As a result, I get to put up with documentation that tends to be fairly Linux oriented, the occasional installer that assumes the Linux directory structure, and other minor annoyances. But at least no FOSS ever made me install the Linux compatibility module like Java did. Then again, at least I am using FreeBSD; I would hate to be a Solaris admin trying to get support or help or even to get things working right.

Then there is Apache, the “big A.” Sure, there is the occasional piece of FOSS that uses a different Web server, typically when it wants a micro server for configuration. But luckily, there really is no good reason to be using anything other than Apache anyways, unless you need to run .Net apps or some other IIS-only software. Frankly, in many cases I prefer Apache on Windows to IIS on Windows. So while Apache-centric software is not a problem on a practical level, it is a violation of the “freedom of choice” principle.

And now we get to the real sticking point: MySQL, the “M” in “LAMP.” Do not get me confused, I like MySQL a lot. But the fact is, MySQL still is not at the same level of Oracle or even PostgreSQL on many levels. There are plenty of FOSS RDBMS’s out there as good, or better than MySQL, and many proprietary solutions that are much better than it in an enterprise setting. Sadly, I have encountered very projects that do not use MySQL exclusively for their backend, particularly Web applications. I have seen a few that will also use PostgreSQL. I cannot remember the last time I saw one that would work with Oracle, Ingres, Microsoft SQL Server, DB2, Sybase, or another similar database. It is really disappointing, because it effectively shuts out a lot of FOSS from big enterprise settings.

And finally, there is the PHP, Perl, and Python trio that make up the “P.” Let’s be honest, Perl and Python are really minor players much of the time. Perl is still heavily used in shell scripts, but it is increasingly rare to see it used as the muscle of a Web application or any other application. This is one area where a lack of choice really is not a very big deal. All three languages are perfectly fine, and it is not like you can (or should) expect a piece of software to be written in three or four different languages.

As much as I like the idea of the LAMP stack being a reliable standard, and appreciate it, I just find it rather odd that people claim that FOSS is all about “freedom of choice” when really it is simply an alternative. Maybe in the future, FOSS projects will be better modularized so that administrators can mix and match components as needed, but until then, the LAMP stack really does not allow much wiggle room within it. And that’s why I say that right now, FOSS is about “having a choice,” not “freedom of choice.”

Full Bio

ROTFLMAO.
You are more likely to see the lamp stack et al being used because people who take up FOSS applications are already going to have it.
To get contributions to the codebase you have to appeal to others. Course if it's a decent piece of softare swapping a DBMS out should be trivial.
Contributing to make it trivial in the case of a bad design is an improvement for all.
I read your reply to Apotheon, but your article did come across initially as someomne wanting to have his cake and eat it.
I completely agree about MySQL, there are some mutterings at our place about it, I've been shouting postgre loudly since I heard them.

Think about this for a moment:
The sort of freedom to which you seem to think you're entitled, a freedom to choose from amongst options that someone else has to create for you, is like the so-called "right" to free health care. It's not really a right, or (as you put it) a freedom -- it's an imposition upon those who provide what you expect from them. Enforced "free" healthcare is slavery for the healthcare provider. Likewise, demanding that someone just [i]give[/i] you the software options you want before you'll grant a software development methodology the descriptive term "free" is tantamount to demanding someone else's service without offering anything in return. That's not freedom.
The freedom in free/libre/open source software is the freedom to do whatever you like with the software that already exists, and to participate however you like, to any degree you like, in creating that software's future.
The freedom of it is the freedom to alter something so that it works with more than one database, and to pass it on to others when you've made such an alteration (or when you haven't done anything to it at all). The lack of freedom of proprietary, closed source software is the restriction against altering something in any way, or passing it on to others (whether you've altered it or not).

Have a look at the open for business project www.ofbiz.org you have the freedom to:
- choose your database
- choose your platform
- choose your scripting language
- choose your web server
The freedom of FOSS is that you can change what your not happy with.

FOSS is about freedom to do stuff with the source code... people already know that just because there are open-source licenses it doesn't necessarily follow that there are a variety of FOSS software systems to choose from when selecting and acquiring systems. So the article misses the point and just iterates a non-issue. A better article would mention the many smaller open-source software projects for niche applications which never get off the ground because there's simply not enough people delivering code. By the way, if you don't like how a package lacks support for a particular database... why don't lead the way and add support?

It seems obvious to me that PostgreSQL is the (near) future of highly scalable, robust database design in the open source world. About the only way that would fail to be true is if it fails to get the attention it deserves and, as a result, ends up languishing in obscurity while the technically inferior MySQL continues to hog the limelight.

apotheon -
While you are 100% correct, I have not "intentionally missed the point." I have reacted and responded to a group of people who (very incorrectly) talk about FOSS as if it is this sudden blooming of choice and freedom. I agree with you that the true purpose of FOSS is the freedom to alter the code to meet your needs, and then redistribute and give back that code to the community.
However, people like you & I are rather "old school" about these things. The people who have been showing up to the FOSS party do not understand this. They think that FOSS is about having some ultimate "freedom of choice" which, as I show in my original post, is really not what FOSS is about; you reinforced that very well.
I probably should have emphasized that point a little bit more, where I stated: "... I just find it rather odd that people claim that FOSS is all about 'freedom of choice' when really it is simply an alternative."
FOSS is an alternative, and an excellent alternative at that, for many users. But to claim that FOSS is about "freedom of choice" is patently false, as both you and I have stated. We're actually coming at the same falsehood, just from a different direction. I'm coming at it from the "you can say that, but it isn't reality" standpoint, and you apprached it from the "FOSS is about freedom of code, not freedom to make particular business decisions" viewpoint.
J.Ja

I don't understand how you can say that providing an alternative is not creating freedom of choice. It's like saying that submerging in water does not make you wet. Open source creates the ability to modify the source code. It also creates an alternative to whatever else is available to perform a particular job. That is freedom to choose.

"A better article would mention the many smaller open-source software projects for niche applications which never get off the ground because there's simply not enough people delivering code."
I was planning on writing about this next week. :)
J.Ja

are the ones that want to direct me down a path that suits them.
Besides I've never been one of the peepul, my baah is far from convicing.
Too much freedom is a challenging thing, it means you have to make the decisions, it means you have to take responsibility for the consequences.
If that's too scary for you tuff, I completely refuse to accept the idea, that I should limit my freedom to make your life easier. What do I get out of it?

Repeated economic (econometric), sociological, anthropological (with caveats), and psychological research has demonstrated that endlessly. It's always good for another paper/dissertation in choice theory! Been there, done that, burned the t-shirt as I always say.

I've frequently posted that too many choices can be confusing, but that doesn't mean freedom / choice is bad. It means more research is required to understand the choices available. I do agree that the average user isn't able and / or willing to do the research required to understand their choices, and this may prevent them from utilizing open source software.

I do agree that postgreSQL does deserve more attention, especially given the mutability factor (it can act just like Oracle). Where I differ is the assertion that mySQL is technically inferior. Each is suited to a particular problem domain and when applied in that problem domain, will excell. Frankly, I have just about every database that is in current use here, and a few that have been relegated to the wayside, and they all have technical merit when applied correctly. As with any engineering discipline, identify the problem, then apply the proper tools to implement the solution. Too often I see the M (and especially the P, don't get me started on the P!) in LAMP being applied to the wrong problem.

I've been meaning for some time to do a real comparison of MySQL and PostgreSQL for a while now. Maybe I should revive that idea. Sun is pushing PostgreSQL, but Sun has the same "Fido's touch" that Novell has, everything they partner with turns to dog... Not that they kill it up front (they eventually do), but it seems like everyone Sun or Novell get close to end up fading away.
J.Ja

It isn't a straight line, there is a 'law of diminishing returns' that factors into it. A point where use of resources to obtain/maintain all those choices impedes progress/improvement. Obviously number of choices varies with item in question. As mentioned previously - unleaded gas; three(ish) is plenty. Ice Cream However; Nothing wrong with having a couple hundred...thousand flavors.

For whom, when , where, for how much
The more choices the better, gives you a chance to pick the best one for you.
How is your restriction meant to work by the way. I mean if the requisite number of choices are already available, does that mean we shouldn't bother to develop a better one?

If you have so much trouble dealing with a number of choices that has more than one digit, there's a simple solution to your problem:
Choose nine of the options at random. Ignore the rest. Pretend the randomly selected nine are all the options in the world. Make your final decision from among them.
It's just like there were only nine of them to begin with, except that your desire to have some of your choices made for you doesn't eliminate the ability of others to make informed decisions if they so desire.

The more I think about cit, the more I think it departs from my original point. Choice, for the sake of choice is pointless. And there are simply times and instances where too much choice is a bad thing (inefficient, expensive and pointless).
There is no reason whatsover to have 100 different flavors of unleaded gas to choose from at the pump. The typical three is quite sufficient.

I have been reading into this that you wnat all the choices to stick around. Perhaps that is not what you mean.
Sure, we need to have plenty of choices on the table while the best few are being selected, but then once those are selected, it's time to 'qwitcherbitchen' and move on. (think laserdisk, beta).

Without the benefit of a host of choices that you don't like, you wouldn't have a dozen or so choices that seem "good" to you. The reason there are so many choices for some things is simple: many people like many different things in some types of applications. When you see "millions" of choices for something, it's because there are at least a few dozen people out there who prefer each one of them.
Sure, it'd be great to have only a dozen good choices -- but what's considered "good" by one person is different from what's considered "good" by another. You get your dozen good choices by choosing the dozen choices out of "millions" that best suit your preferences.
Why is that so difficult to grasp?

You are right, it is entirely up to them how they spend their time, and entirely their choice. And good on them for developing their talents.
And truthfully, in something (clocks) the array of chices doesn't provide any real negatives, other than resources that could have perhaps been spent progressing other technologies.
Perhaps a more accurate presentation of my thought would be that there are SOME AREAS where too many choices is a bad thing (Network Protocols, for example.).

Nice comeback, I'm gonna feel the sting from that one for... seconds.
Not that it matters but I am not a policitcal party follower, against the two party system. I am just as much (more actually)against too few choices as I am too many choices.
And you will notice that for the most part people choose a small handful of choices. They are happy with a dozen or so good choices, and find no value in a million mediocre choices.

The developers are clearly getting [b]something[/b] out of it, or they wouldn't be writing the software. For many, the return on investment is in the form of better software that they, themselves, can use. In some cases, they get improvements to software they're already using that is already open source, because someone else wrote the app initially and they just contributed to it. In other cases, they write something from scratch, then make it open source, not only for geek cred and potential resume filler, but also because the best way to improve the quality of one's own software is to make it open source and get others to contribute to its improvement.
I know that's my motivation.

"Never look a gift horse in the mouth." :)
That being said...
There are a lot of companies outright cynically using/abusing the FOSS programmers. When a company makes their living off of supporting or integrating (my favorite is when they make a GUI management system for a product that took two weeks to write...) the product, and they are really delivering little value add, I feel like they have a responsibility to contribute back. Kind of like, if you're homeless and a church takes you in and helps you get on your feet, and you become a millionaire, it would be ungrateful at best to never donate a dime to the chruch that helped you when you were down. The FOSS coders aren't getting much back from these companies, and that is a shame.
J.Ja

There do seem to be way too many options for many functions.
Each of those programmers made a choice of how to spend their uncompensated time and effort. You and I may not see the value in yet another desktop environment / clock / whatever, but it's only that programmer's resources being used. He or she are the only ones with a say in how they're spent.

"[i]a near total lack of *complete* documentation for most everything[/i]"
The same goes for closed source proprietary software, y'know.
"[i]A total lack of side by side comparisons that equips either the desktop/consumer user with the information they need let alone IT professionals or managers. Why do you make this choice over another? When? How?[/i]"
Frankly, you've a far better chance of getting a "side by side" comparison of OpenOffice.org and KOffice than you are of getting such a comparison of MS Office and Lotus Smartsuite (for instance) -- and even if you do get such a comparison for the proprietary stuff, it'll be provided by one vendor or the other, and thus loaded with so much spin as to be entirely useless. Linux users debate the finer points of various similarly functional pieces of software in depth and constantly, and are willing to use everything they learn with anyone who comes along and asks.
All you have to do is ask, assuming you don't find what you need via Google.
"[i]The attitude you demonstrate in your subject line is oh so typical of the community, such as it is.[/i]"
Actually, what you saw wasn't my open source software attitude -- it was my libertarian "no such thing as too much freedom" attitude. People saying crap like that are to blame for the gutting of the courts' power of habeas corpus with the passage and signing into law of the Military Commissions Act as of the 17th of this month. Anyone saying "too much freedom" within my hearing at a point when that attitude has led to legislation that can cause people to be disappeared off the damned streets of the US of A for no good reason at all are likely to get a fist in the face right about now.
"[i]If I tereated the users like you did in your reply[/i]"
I'm always patient with my users and impatient with whining complainers who are more interested in having something to gripe over than learning anything -- especially when the latter happens in circumstances where my time is free, like in this discussion. Go back to the comment to which I replied, and read it again. Tell me where shardeth was asking for help, anywhere, at all. Guess what: there was no request for help. There was just a willfully igorant proclamation that there's such thing as "too much freedom". Screw that noise. That doesn't require my patience and helpfulness. It doesn't require any respect. It barely requires me to refrain from pummeling the dork -- and that only because I recognize the unethicality of initiating force.
"[i]BTW, you don't have to be using *nix to have a custom machine.[/i]"
Of course not. I actually turned the desktop process off in the Registry on my last Windows workstation. Everything was blazingly fast (for Windows) after that, a number of annoyances went away, half the vulnerabilities that cropped up for Windows in a six month period didn't even apply to me, and no useful functionality was lost. I've used Litestep and WindowBlinds. I've changed Windows so much to suit my needs in the past that it was barely recognizable as Windows. Linux is still by far a more functional and productive work environment, and far less buggy.
"[i]However if you walk up to it, and it is unlocked, you wouldn't be able to fly it at all unless you knew how to fly a NeXT.[/i]"
That takes about thirty seconds of experimentation, just to get the basics. One of the beauties of the NeXTSTEP environment was its ease of use.
If you like the interface so much, maybe you should take a whack at the GNUstep framework with WindowMaker as the window manager on Linux systems -- it's basically a complete open source remake of the environment, complete with a remake of ProjectBuilder called ProjectCenter.
"[i]Ditch the attitude please.[/i]"
As long as you don't make asinine comments about "too much freedom", you won't get my "no such thing" rant.

Sorry, but the problem here has nothing to do with brain power but a singular problem with the Linux community as a whole. I've been involved with Unix since the late '70's, switched to dual booting with BSD on mi Amigas in the mid-'80's through early '90's and only picked up Windows during that lull while Linux was still a nascent but promising operating system which has finally come into full flower. I'm OS agnostic; I select my tools to fit the job rather than use hammers to drive screws which I've seen all too much of in the industry (we've discussed this up above).
The problem for anyone being introduced to Linux or attempting to learn *why* you would make a particular decision is three-fold. (1) a near total lack of *complete* documentation for most everything. Sure, if you are an expert, such as myself, with a *nix background or don't have a life, you can spend your life assembling the bits and pieces and get most of what you need, but it's a real chore. Heck, it's still a chore for here as there are some subtle differences that can bite, hard! I don't have that problem with either Unix or, for the most part, BSD, Solaris, AIX, et. al.
(2) A total lack of side by side comparisons that equips either the desktop/consumer user with the information they need let alone IT professionals or managers. Why do you make this choice over another? When? How? If anything is hurting, and I mean really hurting, adoption of Linux on the desktop, this is it. It's a bit better as you move up the stack to the server side of the business but with F/OSS applications in a state of constant flux it's also a chore, which is why we see firms springing up to certify stacks. The niche wouldn't exist if the information were already out there in a readily accessible form.
(3) Attitude. The attitude you demonstrate in your subject line is oh so typical of the community, such as it is. Basically, if you are new to the subject area, be it Linux, F/OSS, etc. ad nauseum, the typical response ranges from a (mild?) RTFM, all too frequently spelled out rather than as an acronym, to the totally offensive. I have twenty years experience working technical support (and as a SysOp) for more than a few fora on (what used to be) a major ISP covering for Amiga to Windows to Linux with hardware, database, and internet tossed in for spice. If I tereated the users like you did in your reply, I would have been fired in a day. If I had done that on a (consulting) job, I would have been fired and likely in court, yet this is considered civil behavior in the Linux & F/OSS arena. If you want people to join the movement, you don't abuse them, you help them.
Now as to the Window Managers themselves, well if you are lucky it is a pre-installed choice and you just switch a one to a few dozen settings. If it isn't, it isn't pretty in all too many cases. I don't really care for either of the big two but I can live with them. Barely. That's usually the second change I make.
BTW, you don't have to be using *nix to have a custom machine. I only use server OS'es here for my workstations. The workstation I'm typing on now is Windows Server 2003 Enterprise Edition (SP1). However if you walk up to it, and it is unlocked, you wouldn't be able to fly it at all unless you knew how to fly a NeXT. I fell in love with them back in the '90's, at least the UI end of them, and convert machines wherever I am to that interface, even Windows. There are other customizations under the hood (C-Shell anyone?) but every machine I own is highly customized, no matter what the OS to my preferences and ways of doing things.
That's a choice that I make and I can handle since I am equipped with the information and have a baseline of comparison (yardsticks) to work from which most people either haven't been able to find or do not have the time to find. Our mission statement shoulc be to stop evangelizing and start demonstrating and documentating. Ditch the attitude please.

Somehow, thousands of Linux and *BSD users are able to navigate the X Windows options for window managers without any problem. I tend to guess you must be one of these people who thinks that in the US there are only two political parties, and ignore the plethora of other (better) choices that exist.
If you really don't want to have to deal with the decision, just go with a default, or pick something at random. If you decide there's something you don't like about it later, you can research it then. It's the same as not having more choices, except that you [b]do[/b] have more choices if and when you need them. Is that so friggin' difficult?
There's no such thing as "too much freedom" unless you're George W. Bush.

I most definitely want some choice. But it can be taken to extremes as well. Do you even have any idea how many different desktop environments there are for X-Win? Some more compatible than others. A lot of energy and talent gets wasted doing the same things in only slightly different ways. Way too much wheel reinventing. There is really no point in have 100,000 different clock applications for windows. Quite frankly, I don't need that many to research/choose from. I'd much rather those people spend their time and talent on something else that would be really useful to me.

I think that's the best option. The way it used to be done in the early days of computing. Loads of OSes, hardwares, architectures, languages, etc.
That's how we make the most money as consultants to make educated guesses for clients, and that's how we encourage developers to make better features in cutthroat competition, and that's how if one solution _does_ fail, it fails for only a part of the computing world.
Today if windows is vulnerable, 95% of the desktops in the world are vulnerable, and if Linux fails, the remaining 5% are gone as well. But if we had a load of OSes and dbases and webservers and a cartesian product of configurations, we're going to give attackers a hard time to get to us.

I wasn't aware that you could scale SQLite that high. Wow. Time for another look or more than likely, update to the latest and greatest. I know the US Navy (disclaimer: (diabled) fourteeen year US Navy vet/Navy brat) likes the heck out of it. Most of my database dealings start at Oracle, db2, MSSQL Server, etc., on the back end. I only got involved with mySQL as a result of some PHP related projects and then I was mostly brought in since I have ultra-high-end tools here that can rip apart and reverse model a database in dang near the blink of an eye. That and translate from one db-variant SQL to another.
Those didn't exactly go over very well actually. I did what I came to do, and what the project leader wanted, but when the issue of application security came up well, {cough}, they didn't want to here want I had to say but that's for another discussion.

MySQL doesn't really have a niche of its own, exactly. It's trying to be both PostgreSQL and SQLite, at the same time. Unfortunately, in cases where SQLite would be appropriate, MySQL doesn't perform as well -- and cases where PostgreSQL would be appropriate, MySQL lacks the facilities of its bigger brother.
In the range of uses of such database management systems, there's a tiny little almost-invisible sliver of instances where MySQL might actually be the best option, technically speaking. For the rest, pick a direction -- SQLite or PostgreSQL -- and go with it.
Of course, MySQL is friggin' everywhere, so a lot of the time it's all that's available. C'est la vie.

Brian -
I agree 100% with you there. The "P"'s are so easy for people to use, they all too often get used in the wrong situation. I cannot count the number of times I have seen a Web app that should have been a desktop app! Or the mess of trying to use PHP as a non-Web language (you can do it, but why would you?). And so on and so on.
J.Ja