Desperately Seeking Mediocrity

One thing I’ve noticed out there in the big wide Internet is the number of people who desperately want GNU/Linux to suck. These are not, as you’d imagine, Windows or Mac OS fanatics who want to see the competition fail – in fact, quite the opposite. These are the folks who cling to GNU/Linux not because of Freedom, not because of superiority – but because it’s different. As a result, these folks make many of their computing decisions not based on picking the best option – but the most different, the option which makes it easier to say “I am a special unique snowflake”. The dangerous part here, however, is that these folks also happen to be the loudest of GNU/Linux people, and they feel that THEIR choice is (or should be) the ONLY choice.

Part of the “different for the sake of it” problem is the desire never to be seen as “copying” a different system, for better or worse. User experiences should be as alien as possible, to make sure they’re aware of the extent to which they’re not in Kansas any more. The answer to “can I do foo” is never “yes” – it’s always “of course not, do bar instead”. Migrating from a legacy OS should never be a comfortable gradual process – it should be as jarring as possible. Anyone who doesn’t commit to the process was obviously never worthy in the first place.

And along with this comes the belief that from difference comes superiority, no matter the cost. There is simply nothing to be learnt from those other distributions, and any suggestions otherwise should be met with ridicule. Certainly don’t accept that those evildoer companies like Apple could get anything right, or come up with ideas worth pinching. If anyone suggests that the option on the Linux desktop is inferior in any way, simply tell them they’re wrong! Suggest that missing features are a good thing, that a complex process is better than a simple process, and if all else fails, that they work for the competition.

This belief is a belief in madness. Ignoring for a moment the baffling jingoism that gives rise to the “others simply cannot be superior in any way” thought process, and consider for a moment, well, GNU/Linux. GNU is a vastly superior Free clone of UNIX. Re-using all the time effort and energy that went into the concepts behind UNIX is a good thing. To do it better and Freer is not a bad thing. Linux is a vastly superior Free replacement for the MINIX kernel. Anyone who suggests that there is nothing to be learnt from making superior Free versions of proprietary systems, yet uses GNU/Linux, is simply thick.

And this is why I find myself baffled when reading web forums, seeing the number of people who actively want Ubuntu to be less awesome, by dropping superior apps on the basis of perceived “difference first” attitudes, the feeling that they “don’t want to be using a lagging version of proprietary foo”. Perhaps there’s something I’m missing here. Or perhaps a lot of people on the Internet are idiots. Hard to say.

