By Aashu Anshuman:
The past couple of decades have seen the rise and rise of Information Technology as an industry throughout the world. It would be an understatement if I say that India has not remained untouched by this digital revolution. It has indeed been touched and how! Today, IT has become the largest contributor to the foreign exchange reserves of the country. And along with the rise of this sector has come the realisation that India needs more of this trained manpower which has come to be recognised as India’s primary export.
Presently, computer programming and information technology courses are an integral part of the syllabi of nearly all the schools and colleges in India. Students across the country are taught the fundamentals of computer programming through such well-known and trusted languages as C, C++ and JAVA. The nature of these languages is such that for many students programming ends up being more about writing the code (which is indeed important) than understanding the logic behind the algorithm of the program. Moreover, generally students find the code to be so confusing, they end up mugging all of it up and reproducing it, without any further ado, on their answer sheets. So, now, I believe, another realisation is due: that there is something wrong with the means being used to achieve the goal of making India a software superpower.
C became popular because of its efficiency which came from its low-level approach. C++ shot to fame because it offered higher-level programming without compromising on C’s efficiency. Java was developed to improve upon C++’s high-level features and with the aim of providing a language which was platform-independent. The aforementioned languages are usually called the ‘corporate’ languages by many programming pundits. The reason being that these languages are the ones most widely used by nearly all software companies; and over time, have been tailored to suit the needs of such businesses. As a result these have grown even more complex and exceedingly verbose with time. Moreover, most of these languages were developed by researchers working with technology giants with some specific purposes in mind. Later, the success and widespread popularity of these languages resulted in their inclusion in the school syllabi around the world and India, pretty much according to the rule of demand and supply. But for educational purposes, the very strengths of these languages become their biggest flaws. The kind and number of features offered by these languages generally overwhelm the novice programmer, the result being that the newbie is too fazed to learn much during the couple of years of programming education he receives in school.
Several universities around the world have now acknowledged this mistake they made several years ago and shifted to languages like Python and Ruby which are much easier to learn and write basic programs in. In fact, Python has emerged as the language of choice in schools in countries like the USA. The reason behind this major change is that the teachers are looking for a language which does not hassle the students while converting the algorithm into code. This enables them to concentrate on the more important nuances of programming rather than worry about the 27 or so errors the code supposedly contains according to the compiler.
I am not trying, in any way, to question the usefulness of these programming languages or label them as redundant. In fact, C, C++ and JAVA are among the most efficient and powerful programming languages around. The kernel of Windows Vista was completely written in C; C is a necessity for UNIX system administrators; and most programs for mobile phones are now written in Java. What I want to say is that these languages are not outdated or incapable, just unfit for teaching the fundamentals of programming to beginners. So the question is not whether “To C or Not to C?” but “When and Where to C?”.
The writer is a Correspondent of Youth Ki Awaaz.