You are on page 1of 9

Is Programming

Language Irrelevant?
The Illuminati doesn't run the world.
C programmers do.
Introduction
C is a procedural programming language.
It was initially developed by Dennis Ritchie in the year 1972.
It was mainly developed as a system programming language to write an
operating system.
The main features of C language include low-level access to memory, a
simple set of keywords, and clean style, these features make C language
suitable for system programmings like an operating system or compiler
development.
Many later languages have borrowed syntax/features directly or indirectly
from C language and many other languages are mainly based on C language.
C++ is nearly a superset of C language.
History
Derived from the type less language BCPL, it evolved a type structure;
created on a tiny machine as a tool to improve a meager programming
environment.
Originally, Ken Thompson, a Bell Labs employee, desired to make a
programming language for the new Unix platform. Thompson modified the
BCPL system language and created B.
However, not many utilities were ever written in B due to its slow nature
and inability to take advantage of PDP-11 features in the operating system.
This led to Ritchie improving on B, and thus creating C.
Relevance
Portability and Efficiency: C is almost a portable assembly language. It is almost universally available for existing
processor architectures. There is at least one C compiler for almost every existent architecture. Such is its portability
and efficiency that compilers, libraries, and interpreters of other programming languages are often implemented in C.

Memory Manipulation: Arbitrary memory address access and pointer arithmetic makes C a perfect fit for system
programming. At the hardware/software boundary, computer systems and microcontrollers map their peripherals and I/O pins
into memory addresses. System applications must read and write to those custom memory locations to communicate with
the world. So C’s ability to manipulate arbitrary memory addresses is imperative for system programming.

Deterministic Usage of Resources: A common language feature that system programming cannot rely on is garbage
collection, or even just dynamic allocation for some embedded systems. Embedded applications are very limited in time
and memory resources. And if dynamic allocation cannot be used because of the lack of memory, it is very important to have
other mechanisms of memory management, like placing data in custom addresses, as C pointers allow.

Lingua Franca: C is a lingua franca for developers. Many implementations of new algorithms in books or on the
internet are first made available in C by their authors. This gives the maximum possible portability for the implementation.
Moreover, C is an old and widespread language, so we can find all kind of algorithms written in C around the web.
Therefore we’ll very likely benefit from knowing this language.
Incompatibilities
Concept of OOPs: C is a very vast language, but it does not support the concept of
OOPs (Inheritance, Polymorphism, Encapsulation, Abstraction, Data Hiding). C simply
follows the procedural programming approach.
Run-time checking: In the C programming language, the errors or the bugs aren’t
detected after each line of code. Instead, the compiler shows all the errors after writing
the program. It makes the checking of code very complex in large programs.
Constructor or destructor: C does not have any constructor or destructor. Constructors
& Destructors support basic functionality of Object Oriented Programming. Both are
member functions that are created as soon as an object of the class is created.
Low level of abstraction: C is a small and core machine language that has minimum
data hiding and exclusive visibility that affects the security of this language.
Conclusion
There are many programming languages, today, that allow developers to be more productive than with C for different
kinds of projects. There are higher level languages that provide much larger built-in libraries that simplify working
with JSON, XML, UI, web pages, client requests, database connections, media manipulation, and so on. The TIOBE
index (an indicator of the popularity of programming languages) has, over the last few years, marked a steady decline
in the popularity for C. Its ratings are at less than 6.5%, which is the lowest they have ever been. Java has replaced C
as the most loved language among programmers.
Why is to so? Well, there are several reasons for it.

— There are no big companies or firms at the moment who actively promote C.
— It isn’t a language you think when you write programs for the most in-demand fields, such as
mobile applications or websites.
— It is not evolving in quite the same way as other, newer languages.

Many have called for a merger between C and C++ to create one language. This makes sense as C++ is an offshoot
of C and has several benefits over its older sibling.
To be honest, C programming becoming completely obsolete is still a distant prospect.
The basic reason for this is that you need to have considerable knowledge of C to be able to work with C++ and
C#. C is nothing but a portable assembler. It’s closeness to the hardware, great portability and deterministic
usage of resources makes it ideal for low level development for such things as operating system kernels and
embedded software. It is even used by compilers for other languages to communicate with the machine. The
fact that many programming languages today are better than C for their intended use doesn’t mean that they beat
C in all areas. Interpreted languages like Python, Ruby, and PHP have their primary implementations written in
C. C is still unsurpassed when performance is the priority. The world is running on C-powered devices. We use
these devices every day whether we realize it or not.
C was the past, is the present, and, as far as we can see, will still be the future for many areas of software.

What does your programming experience tell you about where the future of computer science is headed?
Presented By:-
Utsav & Suman

You might also like