Wednesday, December 03, 2008

7 years in C

This blog is a stream of consciousness blog, but there's a hidden variable and that is fidelity. If each post, by its very nature, is a point of view, and sequential posts a progression then they must represent a decisive stream of continuous thought AND if one is to have a healthy relationship with the external world and not shut oneself away in a sandbox on the internet, then it also must be, a call to action. So keeping in mind that I've committed myself to the philosophy of The Long Now, I'm giving myself 7 years to this terrible thing called C++.
A couple of questions immediately come to mind..what makes you, oh owner of meagre typing skills, believe that you can program? Thats one. The answer..its a zen thing. If I told myself its impossible then I might as well get myself a copy of Chatelaine Magazine, Eugenics for Beginners, and IQ Tests for Dummies. So what makes a programmer ? From all my experience of sitting far behind, way behind, nerds, geeks,and the impossibly more socially inept, it seems to me a "either you have it or you don't skill". However, if one is centered, meticulous and its practice, practice, practice like Chinese pianists (thats alright there are Indian Artists) there is a probability (ahem!)that unruly lines of alphabets and numbers (please lets leave out the swedes) will eventually begin to produce mildly utilitarian and totally inhuman lines of code.

Where do you begin apart from being stuck on CLR. The first thing one does is scour the net for C++ Classes, and a 5 day course comes with a pricetag of $2789 CHING! Then you go to the next best thing FREE ONLINE COURSES. Anyone who has tried to study anything that doesn't come in a PDF format will raise their jaded hand and say, why the hell is the presentation so bad, its unlearnable, tiny font, miles of unformatted text, pop-up windows, and Internet Explorer and its uppity cousin Firefox, talk about cutting your own hamstring. Next option, spend a little...like say 30 bucks ching! See not so bad. For 30 bucks you get to learn an entire programming language in 30 days.

IMPOSSIBLE!

Well lets see. First, I have to read essays on the birth of the program, its ancestry (fine..handlable..history..not a command or acronym in sight) and then...BOOM.."function, concatenate, polymorphism, encapsulation, inheritance"..what..what..what?
If that's not bad you are called to bring on that thing of things, the COMPILER, without which you can't even print "hooray". "Your first program, in the compiler type" S**T! S**T!S**T!...what is this compiler ? Let me tell you..the compiler is GOD. Everyone knows its existence, you just don't know where the hell it is! The next humiliating step in this torturous route, join a forum, call yourself something silly, then totally abase yourself and ask What the Hell Is This Thing and Where Do I Find It!!? The answer (and you must take this with zen like calm) it doesn't exist! It doesn't exist!!! You have to make one AND in order to make one, you have to download more windows flabware. Of course you don't have to run windows, you can call yourself Stolichnaya Siddhartha Maelstrom and run it on linux and learn G++ instead. That's right no knowledge of DOS, lets do Unix. NO! After ricocheting between a user group and "help" you will realize that this mysterious, all powerful entity, is manifested by typing these two small letters "cl" short for compiler. By now a good 6 hours of your 30 days have passed, but you can be happy that you can(with a smile worthy of Zen Master) execute a program that, in its life affirming way, prints "This is a native C++ program".

So why C++. Poetic irony. In C++ there is something called Object Oriented Programming and this (as my cliff notes tell me) makes the program data centric. The data controls the program.
My data right now is "hooray" mind, so it has about as much control as a paraplegic in a roller derby. Well the data that I find inspirational, revolutionary, mindbogglingly accessible and creative is a collective of artists creating and using an opensource C++ library called OpenFrameworks . On a simple page, minimally designed, embedded with the slogan "Made with OpenFrameworks" you will find the most eclectic minds all involved in the process of providing accesible interactive art. This little thing takes out the heavy hitters like Imageworks with their $250,000 machines, it takes out the eponymous curators of MOMA and the Tate. By taking a simple idea, using a simple signal and manipulating it with the barest bits of code, they give art back into the hands of those who need it the most i.e those who need it the most. Seriously, everybody needs art, but everybody can't have it. Ever seen a severely disabled child playing ratchet and clank at the science museum. No I didn't think so. Ever seen a disabled child gesticulate as puposefully as they can and create an impressionist work of art. You will

In a world that has become insular and fragmented because of the nature of web 1.0, it pulls the participant into real space whether its a small classroom, a wall on a street, or an exhibit. It allows us to use technology we are comfortable with and it frees us from the use of screens resembling PDA devices and MP3 players. We can now play in the real world and we will play with our newest toy, no not the computer, but the computer screen.
I'm going to place a long bet, the screen is going to be the most ubiquitous thing in the next 10 years. It is going to be how we primarily interact period and it will come in all shapes and sizes, organic and inorganic. In fact the screen can be any flat surface whether a wall of a building
massive LEDs at a concert , a binary clock , a photoframe or sheets of OLEDs the thing of consequence being the amount of time per day each one of us conducts our daily transactions through them.

The other long bet is that there is no intrinsic fixed attribute that makes a programmer, not because every single kid in the next generation will be programming to some extent or the other, but because our minds are basically running programs, a survival program on a macroscale or a thirst quenching program in the micro. We have been doing this for thousands of years.Evolutionary psychology 101..our behavior is dictated by our programming, faulty behavior, fix the programming..A program is nothing more than a set of instructions that terminate. Of course you can write one for infinite loops, but seriously, why bother. And finally a universal truth... all programming is equivalent. If you take a supercomputer and one made of sticks and stones, they will both compute the same result, it'll just take a lot longer on one of them.
7 years.

No comments: