Today, I declare to the world, that C is the most intriguing, interesting and fun language to meddle with. Not that I'm much of an authority nor even a decent programmer myself. I'm just another wannabe programmer on the street, who thinks programming's really cool because other programmers say so and who all his life spends time deciding which programming language to learn.
Infact the only three languages that I have used all my life are: C, C++ and Java. But, halt reader! Do not leave the page looking at my credentials. I may suck at programming and much more on my CV but I've read quite a lot about other people's opinions on the language and I personally feel that the satisfaction C gives you is immense. Its the programmer's language.
Now, let me tell you why I started writing this piece in the first place. I've been reading a lot about early high-level languages after watching the amazing documentary, The Triumph of the Nerds. I'm not really much of a programmer myself but I have deep respect for programmers and after having read quite a lot about them and also having tried being a part of them, I feel that these guys are as good artists as DaVinci, Rembrandt or Beethoven ever were. They truly create magic out of thin air and know how to control the thousand-headed beast called the computer. I call the computer a thousand-headed beast because the computer was designed and built in such a way to outdo human intervention and think for itself. Now, controlling such a beast is no mean task because if you find a way of doing something with it, it throws at you a thousand sort of different problems and all in the constitution of its rights.
In one of the articles about various programming languages, I stumbled upon a piece by a programmer, 'Why C is not my favourite language'. Its a really good piece and infact points out almost all the problems with C. But at the end of it I still had a nagging feeling to admit it. All the points mentioned in the article are true to the core and C really is irritating because it does not support strings, it throws segmentation faults, its got a limited syntax and for the most part, blames the programmer for errors. As someone rightly said, "Programming in C is like using a chainsaw with all the safety guards removed". But then, that is what the thrill is all about.
C came at a time when people were groping for a proper software to work on, to create more, better software. Its a different issue now that the software enthusiast has much, much more freedom than a hardware enthusiast but during the advent of PCs, the hardware was the most critical part of a computer, not the software. So, all the hobbyists, geeks and masterminds were busy building machines and no one was really bothered about what a computer could be used for. And at that time came C- a language so powerful, so profound and so simple that now the software guys had their feast. And remember that UNIX, arguably the best software ever written, was written in C.
Now, what is so beautiful about C that it still has a huge bunch of ardent followers? With all its flaws, C is really exasperating at times but a true programmer's heart will yearn for more of C. The reason is simple- freedom. You can create whatever you want to out of literally nothing. I know its pretty low-level and not so sleek as, say Java or Python but the aura about C is that everything here is transparent. You can do whatever you want to do with the computer- you, the programmer, are the master here.
Apart from the really complex problem of pointers, C is a fairly easy program to learn and pretty soon you can write your own programs. If you are a programmer, you would understand the feeling when a piece of code written by you executes flawlessly. Its probably the best feeling in the world when you see your baby do what you want it to and all of that with no complexities.
C is not for the whiner, the loser nor for the so-called-programmer who gives up. True programmers never give up. C is for the fighter, the go-getter, the saint. C is for those who put truth and originality above all else. Programming in C is more a path of meditation. We, the C programmers here, are artists.