Monday, December 18, 2006

C/C++ vs Rest of the World

This particular thought has been going on in my mind ever since i started programming "seriously". There have been numerous discussions on which language is the strongest. Which is the best ? I think, I have finally come to the answer.

U know, i wud like to broadly categorize the whole world of programming into two. System programming & Application programming. System programming refers to building the underlying architecture on which others can work on. And application programming refers to using that architecture to perform few operations, say word processing or listening to music etc.

When it comes to system programming, there aren't many competitors. To my knowledge, there is only one language which supports pointers.. which provides direct access to the underlying hardware.. which provides extremely fast executables.. which helps u in producing sleek and optimized codes.. which also happens to be a very tuf language to master. Ya, its ur good old C i am talking abt. Its down right simple. Just expressions and function calls.. And to make things stronger, u have C++.. Loaded with Object oriented functionalities.. But the size of the code becomes bigger when u use C++.. And u have to rely a lot on external packages to get things done. The language as such doesnt provide u with many functionalities. And 99% of the time, programmers dont have problem with the language but finding the appropriate libraries. Given these pros and cons, programmers prefer to use C when it comes to real time programming. The performance is unmatched. Java is at least 4 times slower than C. C/C++ really rule this area.

When it comes to application programming, there are just too many competitors. U simply cant chalk them down. Be it java or the visual studios package.. There are just too much of competition in this area. One cant really analyze which one is stronger. C/C++ plays a very small part in this area. Visual C++ is a major factor to be considered in this area. But VC++ is a different animal all together.. One even wonders if he is still working on C++ when he codes in VC++.. The structure is completely different. Its lot tougher and requires a huge amount of understanding. And it is also restricted to the windows operating system only.

But this the bottom line. Be it any language u choose to develop ur application. In the end, it is only going to make use of the underlying platform.. gonna use system calls written in C/C++..
They aren't really that strong. They dont provide direct hardware access. All these packages only make the programmers job easier. And thats where they are successful. Programmers nowadays aren't really interested in looking at the size of the executable. All programmers interested are in easier learning of the language.. better put, faster learning of the language.. and more importantly, better productivity is wat they look for..

Finally, it is without doubt which is the strongest language. The strongest language doesnt mean it wud to suit to all situations. Fast is the keyword in today's market. And hence ppl tend to move to other packages to get their jobs done quickly.. As always, there is compromise.. performance vs speed of delivery.. performance vs ease of use..

So, its the final call of the programmer.. It depends how he looks at it.. There aren't any clear cut rules to exactly distinguish between languages.

No comments: