Jaron Lanier, one of the pioneers of opensource movement and virtual reality, thinks the opensource movement had been a total failure. He does point out the opensource movement and the web culture are two different things and agrees the latter had been a phenomenal success in demonstrating the capacity of the unknown, average individuals out there to create beautiful, useful, and interesting things.
I don’t agree with everything he said, but I think he has some important points we should pay attention to.
1.Opensource movement is boring. Seriously, sitting down and writing Wikipedia entries (of often questionable accuracy), worrying about how to format texts? Sure, it’s something you and I might do in our spare time, but we are geeks. Opensource is about serving all of humanity, but as it stands opensource just serves the narrow interests of a very small portion of the population: Geeks and nerds. As long as grandma and primary schools kids next door can’t use opensource products/projects/frameworks simply because it’s fun, the whole culture is just another outlet for elitism and fascism most hackers are supposed to hate so much. Ever said something on the lines of ‘I hate being the tech support for the whole family’? That means the people who wrote those programs and services suck, not the users.
2.Major opensource products are built upon nostalgia of the ‘better times’, the golden age of the hackerdom during the 60′s~80′s. Linux, gcc the vast majority of the main opensource projects are built upon, vim vs. emacs war, and etc etc. Linux distros had been making some good strides in this department but we still need to face facts. To anyone who didn’t string together shell scripts when he/she was in high school, major opensource projects and the tools they are based upon look downright archaic. It isn’t because they have bad user interface design (they do). It’s because they really are old and deprecated. I am continuously amazed by how many people tell fresh young minds entering hackerdom to go learn C. Kindergartners don’t start learning English language by starting with Latin. Why is the whole darn culture based on a fast-but-bad programming language designed before many of us were born? Let’s be honest here, most people who recommend C to beginners started with BASIC. When a whole culture based on ideals of innovation and sharing begins to look outdated and conservative next to hulking multi-billion/trillion-dollar corporate entities, they are in trouble.
3.This is a repeat of above statement, but it bears some reiteration. There isn’t enough innovation in the opensource community. Again, large corporate entities that takes three days to ship an empty box innovates a whole lot more than most of the opensource communities out there. Sure, there had been some interesting developments that’s making the world a better place, like Ruby and Python. The same Ruby and Python people praise for finally getting around to implementing great ideas of programming languages like Smalltalk and Lisp. Smalltalk and Lisp was invented back when the idea of a cheap personal computer was the stuff of science fiction. Linux is playing catch up in terms of features and architecture with commercial operating systems and in critical applications UNIX is king (guess how old it is). Meanwhile Microsoft is making strides with .NET framework and Google/Apple is on the cusp of next era of personal computing. Based on real world progress, opensource community as a whole lack clear vision of what the future should be.
4.There is an inherent elitism within a lot of the opensource communities. Personally I have no issue with elitism on personal level. It’s when such attitude permeates within entire communities that they begin to do real harm. Common sense dictates that any software targeted at Jane Doe should be easy enough for J.D. to use. Not so in a lot of opensource communities. If Jane Doe has hard time using an obscure text editor with more commands than the usual operating system it’s her fault for being so lazy and/or dumb. If a kid who can barely type can’t learn C and work with pointers the kid must be stupid. If it’s too difficult for artists to use computer systems to create beautiful things without pre-packaged software it’s because artsy types aren’t supposed to be good at computers. These problems are being addressed by a new wave of hackers and hacker-minded people but they are still tragically present in many of the present communities, even when they don’t specifically come out and say those things.
There are other interesting traits about opensource and opensource oriented communities Jaron Lanier pointed out as well, like how most of them are structured to shout down any voice of dissent based on fear of isolation, and how there is a culture of complacency among its leading members, but those things apply to almost any large group of people, so I felt no need to single out and discuss them.
I’m an optimist. I think there are movements within the opensource community that are trying to address this problem. I think the prevalence of web platforms, popularity of light weight scripting languages, and web/user interface designs are all in some form a reaction to the perceived stagnation of opensource community. People are increasingly becoming aware of what a stupid idea it is to teach C in middle schools, and how even stupider it is to begin computer education in a middle school instead of much, much earlier. I might go out on a limb and say that some people are beginning to realize that programming as an activity is not difficult at all, and that it is the teachers who don’t know what they are doing, not the students.
Yet I am still worried about the culture of opensource. Opensource as in framework of idea, not of computing. How can we apply the ideas of opensource and innovation to the fields outside computing, like CNC based personal manufacturing, scientific research and DIYbio when it’s running into such problems on what should be the culture’s home ground? Are those open-manufacturers/scientists/biohobbyists/etc about to run into unforeseen trouble inherent in existing idea of opensource itself? Are we already in trouble?
edit: maybe I should say that the woe of current opensource community (as a whole. There are many brilliant people and groups out there, can’t stress that enough) is that they don’t hack as much as smaller groups?
Edit: Aug 28
Some people wrote me some valid (“you don’t seem to understand opensource in the post”), and some vitriolic (“what’s wrong with being a nerd?!” but with lots of swearing in it), rebuttals to this post. I refrained from replying to those responses individually and getting into arguments since I think this post is terrible myself (like how I used opensource and web2.0 interchangeably throughout some of the parts). I must stress that I’m a student of all things Free software and what I say or write here should never be taken as something it isn’t.
I personally like to consider myself as someone with geek tendencies. I love emacs, and I love the idea of emacs. I think GCC is a huge thing that changed the course of humanity as much as development of steam engine changed the face of humanity forever. And yet I think all of those tools are old, based on older ideas and inaccessible to anyone who doesn’t subscribe to the lifestyles of people like you and me, the people who wouldn’t mind staring at a screen for hours on end.
I’ve had a chance to talk to some ex-programmers turned artists at the ITP exhibition last year. There was a particularly interesting exhibit with a type of evolving display system. He did all of the graphic generation within the exhibition by hand, by putting together a library of hand-drawn images. It was rather obvious he could simply do some coding in the Processing language and get it done faster and more efficiently, so I asked him why he bothered with the manual labor… And he told me that he simply doesn’t like to program. I’m not sure how I can portray the eye-opening effect it had on me at the time. The artist was fine with studying algorithms and working them out on paper, using it to generate obviously computational results. He was a very logical guy with mathematical proficiency to spare, certainly more than what I can say about myself. It’s only that he just couldn’t stand the whirring of the computer fans, the monitors, the endless clacking of keyboards and always worrying about battery life of one device or another. And I get a feeling that he is not alone in this. Maybe there are some people who are allergic to certain type of things used universally in building computers. Maybe there are some kids who just can’t handle the physical environment that comes with using a computer as we know it due to some psychological trauma. Such cases aren’t unheard-of in education circles and there can be hundreds of thousands of reasons why someone would shy away from programming activities while possessing logical acuity and vision that would normally lead to the act of programming.
I subscribe to the Alan Kay notion of describing computer-use: every interaction with a computer is an act of programming, but programming activity isn’t exclusive to usage of computer devices. And that’s why I agree with his frequent statement that the computer revolution never really happened. Computer revolution was supposed to be the revolution of the mind-ware. It was supposed to be this awesome tool of abstraction that would elevate (for lack of a better term) all of humanity to a state of freedom through better understanding of subjects that were distant and foreign to them… It was supposed to make science easier, a goal that is near and dear to people like me interested in DIYbiology. Easier not as in being lazy but being accessible, like how calculus was once considered the pinnacle of human knowledge but is now being taught even in some of the worst educational curriculums in the world as something every human being should know regardless of their intellectual rigor.
The original post was how I tried to address the inconsistency between the ideals that I believe should be applied to opensource community and the reality of the tools deployed. It’s called open-source, purists call it Free-software. Despite some differences between the two they really are about openness and freedom, but as long as its users and contributors subscribe to a certain type of lifestyle. Is there any way to change that? Can Free software be so free as to be no longer confined to the silicon and copper frameworks and languages of C and (gasp) Fortran?
I know this is all sounds like a pie-in-the-sky talk right now but I feel it’s a goal worth pursuing for those in the opensource community.