This is as days pass by, by Stuart Langridge

And this is Freedom vs. Features, written , and concerning Politics, Software, and Rants

This entry is my opinion and certainly doesn't represent the views of my employer, who couldn't care less about software freedom. I've been in lots of discussions about software freedom. I've been loud-mouthed about it at my Linux User Group, I've been loud-mouthed about it on LugRadio, I've posted about it here. I've also recently expressed the view that Ubuntu might not be quite free enough for me. I suspect it might be time to try and lay out my viewpoint in a bit more detail. My viewpoint boils down to: all software should be free. You might agree with that, you might not. This has come up most sharply recently with the much-announced Ubuntu decision to attempt to compete with proprietary alternatives like Windows Vista and Mac OS X by enabling a better graphical interface if you have proprietary video drivers. I don't agree with that shift, and my view on that point has been challenged as being inconsistent, a block on the future success of Linux, and just plain wrong. One of the phrases I've used in the past, particularly on LugRadio, is "no compromise". I've said repeatedly that we shouldn't give up on freedom to get features, that we shouldn't be prepared to embrace proprietary, closed-off software even if that rejection comes at some cost. And I've said all this while working for a firm who use Windows everywhere and happily taking money off them in my paycheque every month. How is this reasonable? Let's look at an analogy. I smoke. Have done for years. I also have a six year old daughter. Now, if my daughter asked me if she should smoke, what should I say? Some people would say that I have no right to stand there with a cigarette in my hand and tell her not to do it. Others would be fine with the idea of me advising her against. Very few people would suggest that I should encourage her to do so. If I, then, told her that she shouldn't smoke, and that it would be bad for her, would that make me part of the holier-than-thou hypocrite brigade? Should she ignore my advice on that basis? Should she ignore any other advice that I give her, like not sticking her fingers in electric sockets, because I'm a holier-than-thou blogger who doesn't practice what he preaches? When I was a kid I got told that two wrongs don't make a right. Myself smoking and her not is a better goal, overall, than myself smoking and her smoking too. Obviously, a better end still would be neither of us doing so. However, it would be better to at least start by making her Free of the bad thing, even if I haven't managed it yet. That someone suggests an idea but doesn't do it themselves doesn't make the idea a bad idea. That I smoke doesn't make my advice to people to not smoke be worthless. Back away from the analogy again, although I imagine you can see how it's related to the topic. That I want to hold people to a standard of Freedom that I haven't yet achieved myself isn't a fault with the idea of being free. It's a fault with me, that I haven't got that far yet. If you'd like to help, I'd be interested in your input on how I might make Ubuntu free enough for my needs. If you're using Linux, right now, it's a reasonable assumption that software freedom means something to you. There are people, plenty of them, out there who are using it purely because they like it or because it's the best technical solution for them, but a high proportion of the Linux userbase are part of that userbase at least partially for ethical, as well as technical or financial, reasons. If that's the case, ask yourself: would you be happy to see Linux have a 50% market share but have the principles of free software, of being able to hack on it all, be partially compromised (there's that word again) to get that far? Some of the nature of Free software is difficult to choke down at times; that someone can take your work and sell it and not give you any of the money, for example. Or that someone else could take your code and change a few bits and make something better, and get most of the credit. That's what it's about, though; that's what the Debian Free Software Guidelines, and the Open Source Definition, and the Free Software Foundation, that's what they're all talking about. If you believe in that, if you want to be in a position where not only can someone sell your work or improve on it, but also where you can sell someone else's, or where you can improve on another person's program, you have to support Freedom. If you really wouldn't mind if your next Linux distribution (or the one after, or the one after that) was only, say, 60% hackable, because the rest of it is proprietary -- so we can keep up with the competition, of course, or because we need that hardware -- then you should have no qualms about the decision at all, and good luck to you. You're welcome to feel that way. If you don't like that idea, though, perhaps you take offence at being lumped into a holier-than-thou zealot category. A phrase you'll hear, sometimes, is the end justifies the means. Perhaps it does, perhaps it doesn't; you can think of arguments for each side relatively easily, I suspect. Ask yourself, though, what happens if you decide to step away from your principles for a while and then find yourself unable to get back to them later. It's not a pleasant situation to be in, to hold something dear to your heart and find yourself unable to achieve it because of some bad choices you made in the past. Making those wrong choices might make it impossible to ever get to your goals. Some doors can only be closed once. It's difficult to know ahead of time whether the choices we're making are of that type, but you owe it to yourself to consider the possibility. Make your views felt; be rational and reasonable about it, and clearly outline what might happen, so you can't be dismissed as a zealot or shouted down by people who don't realise the seriousness of what they're contemplating. But be part of the conversation.

Comments

Chris Procter

If the end justifies the means then you need to be very sure that the means achieve the ends.

If we could be sure (or even reasonably confident) that using closed drivers would in the long run lead to users and graphics companies "getting it" then thats one thing but I dont see this as likely.

Graphics drivers are at a level in the stack only hardcore techies like ourselves know exist let alone care about and if you dont care about them, and they dont get in your way why would you decide to move to open drivers or put pressure on manufacturers to Free their code.

If users dont apply pressure why would distros develop them, or move to use them if they suddanly sprang into existance, they surely would be better using their limited resources to increase the bling and keep pace with windows/OSX rather then worry about something that already works and the users are happy with. And once we have crossed that line whats to prevent other closed source code being added, because we really need such and such a feature to compete right?

So if these means aren't going to achieve those ends, why compromise?

Which is my long wided way of saying I agree :)

N.

PS Stop smoking!

Michael Erskine

The smoking analogy holds: some people are addicted to the bling but it's bad for them - I tell this to the kids who have crappy graphics cards. They point out that my machine has the bling to which I reply "Do what daddy says and not what daddy does"!

theOlster

I sincerely hope for a Linux split. To see two types of distros - one of the traditional 'Free'/Geeky type and one that is accessible to the rest of the world. In a way I think this could be a good thing. Most MS and mac users don't understand the Linux zealotry/philosophy thing and this could be one way into the Linux world. The normal users would then have a distro they could actually use! and the Linux geeks could continue with their whole "Freedom" thingy.

Paul McLanahan

I don't necessarily see the problem. Isn't saying that you can't have proprietary drivers also limiting freedom? Shouldn't I be free to make that decision on my own. And following that, shouldn't free software developers be free to decide how their software should react to the environment in which it winds up running. I couldn't fault a dev if s/he made a program look all eye-candy-incredible if it detects proprietary ATI drivers, any more than I could fault him or her for crippling the program out of principal when any non-free software is present. It's their software, and it's their choice. It then becomes my choice whether or not to support a program that would take either of said courses. I personally have no problem with any way a developer wants to release his or her software. If they free it, that's great, but if not, then that's their choice and is also great. It's then on me again to support it or not. But I don't believe that all software should be free. I simply believe that all developers and users should be. I would no sooner support forcing software developers to free their code than I would forcing them not to.

Marty

While I would like to see free drivers that work as well as the proprietary one's, to be honest all I really need is proprietary drivers that work. When I began getting involved in networking and comms in the late '80s the buzzword of choice was "interoperability". Huge tradeshows were organised so that network vendors could test that their networking equipment could talk to another vendor's. Initially it was testing physical and datalink layer things - like Ethernet, token ring, token bus and the like. But of course as time wore on you would be testing at a much high layer - things like routing protocols, and load-balancing and the light. The interesting thing is that mostly vendors don't open their engineering design or code. They merely verify that the standards defined well enough and implemented carefully enough to allow interoperability. And despite this closed source approach, customers still have a huge amount of freedom. They are able to choose between a myriad of network equipment vendors knowing that they can choose a solution that doesn't lock them into one solution - but they don't have to demand source code access.

There are now so many things with embedded software and firmware, that you could almost say that it is part of the hardware. I think it is unrealistic for a hardware manufacturer to be forced to show all their intellectual property in the open when there is no clear business benefit to them. But what I do want is an open, unambiguous interfaces into their product - that are not tied to a particular installation platform. In practice what this means for something like a graphics card is that

1. If a card is say AGP that it will plug into my AGP bus and electrical and mechanically work

2. Assuming that I have a Intel/AMD or compatible processor that would provide a low-level driver that exposes all I need to use the card functions/features. This driver must expose all the features/functions indiscriminantly no matter what operating system I choose. This driver can remain closed source as long as it exposes the same interfaces to all that come.

3. My operating system of choice then needs to be able to hook into this low-level driver with a high-level driver that interfaces between the GUI sub-system and the low-level driver. The hardware vendor may choose to develop that high-level driver for particular operating systems. But he should also make sure that he has published the low-level driver interface information well enough such that an open-source high-level driver would be able to easily enough written that performs on par without having to resort to copious amounts of reverse engineering.

While this may be a little naive and simplistic, I also think it is realistic. Demand open interfaces that do not discriminate - this is a battle that can be won and will meet the ends of 99% of us.

From the mouths of morons » Blog Archive » compiz on intrepid

[...] yes, I admit it. I’m a sell-out, Mr Langridge, a [...]

This website belongs to Stuart Langridge. Contact details are available. Don't eat yellow snow. Valid HTML5, at least in theory, except for the bits that aren't because I'm that futuristic that I'm ahead of the spec, oh yes. HTML5 help from Bruce Lawson, among others. Fonts from the superb FontSquirrel. End.