Wednesday, July 15, 2020

Where is the success of C?

Where's the success C?

 

C has been successful to a far greater extent than any early expectations. What qualities have contributed to its widespread use? 

C Language

Undoubtedly, the success of Unix itself was the most important factor; it made the language available to hundreds of thousands of people. Conversely, of course, the use of C by Unix and its consequent portability to a wide range of machines was important to the success of the system. But the language invasion of other environments suggests more fundamental merits. 

Despite some aspects that are mysterious to the beginner and sometimes even to the adept, C remains a simple and small language that can be translated with simple and small compilers. Its types and operations are well-grounded in those provided by real machines, and it is not difficult for people who are used to the way computers work, to learn languages for generating time-and space-efficient programs. At the same time, the language is sufficiently abstracted from machine details that the portability of the program can be achieved.

Equally important, C and its central library support have always remained in touch with the real environment. It was not designed in isolation to prove a point or to serve as an example, but as a tool for writing programs that did useful things; it was always meant to interact with a larger operating system, and was seen as a tool for constructing larger tools. The parsimonious, pragmatic approach has influenced the things that went into C: it covers the essential needs of many programmers, but it does not try to supply too much.

Finally, despite the changes it has undergone since its first published description, which was admittedly informal and incomplete, the actual C-language as seen by millions of users using many different compilers has remained remarkably stable and unified compared to those of similar currency, such as Pascal and Fortran. There are different dialects of C — most notably those described by the older K&R and the newer C — but, overall, C remained freer from proprietary extensions than other languages. Perhaps the most significant extensions are the 'far' and 'near' pointer qualifications intended to address the peculiarities of some Intel processors. Although C was not originally designed with portability as a primary goal, it was able to express programs, including operating systems, on machines ranging from the smallest personal computers to the most powerful supercomputers.

C is bizarre, defective, and a huge success. While history accidents certainly helped, it evidently satisfied the need for a system implementation language that was efficient enough to displace assembly language, yet sufficiently abstract and fluent to describe algorithms and interactions in a wide variety of environments.

No comments:

Post a Comment

Thanks

Climate Crisis and Innovation: Navigating Earth's Future

Climate Change: Recent Events and Technological Solutions 1. The Escalating Climate Crisis The climate crisis has intensified in recent year...