Tuesday, July 23, 2013

The corporate hijack of open source code

Big corporations like Monsanto somewhat resemble the Borg from Star Trek: you will be assimilated. Aside from the radical anti-globalist rhetoric of Vandana Shiva, patenting seeds is a very monstrous thing to do. I mean, I don't like the thought of people stealing my ideas to make money that would've otherwise gone my way, but the whole intellectual property deal already is such a slippery slope. To tinker with living organisms is bad enough, but to patent them is crossing the line. I don't want to be drawn into a political discussion: this entry serves a purpose. I'd like to address the corporate undercurrents in open source software.

I'm a proponent of open business. I like to share ideas as they emerge, at least with a small circle. In my last post I wanted to raise awareness for the problem I have with object-oriented programming. After writing it, and watching the interview with Vandana Shiva, I suddenly became aware that the same concept of patented seed doesn't only apply to closed-source software, but also to the whole object-oriented paradigm.

To summarize the find I made: classes are molds placed upon the world from which some species of things or beings take their properties and behavior. In a corporate environment this worldview is very fortunate: things and beings (if you'll allow the distinction) are born with certain a priori characteristics that fit well into the workflow. They have a fixed role in the process that is both efficient and controllable. The term "human resources" springs to mind. Things and beings are thought of as predestined in the course of action, and the less they deviate, the smoother the process will be. Also, think of the chain of inheritance in object-oriented programming: the corporate hierarchy delegates personal responsibility into non-existence. If the world could be modeled according to its role in a corporation, then the corporation would become all-powerful. Chuckle at it all you want, rest assured that this naive thought is in the mind of your CEO: it is the mind that produces classes.

The convergence of technologies Shiva refers to I call "the programmability of natural resources", and by now it's obvious that the object-oriented view made this convergence possible. Classes can be seen as seeds that are branded, and the exploitation of them in code is nothing short of software imperialism! People who use, for instance, Objective-C are forced to work this way. I can remember the day when ActionScript 3.0 for Flash was introduced: all my code needed a complete objective overhaul. And for what? JavaScript never had this rigid requirement... Perhaps because classes can be more easily patented? That would explain why the same thing is happening in the pharmaceutic industry, in bio-tech, in energy production, etc.

Lately lots of open source initiatives have come to the same point: forced objectivity. I won't argue that this approach isn't efficient or doesn't produce higher quality code: it does! I've been using a JavaScript toolkit that is object-oriented from the bottom up, and it's undeniably a very good one. But I'm considering getting off the bandwagon and reviewing my options. It feels kind of liberating and a bit scary too. You could argue: it's just a way of getting the job done. But is it? Perhaps this restraining order is all that prevents us from becoming very powerful and independent programmers. Or perhaps I'm just more paranoid than ever. You decide.

I'd finish this post with drawing relations between object-oriented programming and Darwinism, Kantian philosophy, conspiracy theory, but hey, that would just be pointing out the obvious, right?