45 Responses to “Desperately Seeking Mediocrity”

  1. Great post. I tend to think the latter is true (about idiots). But I also think like you alluded to that it is cultural. But hopefully as the movement and people mature they and it will change. However, it’s always great to point out that those people who want different for the sake of different can just go load another distro or create an entirely new one just for them. I was encouraged that Ubuntu decided to move to Plymouth. I think it’s great when ALL the distros use the better parts from each.

  2. A few years ago (2002-2004) someone -who shall remain nameless- kept arguing that GNOME and KDE were both a mistake on the grounds that Linux -the kernel- had not been designed with UIs in mind. And that if we wanted a UI we should go get our own kernel and design an operating system from the ground up and leave him alone with his shell.

    Arguments along the lines of “It seems to work just fine for OSX” or the fact that we could do whatever we wanted without his permission did not stop his campaign. For a while some of them felt betrayed by Linux and went to more serious OSes that merely had a shell and lacked a GUI.

    They never volunteered to create this new kernel from the ground up of course, they merely wanted to keep Linux as a shell-only system.

    I was amused back then.

    These days the movement is mostly gone, but they were annoying back then.

  3. I feel the same about Linux users who love command lines too much for their own good. Sure, command lines are useful at time, but I can’t see the point of having a GUI if you’re going to use them all the time, even for the most simple things that are 2 clicks away. I suspect these people insist on typing command lines to mount USB keys, although it’s now automatic everywhere.
    It seems some people just feel that command lines are awesome and are for elites. Either that, or they really want to make the money they spent on their keyboard worth.

    I know old habits die hard, but that shouldn’t be a reason to force those habits on new users when there are more simple alternatives. I just only got into Linux recently, and admit I was guilty of repeatedly doing “apt-get update” manually until I made some efforts to correct this habit and simply find and use the GUI for that.

    And then these same people wonder why Linux’ market share is barely going up…

  4. @Stifu,

    Just realize that the whole point is the freedom to do just that: use the shell or use the gui. No one is forced to do either. To me, the shell is superior for many of the day-to-day things I do. I even read my mail in mutt and vi. I can type 80 to 100 wpm and a mouse would only get in the way. But that’s me. You seem to want to reduce it to “old habits” and are doing the exact same thing that you accuse those who advocate the shell: you seem to be implying that the gui is superior and anyone who doesn’t use it is just guilty of old and/or bad habits. How can you “love command lines too much for their own good”? What an idiotic statement.

  5. @Mark Dean, command lines are good to keep as a base for the GUI, and for advanced users, but shouldn’t be presented as “the way” to do things if you want to attract average Joe users. So promoting them everywhere is all fine if your goal is to make sure Linux stays a geek-only OS, and keep its market share as low as possible. My mother (let alone my grand parents), my bros, my aunts and uncles, my boss, etc… None of them will ever type command lines for everyday tasks. Dunno about yours.
    Here’s how I’d present things to new users: “To do task A, go to menu / applications / whatever. And as a foot note: alternative method: command lines”. Not “To do task A… COMMAND LINES!!! HAHA!”.

    To each his own.

  6. @Stifu, I think this is reasonable enough. A user should be able to use and administer their systems without ever opening up a terminal – just look at the netbook Linux variants preinstalled by people like Acer or Asus or HP or Dell. I still like to do plenty of things via the command-line, and there should never be things that can *only* be done in a GUI, but for me the problem with that is people need to be able to understand what they’re doing, and why – for beginners, a clicky box with writing on it makes plenty of sense, certainly compared to typing arcane mantras into a terminal.

    I use aptitude for preference, but I’d have no polite things to say if apps like update-manager & synaptic weren’t there to provide the more intuitive, idiot-friendly option to those who want to use the computer as a means to an end without learning all the command-line gubbins (which could potentially improve their productivity, but equally could not)

    Oh, and I’ve disabled the dreadful AJAX-based replying which times out on my crappy web server. The comments here are a WIP.

  7. […] in GIMP, to be represented using PHP accessing an open-source database, I tend to agree that,  “Anyone who suggests that there is nothing to be learnt from making superior Free versions of … But that doesn’t solve the niggling Wikipedia issue, where we all acknowledge that the […]

  8. Excellent rant!

    Gnu/Linux stands perfectly on it’s own legs, but it’s always nice to have some(one/thing) else to lean on. First of all the built-in competition within Gnu/Linux is a force – there are 3 options: Excellence, Death or anonymity.

    Being a KDE 4.2.2 user is a pleasure, but still there is nagging about the version numbering – 4.0. Get over it or do something else. (The ultimate insult appears to be Vista lookalike).

    The trouble these folks are ridden by is that they are loosing their position. As more people can do what they do their competence gets devaluated and they become less relevant.

    Some appears to be overly narcisitic or arrogant, and the fall from genious is a though one.

    There’s plenty of space for anyone running Gnu/Linux anyway they want. No need for them to terrorise a project that they won’t use anyway. (Well… actually they DO use projects they hate – it’s just a outlet of rage.)

    Hopefully the outbursts on the net prevent more serious domestic ones…

  9. my friend the only reason I use GNU is because of freedom anyother advantage is a plus but no more than just A PLUS.

    Freedom or death.

  10. Most of the people using Linux have come to it from the bitter experience of using windows, so it’s small wonder they often voice strong opinions.
    The one striking omission of such opinion pieces such as this is that it equates using a free OS – quoting the Microsoft memo – as a sure sign of madness, you know, the little guy is always the bigot, surely in need of re-education as a minimum.
    Criticising the status-quo is thought to be thoroughly wrong headed as you have amply laid out.
    You mention copying proprietary OS’s, good idea to land any such attempt before a court with an IP theft charge – a simply brilliant idea.
    Apple didn’t copy Windows, so there is no reason for Linux to copy Solaris or any of the others, more noticeable is that Solaris copies Linux in order to survive and Sun still struggles. Even Microsoft has been forced to follow Linux on netbooks with an extended life for XP and other reactive efforts.
    Everyone perhaps has different requirements from Linux and can voice their opinions on what should go in or can make the necessary changes to suit. Try telling Microsot or Apple what you want in the OS, you’ll have to like what they darn well provide.
    What you perceive to be a weakness is in fact a great strength – even in the best of marriages that last a lifetime there are differences of opinion that get expressed.
    Linux dares to be different and quite rightly so

  11. I only use Linux on the server and desktop at work. Windows at home just to screw around where I do most of my media/browsing/gaming. IMO that is all a non-linux OS is good for, screwing around.

    There is only one reason to use Linux on the server. Simply because it is hands down the best server OS there is when taking all factors into account (package managers, software repos, commodity hardware, raw freaking speed).

    Linux on the desktop? not so much. Its easier to use Linux on the desktop when working WITH those servers IMO, but that is the only thing it has going for it ATM.

    As much as I love Linux. Linux on the desktop has such a hacky duct tape feel (yes even Ubuntu) compared to any modern desktop OS. Some of the regressions from one release to another are so infuriating it makes me want to break something. They are probably its biggest detriment.

    Look at windows share browsing. It was broken BEFORE the last LTS release when gnome switched to GVS. It was finally fixed a couple months ago (and two OS releases later). Its stuff like that which just makes it impossible to take linux desktop developers seriously on any level. There is just a complete lack of professionalism in the release structures.

    Who do they think their core audience is? Everyone knows Windows has market share and that just about every network file device in the world uses windows shares. If something as basic as broken share browsing can be released without a second thought, there are some serious issues.

    Having said all that, I still use Linux on my desktop 40+ hrs a week and have been doing so for over a decade. It just blows my mind how little real progress has been made to the desktop in that time. Windows 3.1 still has a more ‘solid’ feel than the linux desktop does. How in the hell can that be? Its a love hate relationship with me I guess 🙂

  12. Well, good news i think. Since most people will migrate to easy to install distros, these guys can move over to Gentoo, Archlinux, Slackware, and or even FreeBSD. Plenty of bragging rights there, and they can snub there noses down on the poor trodden ubuntu masses, rofl.

  13. Hmm. A rant about people making things “different for the sake of it,” under a banner telling me to use a different browser.

    Whatever happened to “graceful degradation”? 🙂

  14. Oh, it IS graceful. I’m TELLING IE6 users that their existence is hollow and meaningless, rather than them needing to work it out themselves.

    Supporting web standards from 1998 isn’t “different for the sake of it”, it’s “different because not supporting those standards is pants-on-head retarded”

  15. @directhex, Rofl! Well I certainly can’t disagree with that…

    Sadly I’m browsing from w*rk, where IE6 is mandatory. But I did manage to read the whole
    article, eventually…

  16. @pastychomper, Making people use IE6 is irresponsible at best. Have your IT staff fired.

  17. I agree to some extent with the article even though I’ve partially the same approach to these arguments as Sid Boyce: Linux dares to be different and hence it’s our blessing and curse to be part of something vocal, opinionated and evolutionary. Progress is at times triggered by arguments. On the other hand, yes it’s tiresome to see how some without reason trash talk other distributions.

    Unfortunately I strongly believe that both commentators Stifu and FreeBooteR represents the same kind of attitude, only now it’s directed against other users. Sure if you use the command line only to show off, maybe by some fancy screen shots, then it becomes ridiculous even though it’s a freedom you as a user have. Never forget though that the command line is a tool and as such is very powerful and efficient. If I know how to use it and if I save a lot of time doing so, why should I forsake that opportunity just to satisfy someone’s opinion about it being “elitism”? What’s the logic in throwing away a powerful toolbox just to make it “mainstream”, what that word now stands for? To me it sounds like somebody’s ego is too hurt to accept that we humans are different, think in different patterns, express ourself differently and actually compute differently. Linux wasn’t created to become a Windows replacement, it wasn’t even inspired by Windows, but it was inspired by some of the outstanding qualities of Unix. I think there’s room enough in Linux to satisfy different needs without singularly becoming either an elite or a plain mainstream operating system. Linux is for sure modular enough.

    It’s also disappointing to see how little respect some have for the choices of other’s. Gentoo, Archlinux, Slackware or FreeBSD weren’t created for the purpose of “bragging rights”, they’re just representing different visions of computing. Accept, please, that among the ones who use these systems you mainly find low-key users with no intention or wish to brag about anything. As long as a distribution has a good infrastructure to push bug reports and patches upstream it will gain the whole community. Within the so called advanced distributions, you might even include the ones you view as snobbish, you most probably find that more such work is done, thus serving the good of Ubuntu, Mandriva and every other distribution. Fedora also gets an undeserved amount of criticism when in fact Fedora does a huge work in hammering out some of the features many desktop users long to see work smoother. To not hide my own preference, I use Archlinux, probably because I’m too stupid to understand the others, because that’s the only system so far that makes total sense to me. Anyway in the Archlinux forum you see little if none patience with distro-bashing and there’s an outlined etiquette of showing due respect.

    Maybe it’s good to remind oneself of how Linus defines the motivating factor of how code is written: “it should be fun”! Have fun and let each one have fun the way they wish. I don’t care if someone prefer a slacking time reading a book, or if someone else rather prefer an active mountain climb, or I actually care because a share their joy.

  18. @KimTjik, Fedora is absolutely the place to be for “gushing edge” technology, and a lot of things have come from there, for better or worse. However, the problem with talking about “it should be fun” is just how few of the people who argue the toss about “the right way” are actually coding, in any way shape or form.

    Too many people are “back-seat programmers” who look at a system or app and say “this should be programmed in such & such a way, even though I have no real experience on which to base my thought processes”. “Why not drop GTK+ and use Qt”, anyone? Or the “This should be written in C, not C#” people?

    Free Software, first & foremost, is created to scratch an itch. Too many spoiled people these days with entitlement complexes feel they are customers with the right to demand things – as opposed to “collateral damage” from developers doing something for their own fun or gain.

  19. KimTjik: It seems you missed my point. I didn’t say command lines were bad or useless, and I know they save time.
    But I think they tend to be overused. Some people bothered developing programs to replace some common command line uses, and (can) make things faster and more convenient, especially to newcomers. On the other hand, if my memory serves, the Ubuntu FAQ as well as other sources suggest using command lines to solve random problems, while these FAQs are usually read by newbies who would feel much more at east with a graphic application. If such an application exists and is already installed on their OS, why not recommend they use it instead?

    My mother certainly won’t type command lines to solve a common problem. And that’s why I often have to help her with her Eee PC with Xandros.

  20. @Stifu, Sadly (and annoyingly) most Ubuntu FAQs are written by beginners who don’t really know what or why they’re doing. The proverbial blind leading the blind.

  21. @Stifu,

    “But I think they tend to be overused.”

    Another ridiculous statement. I think I’ll coin new phrase: ‘gui snob’. A gui snob’s mantra: “It’s gui or the highway! Stop your bad habit of typing commands in a shell or else.”

  22. Brilliant post! And so true… I miss the days when picking the best of breed was the norm rather than the exception; when the language you wrote in was your own choice to make; when people got their inspiration from the nice things on other systems.

    And especially, when the desktop was stable enough that the most controversial discussion was whether games should be included by default or if they should be left out to have space for other interesting things! Unlike the state of affairs today where rewriting for the sake of rewriting because “if I rewrite and say everything else is crap it’s going to be perfect” means my gfx limp along, audio sucks and the network keeps blipping off on it’s own whenever my cat’s tail swishes the air around my laptop…

    Regarding your question: yes, the internet is full of idiots. even worse, most of those idiots have learned to code and have no girlfriends to keep them busy (because they’re idiots, probably), so they’re coming in in droves. I guess it’s the price to pay for having an accessible and developer-friendly system with no idiot-proof checkpoints. *sigh*

    end rant

  23. Those individuals who get caught up in the “different is better” mantra forgot why they are using a computer in the first place – it’s a tool, a wonderfully flexible, powerful Swiss army knife, but no more than a tool, all the same. Arguing Abiword versus Kword is a waste of energy in an emissions-heavy world. I can write as well in WordStar on an old 64K IBM PC as I can on my current main squeeze, an 8GB AMD 64X2 running Canaonical’s bloatware. Do I like the eye candy? It’s a nice distraction, but I’m just as happy using Enlightenment over Lenny on my old Thinkpad X40 as I am using the latest OpenOffice on Intrepid.

    As Bill Murray’s character in ‘Meatballs’ said, ‘It just doesn’t matter. It just doesn’t matter. It just doesn’t matter…”

  24. I don’t know any of the people who want to be different for differences sake (and are that irrational) personally, but you cannot avoid their comments on blogs and forums.

    I prefer the best tool for the job. I have a Mac (iBook) that is doing what it’s supposed to do – keep me mobile with all the stuff I want to do. But since the iBook is slowly but surely showing its age, it’s time to think about a new computer. I found myself using more and more open source software over the years – OpenOffice, LaTeX, Firefox, Ardour, Scribus, Inkscape etc. And since I use the Google apps (yes, I know, another evil personal data empire) for all my e-mail and calendar stuff – and even some of my writing and the occasional simple spreadsheet –, so I enjoy the freedom to choose whatever OS I please. Well, Windows as the exception rules itself out because Ardour isn’t available there.

    I enjoy using underdog software and it sometimes is a guilty pleasure just to use different software. But if you are over thirty years of age you can barely be rebellious without any form of embarassment. Even if you are »different« from the norm, your friends will have learnt to tolerate it with the years and your girlfriend or wife may love a bit of that, in reasonable portions. And you can have fun without certain topics (what fun is it to talk about an operating system on a birthday party at three in the morning when another round of vodka is waiting and your evenly drunk friend invites you on a ride on his frightneningly fast motorbike? Well, none…)

    I can see why someone wants to be different, but why with an operating system? The thought alone is simply beyond me. Rebel with music, rebel with art, rebel with politics, but an OS seems totally inappropriate for me to live or relive your youth. The problem with Linux is and will increasingly be that it is simply not that different from other operating systems. Even my parents use Linux and they never used any command line – they don’t know what it is. So all the technical rebels have nowhere else to go than to some command line magic.

    Part of my and probably any youth was the longing to be different and of course I knew I was right about everything and everyone else was wrong. I was different for the sake of it. But if you don’t or can’t differentiate yourself from anything by music, literature or art, like most young people do, you have to find something where you can. And the OS world is a lovely place to do that. The battlefield is divided in clearly distinctive parts and it is easy to rebel, because there are easy targets. Starters begin with the »MS is evil« mantra until they switch to the mac, where they soon discover that there are also a lot of people using them and they are not really that different.

    The last retreat is Linux, and even that is becoming increasingly normal, so they have nowhere else to go and they simply have to defend it if they want to be different. They fight their battle on battleground that is constantly getting smaller. The logical response to this would be to give new users a hard time and irritate them with tech lingo that no »normal people« would understand.

    But in my experience part of growing up is to look at an argument from all sides and choose the best option for yourself. So there is not really a point to persuade someone to believe that the worse option is the better one or even that your way is superior. Even most punks have discovered as they grew older that the most punk thing you can do is to do what you suits you best and give a shit what other people say about it. Season that with a little bit of the categoric imperative and you have a happy person that won’t bother other people about their choices and can even be reasonably helpful if they are asked.

    Maybe the people mentioned in the article are idiots, but to me they simply have a lot of growing up to do.

  25. @Stifu:

    “the Ubuntu FAQ as well as other sources suggest using command lines to solve random problems”

    That’s because a single commandline can be universal across all linux distributions for a wide range of versions whereas a GUI based solution might only work for a specific version of a specific distribution.

    Not everyone has the same GUI at the same version.

    My own point of view, I’ll use whatever gets the job done faster. For me the fastest way to launch an app is using gnome-do – essentially a commandline in a GUI – so i use that. For me the fastest way to update an svn checkout is to write “svn up” in a term. So i’ll do that. If i want to install a new application, i’ll write “sudo zypper install APPLICATION” in a terminal because it’s 10x faster than launching the GUI tool. A GUI could *never* match the speed of writing the install command in a term simply because a GUI requires me to navigate/search/click several dozen times to complete the install.

    I couldn’t give a toss what anyone else does, until i find a way which is even faster/easier than what i currently do. So, do I overuse the terminal? Yes – in the sense that I use the terminal when there are valid GUI ways of doing things. But in the sense of “what gets things done fastest”, i’m bang on the money.

  26. […] Microsoft needs to plant or circulate a bait before it establishes a strong case. So Jo’s latest rant, assuming it might refer to Mono, simply neglects all this by describing the issue with […]

  27. “seeing the number of people who actively want Ubuntu to be less awesome, by dropping superior apps on the basis of perceived “difference first” attitudes”

    Which specific applications would those be?

  28. I really don’t have time to produce an itemized list, but try taking a look at Ubuntu Brainstorm – e.g. “replace Brasero with K3B” nonsense

  29. Users and developers have the ability to influence which becomes the best app of tomorrow. I think that is part of what is going on. Some apps are built with technology that is riskier than others, for example.

    [See:
    http://boycottnovell.com/2009/02/04/the-api-trap-part-1/ [note Microsoft’s FAT attack]
    http://www.linuxtoday.com/infrastructure/2009040601239NWMSOO comments
    http://boycottnovell.com/2008/11/25/jose-on-mono/

    Also, an app may be better than another today but may be faced with certain design limitations that will limit it tomorrow. The FOSS world prototypes in some languages [http://www.parrot.org/ might play a strong role in the future] but frequently reverts to C and C++ plus related configuration and management tools.

    BTW, QtCreator and Qt (C++) have been recommended by some recent users of Microsoft and other tools.

    Since the FOSS world has the resources to have almost any software clone the features of another similar one, we might as well be a bit discriminatory and careful and also avoid settling for short-term gains at the risk of longer-term losses.

  30. You seem a little confused, Jose. You suggest that prototyping is a good thing, yet 2 paragraphs later, say short-term gains are a bad thing. It’s one or the other.

    Regardless, I have two issues with what you’re describing here. Firstly, who are you to tell people what they can and cannot do with their time, and what languages or frameworks they can and cannot use? Do you have any idea just how presumptuous that sounds? Is there some secret council that determines which activities are permitted by people developing Free Software which I’m not aware of? Am I permitted to write a GTK+ app in Python, oh mighty Overlord? How about Haskell? How about Boo? By all means, inform people of their choices and make recommendations – but that’s not what you’re doing, what you’re doing is arbitrarily declaring (to quote you directly) “we might as well be a bit discriminatory”. Way to wave the flag for Freedom there, Jose.

    Secondly, an important part of an app’s usefulness is having an active developer or developers behind it, constantly seeking to improve it as much as possible. Without developers, an app stagnates, bugs go unnoticed, features remain unimplemented, and the experience tends towards mediocre rather than constant self-improvement (kinda the point of my post). Sometimes the most technically “clean” solution isn’t the right one – the one which is fully-featured and constantly improving is (hence, for example, why most distros ship a fat blob like Firefox rather than a more elegant and native-looking-and-feeling Epiphany by default). Some more “bloated” technologies lower the barriers to entry for new developers to contribute on a project, and allow existing developers more time to focus on the features (and less time on malloc()). Why do you think Python is so popular, despite being slower than molasses?

  31. >> You suggest that prototyping is a good thing, yet 2 paragraphs later, say short-term gains are a bad thing. It’s one or the other.

    I intended “short-term gains *that hurt long-term* are not a good deal”. Maybe I wasn’t clear.

    >> who are you to tell people what they can and cannot do with their time

    Presenting a viewpoint is not “forcing” anyone to do anything. Maybe I wasn’t clear.

    >> Secondly, an important part of an app’s usefulness is having an active developer or developers behind it

    I think your point there was that having an easy to use framework leads to more contributions for features and greater experimentation.

    I didn’t argue against that.

    To extend your example about bloated firefox and about epiphany, I would surmise that a very successful epiphany (or dillo or…) could develop from the knowledge and experience gained on the firefox laboratory. Of course, firefox has a number of positives, and it would run noticeably slower in important cases if it were coded in python or mono.

    One note is that there are many languages and frameworks that are comparable to others or that could be changed to avoid various issues. I am advocating helping grow and improve the more open and safe platforms we can find.

    If you read the link about the api trap, you may agree with me that it’s very easy to patent so that using the “API” of a framework will violate the patents (here, “API” means “any software interface”). The less you know about those patents, the more likely the more sticky API components will spread and a suitable alternative avoided. In the worst case, just hooking up with the core platform services/components (as might be required by the standard) or using very basic features in combination (as required by that platform) would result in the violations.

    The risks are much higher of violating a Monopolysoft patent when you clone dotnet than when you deviate (the more so the better). I can see more cases in the future, where the law or court standards might be changed (without software patents being abolished totally), where the closer you are to a technology, the more likely you would still be of being in trouble. Using the exact API seems very foolish (read the patent api link above if you didn’t).

    And as pointed out by the mono link, patents are not the only important consideration by a long shot.

    Also, we are talking about Monopolysoft. We are talking about helping or hurting the value and leverage of extensive Monopolysoft assets. We are talking about helping or hurting the existing competition.

  32. @Jose_X, I saw your “patent trap” idea being formed, from “well, what about if this happened” rumblings to full-on “look, this is the truth!!!”.

    You missed then, as you do now, the reason people suggest your analysis is flawed.

    An API is just a set of rules. How you implement those rules (if at all) is entirely up to you. If an API has a HelloWorld() method, then you can do what you want with it, even if the API says “Draw a message using GDI+” nobody is stopping YOUR implementation of HelloWorld() from using Qt. Or somesuch. That’s how this stuff works.

    Let’s take an active example of Freetype. Freetype implemented a method of font hinting (i.e. using font hints stored in a .ttf file) patented by Apple. Apple’s legal department started rattling sabers, and Freetype was modified so the API call for “give me the font info”, instead of returning the (patented) stored data, provides autogenerated data instead.

    If one specific method is at risk, then avoid it – and given this is Free Software we’re talking about, even if a change causes app breakage, those apps can be fixed trivially.

    There is far greater danger from patented algorithms (i.e. codecs) than from your spurious “API trap”. Unless you live in fear of the concept of HelloWorld(), rather than a “bad” implementation thereof.

  33. >> How you implement those rules (if at all) is entirely up to you.

    (a) if the standard specifies you need to have it implemented and it must behave as such.. then you do it or you don’t follow the standard. There is no way around that. Does mono follow X or Y standard?

    (b) if you care about interop, about meeting some specific interface exposed by some other software, then you have no choice in the matter either. If you don’t implement, then you don’t interface properly and hope of interop drops near zero pretty quickly.

    Of course, each of these is manageable at the beginning. It’s when you have propagated the API extensively and then find out about inconvenient patent traps that things become really ugly.

    >> You missed then, as you do now, the reason people suggest your analysis is flawed.

    Point to the particular comment you have in mind because I don’t remember any challenge that wasn’t rebuttled fairly successfully (at least to my understanding).

    >> If an API has a HelloWorld() method, then you can do what you want with it, even if the API says “Draw a message using GDI+” nobody is stopping YOUR implementation of HelloWorld() from using Qt. Or somesuch. That’s how this stuff works.

    Perhaps you don’t understand then. This example you gave doesn’t touch on why this would or would not be a trap. In fact, as you lightly describe it, I don’t see a trap.

    >> instead of returning the (patented) stored data, provides autogenerated data instead

    It would help me analyze this example if you gave more info. I can’t tell if this is a good or a bad example.

    All I see is that (a) apparently the file content provides redundant information, (b) patent infringement could be avoided if you avoid one of redundant components, so (c) the FOSS devs did just that and derived the part they left out.

    The gif patent problem is a better example. It’s closer to what I have in mind, except that it is very specific and won’t affect large portions of many apps.

    The gif standard says do X. To interoperate you need to do X. There is no X’ that is suitable, according to the standard. Anything but X means you fail at that task. You cannot avoid the patent and interoperate with .gif. [I haven’t looked at the details of the gif patents or gif spec, but I think this is the general idea.. at least if it was unavoidable.]

    That is the basic issue I am talking about. It’s not that you can’t achieve some of the results you want through other API/designs (eg, avoiding the trap api from the start; eg, spread .png rather than .gif). The problem is that as you grow out software using that particular trap API, you create the equivalent of interlocking components. You create the equivalent of many .gif files, ie, of numerous jigsaw puzzles that are only useful when completed; however, to avoid a patent, you must take out certain pieces of each puzzle. To replace these holes, you can add redesigned pieces of a different behavior/shape (to avoid the patent problems). This means, however, that you have to keep changing adjacent components, at least some amount, at least initially, because the initial surrounding environment (defining the outline of the missing puzzle pieces) expects specific behavior (specific shapes), which we eventually found out we have to avoid (to avoid the patents). How much redesign will be needed for any particular scenario? How frequently will you learn about patent problems and have to redesign?

    Note that the environment around the holes can be composed of more mono code (that is not infringing as is, with the holes set up). However, it can also be composed of dotnet code or closed mono code where these third party components are not going to be changed by their owners (eg, because they can’t manage that but don’t want to reveal source; because they won’t; because it’s MSdotnet and they have a license; etc). It can also be composed of non dotnet code or even dotnet-ish code but which must abide by rigid interfaces (eg, an IMAP server or plugin, see example scenario below).

    So, full resolution of each missing puzzle piece for each violating puzzle will depend on how much change will ultimately be needed from the regions adjacent to the holes. Externally, there are limits imposed by already defined interfaces (some of which can’t be changed). Internally, you would like to avoid making too many changes. For each chain reaction of changes that might be a candidate fit, you must make sure to avoid further patent infringements (on any patent).

    For perspective, all FOSS is subject to this, but all FOSS does not gratuitously walk into patent traps. We ask, *who is Microsoft* and how much to they have invested in “patent traps” around dotnet? We compare that answer (in theory) to the same question but about every other API/vendor combination (eg, dotnet/Sun, Java/Microsoft, Java/Sun.. etc). And don’t forget we are talking about api traps, not about general patents. It’s about designing api and patents together to track each other. And to avoid prior art, you have to anticipate the api, else others would be using it already, providing such prior art and foiling the patent-that-tracks-the-api trap.

    >> If one specific method is at risk, then avoid it – and given this is Free Software we’re talking about

    It likely would be more much than “a method” call. For some patent claims, it might be “any” method call within some API (because all method calls might rely on certain assumptions that would have to be changed to avoid violating patent claims). Plus, some methods or framework pieces are very important in that they help guide application design decisions.

    >> Unless you live in fear

    Things can definitely get uglier than you pretend is the likely scenario.

    Perhaps some people don’t mind, when things get ugly, accepting deals with Microsoft as necessary (eg, patent protection). For example, Novell seems to have taken this approach. They probably prefer to take the Microsoft money and protection (in exchange for their contract work) and thus avoid having to recode and redesign their way out of any future messes across their product lines.

    Let’s remember that mono supporters (like many devs) seek to create as much integration as possible and as many apps as possible with their preferred technology.

    Let’s remember we aren’t talking about one method call. Microsoft’s patent writing machine is nonstop. Microsoft engineers are talented. Microsoft has lots of money. Microsoft has given the marching orders (they made patents a key strategy in the late 1990s in fighting off the threat to their money line from FOSS). Microsoft learns from its past mistakes as well as the mistakes others make (eg, they learn from ineffective or bypassable patents). Each single patent can affect numerous API components. Etc, etc.

    Let’s remember that not everyone using mono will have community backing.

    Let’s remember what we just covered above. The trap API will be used to create large interlocking system, some parts of which will not be changed for various reasons. In any case, more than just the immediately affected pieces will have to be redesigned and recoded.

    An example of a trap would be if a patent applies when the app (a) makes use of some basic security feature that happens to be embedded in many API calls and framework assumptions, (b) relies on an error-logging framework, and (c) does IMAP or POP or even TCP. To avoid infringement with an app that already does all these three things, you undo any one of (a) (b) or (c). But we can’t really avoid (c) as that is defined by the context of where the application works. Eg, to change any part of TCP, you would have to change established, standards based software to handle special exceptions for these apps (and do so everywhere this app might be deployed, and across all vendors that implement this standard and which may interact with the deployed app). Avoiding (b) might be the way to go, especially if (a) would imply way too many changes or almost a full blown change of API, but (b) might be just as ugly or worse. It all depends on each app.

    Now, working on these fixes means other apps stand to push ahead, but this will still mean Linux will take steps back, proportionally to its dependence on the affected software.

    My point is that Linux+FOSS should avoid these dependencies. Ie, mono (as a high risk candidate technology) should be avoided to avoid pain later. There are many (imperfect) substitutes to mono.

    ..and of course, this is the patent angle only. I already mentioned there are other very important reasons why I would not want to help Monopolysoft or put the ball in their court even if patents were not an issue.

  34. @Jose_X, you seem to see this from a developers standpoint, but the real world users wouldn’t care if an app is superior over another in two or three years, they need it now. They couldn’t care less about design limitations that might have an impact. All they see is what they use.

    To say it with Karl Poppers critical rationalism: T´ can only replace T if T´ offers the same explanatory potential of T and goes beyond that. And the same is true for users: they would only switch apps if the new app is as good or better than what they have now.

    I am a pure user myself. And I don’t care if Firefox is a fat blob, as directhex put it so elegantly, I have the plugins I need and the other browsers don’t have them. I know FF is a fat blob, but I don’t have any alternative. If an alternative presents itself I might consider using it.

    In the end it comes down to a free market economy: Is a project attracting users? Do the users contribute? And what can the project do to attract even more users? They may be flawed by design, but in the end it matters what they offer at this point and not what they may offer on some uncertain point in the future.

  35. I agree.. with your whole comment, pretty much.

    Even “mere” users can vote for the team they think best helps them by contributing.

    I think more users will be better off by breaking monopolies, especially when the monopolist has multiple monopolies and levers and uses them to move into new markets. Microsoft uses every ounce they can get away with legally (or illegally if they think justice will lag sufficiently or they outsmart the authorities).

    Yes, I really have a problem with Monopolysoft specifically. They are very competent at dominating markets one way or other. They find angles and creative weapons where others don’t even (dare) look or exploit. They know what counts and what doesn’t. They know what wins. They embrace customers only as much as necessary to win and dominate. With control, customers and “partners” have less leverage against them. They also have no qualms about deceiving.

    Monopolysoft doesn’t need my help. Monopolies stagnate and suffocate, more so, the more power they gain. I don’t want to see FOSS be embraced, extended, and extinguished (marginalized). Monopolysoft embraces good ideas, then extends them to keep others out of the party (except under Monopolysoft supervision and limitations) We are open. Microsoft is not. I don’t want people to “learn the Microsoft lessons (again)” ten years from now. Enough is enough. I don’t feed parasites if I can help it.

    ..If I have to pick between similar options and one helps them while the other less so, I will not pick what helps them more.

  36. @Jose_X,

    Microsoft has been in the software business for many years and has developed or acquired patents on pretty much every field of computing.

    In particular, you are singling out Mono as a dangerous technology on the grounds of patents and yet you seem to ignore more pressing problems.

    For instance, both Mozilla and OpenOffice implement Microsoft COM, in Mozilla it is called “XPCOM” and in OpenOffice it is called “UNO”. They are both clones of a technology that was created by Microsoft and patented by Microsoft. Whether the patent has merits or not is a different matter. But considering that Open Office is apparently downloaded “millions of times” per week (according to none other than Boycott Novell) and Firefox now has 20-30% of the web market it seems like they are both juicier targets to go after than Mono. From a financial perspective, if I owned those patents, I would go after those that give more bang for the buck.

    In 2002 (or 2003) Microsoft purchased the graphics and OpenGL patents from SGI and they are now the owners of them. Should Linux users stop using OpenGL-based applications, compositing window managers and video games because of that? Why are you not boycotting the use of OpenGL in that case?

    The same market principle applies here: every Linux system is shipping with OpenGL and likely infringing on patents that used to be owned by SGI and now owned by Microsoft.

    For consistency, you should start a movement to boycott all of these technologies and get people to write software that avoids it.

    Or alternatively, gasp, you could work under the same principles the Mono team does: implement the technology and if there is ever a patent brought up, find prior art, reimplement without infringing and if none of that is possible, rip out the code. Which is pretty much what every other open source project does.

    And instead of fighting open source projects, you could *fight* software patents and work for patent reform. Attacking Mono (as you did in your post above) merely shows that you have only seen the tip of the iceberg and just realized “icebergs are made of ice”. Congrats genius!

  37. >> In particular, you are singling out Mono as a dangerous technology on the grounds of patents and yet you seem to ignore more pressing problems.

    Patents is only one of two main issues I mentioned. Arguably it is the lesser problem. Certainly, to date, Microsoft’s main weapon has not been patents. However, it’s worth noting that the Comes exhibit revealed Microsoft does look towards patents as a very crucial weapon to manage the open source challenge. This strategic change happened just before the turn of the century. Personally, I continue to think the more subtle “monopoly leveraging of interop they control” is a more potent weapon, but it certainly helps them to get patents on their side, if only for the FUD (deception) and extortion factors.

    When there are so many similar platforms (including platforms that could be forked if necessary and adjusted or which are less under the control of a dominating entity), why pick platform Y over X? My experience on forums (and it is limited) is that those that back mono tend not to be bothered or even do like Microsoft’s monopolies. They also tend to speak as Microsoft is unstoppable.

    >> For instance, both Mozilla and OpenOffice implement Microsoft COM

    Is that true, or are you pulling my leg? I haven’t studied those 3, but I always believed there were real differences among them (maybe they are more similar than I thought). Some of the core concepts are pretty simple and might be shared. These might not be patentable, but if you aggregate enough of these simple concepts it becomes readily patentable in the US.

    Novell (cl)aims for “interop” with MSdotnet. That is very different than saying you have a framework that shares basic items and concepts.

    So from the patent (read the api trap link) as well as the traditionally more important EEE perspective, you should not IMO contribute to the generic dotnet platform.

    FWIW, I would like to see alternatives to Firefox and Openoffice gain ground on these two (wherever they lag behind).

    Also, keep in mind that mono is developed and sold as a tool for building new FOSS apps. Firefox and Openoffice, while platforms themselves, have more limited capabilities as application generators (at least in practice).

    Finally, those two alternative platforms don’t belong to Monopolysoft, but rather to organizations (one being nonprofit) that have a high interest in bringing competition to markets controlled by Monopolysoft. Each of these competes aggressively with Monopolysoft. These platforms gain from the growth of Linux and FOSS.

    >> it seems like they are both juicier targets to go after than Mono.

    Their core are not clones.

    Did you notice that the FAT patents were very specific. The more specific the patents, the less likely a judge would sympathize with you.

    >> Microsoft purchased the graphics and OpenGL patents from SGI

    I am aware of that but not of the details.

    From the EEE perspective, Microsoft gains much more from use of DirectX interfaces. I also expect they have many more patents (especially tricky ones) on DirectX.

    >> Why are you not boycotting the use of OpenGL in that case?

    A few more differences I see are that they bought those patents after the fact, rather than having the ability and desire (see Comes exhibit) to create interfaces and protect them with patents.

    It was also a small number of patents, iirc, not the many Microsoft has been taking out and likely has on dotnet related interfaces.

    BTW, if antitrust safeguards kick in, DirectX is Microsoft’s playground. OpenGL is not.

    >> And instead of fighting open source projects, you could *fight* software patents and work for patent reform.

    Too late, I’m already on it.

    You focused only on the patent question. I think the risks are highest for FOSS devs when you clone Monopolysoft. Also, the other “half” of the battle, which has nothing to do with patents, means that you basically vote for the viability of a platform/standard/etc (and of its patrons) when you use/clone it and build for it. There are many better alternatives than to be voting for Monopolysoft (again, IMO). There is a very good reason I call this company Monopolysoft.

  38. @Jose_X,

    Just do a google patent search for “QueryInterface” or “IUnknown” and Microsoft. The patent covers the very foundation of COM, and all of the listed products infringe on it.

    There is no difference in how they obtained the patents. The fact of the matter is that they own them.

    And Mono is much less of a problem (due to its limited use compared to other technologies infringing on MS patents) than big block busters like Firefox and OpenOffice.

    Also, there is no such thing as an “Antitrust safeguard”, you just made that out of thin air.

    So what about a little consistency here?

  39. I’m not in the mood now to search for the exact patent number(s). Do you have it?

    *If* correct, this would be a case of a patent trap.. that might be pretty nasty.

    Seeing how nasty that might be, I would suggest we not create other applications that would be good candidates to end up the same. Two is enough.

    I would love to see alternatives to these apps (there are for many scenarios, but more work is needed).

    >> And Mono is much less of a problem (due to its limited use compared to other technologies infringing on MS patents) than big block busters like Firefox and OpenOffice.

    I completely disagree about mono when contrasted to alternatives (C? Java? ..?), but I’m willing to hear about more patents or whatever.

    As for these two apps, the key is to have substitutes for what they are (eg, subs for the useful plugins, etc). The totality of their features, in relation to other apps, and their replaceability with other apps helps define the potential risk (wrt patents).

    Microsoft has more patents for recent technologies. The missed the opportunities to cash in (as they are trying to do now) back then. For a while now, much prior art has exists for these older technologies.

    >> Also, there is no such thing as an “Antitrust safeguard”

    Antitrust authorities can step in as necessary. While Microsoft can in the future attempt to acquire more patents (eg, to try to have opengl related patent holdings catch up to the directx related ones), antitrust authorities may step in then or maybe should Microsoft get too pushy afterwards.

    Anyway, Microsoft’s major investments are with dotnet (ooxml, etc). That’s where they have the ability (inside info) to rack up the patents that would be thorns to others.

  40. @Jose_X, “I completely disagree about mono when contrasted to alternatives (C? Java? ..?)”

    Java is known to infringe on Kodak patents, and large sums of money changed hands to settle.

    As for COM+, start with 6460058 and go from there

  41. >> Java is known to infringe on Kodak patents

    What does this have to do with “patent api traps”?

    These include whenever you have a standard or interop requirement. In particular, the worry is over the API (eg, standard) and patent being designed alongside each other.

    I don’t pretend to believe I proved anything (eg, like a mathematical proof). Also, the patent trap link mentioned earlier has a comment underneath with a link to a similar argument made in 2003 on a mono discussion thread. Individuals and their corporate patrons have likely been attempting this sort of thing since software patents were attempted. In fact, just this sort of weakness/loophole/flaw is why many probably felt software patents would not fly. The US courts still need a little help realizing just how unconstitutional software patents are.

    Thanks for the patent link, btw. I’m not sure if I would look at it. Obviously, mono is horrible, wrt this discussion, being based so closely on so many Monopolysoft-created specs; however, I will keep looking for the opportunity to contribute to alternative browsers and office suites (I like competition, and I also have some complaints over these giants).

  42. In my country there’s another way this idea “We’re different” shows itself:
    there is a IRC channel which is supposedly dedicated to talking about using Linux-based kernels, yet most of the guys over there talk about their sexual performance and nothing even remotely related to Linux/Free software.
    I told them they were repelling any business users, people who were focused on solving their own problems. Yes, most of them had more software expertise than I did, but they were not interested in sharing it. They were interested only in shafting one another and possibly poor souls who came to them asking for help.

    Luckly the channel is offline now, thank /* insert God here */!

  43. Personally I prefer K3b to Brasero, so thats what I installed on my Ubuntu desktop. However, my opinion is just disregard the fanatics and use what works for you. I use different distros on different computers, and can use terminal or gui as I find it necessary. For some purposes the terminal works better and can be called up faster.

  44. Thought that I’d post here to agree completely with the OP.

    I guess it all goes back to using what’s best for the job, and if you can’t use what’s best for the job, copy what’s best for the job. While it may be nice to innovate everywhere, and create something amazing and new, it’s not always the right action. For mine, take what’s already there, pick the good bits, copy them and make them better. If there is something which could be done better, do it. There should be no room for idealogical bullshit.

    For mine too much of the free software world has its head too far up its own ass. Too much complaining and angst, not enough thinking and action. Then again, I’d be tempted to say the same about most of the world.

    Everything is a compromise, anybody who suggests otherwise is a fool.

    On a side note, the good old shell vs GUI argument seems to have popped up somehow, and I’d like to say, who cares. Use what you want, they’re both there. For mine they should be both feature complete so to speak. Where it applies both should be accessible, once again with the nature of free software, if people stop using it, it will stop being developed. There’s no reason to rant one way or the other, it’s just a personal choice.

  45. […] http://www2.apebox.org/wordpress/rants/70/ […]

Leave a Reply