Why learn C?
The C Language is currently one of the most widely used programming languages in the world. Designed as a tool for creating operating systems (the first Unix systems were constructed with its help), it quickly proved that it is suitable wherever you need high performance, speed, compactness and portability. Despite the fact that shortly after its release it was followed by a worthy descendant, the C + + language, it did not lose its importance, and it still remains an essential tool for developers and designers in many applications.
Whenever a code strongly associated with the operation of equipment is created, the C language proves its flexibility and adaptability. Network card drivers, graphics card software, operating systems and micro-controllers – these things can be found all around you, on your desk and in your car, in the kitchen and in the garage, simply everywhere intelligent electronics functions – you are sure to find the work of programmers who write in “C”. The heart of Linux is nearly 15 million lines of code in “C”. There is no better evidence for the language’s longevity.
Even in places where modern software with much more powerful abilities works, the C language was, is and will be present, because it is the language in which runtimes (runtime environments) are written, responsible for performance, economical memory usage and reliability. The “C” language niche extends from single-chip microcomputers controlling your coffee machine, to your laptop onto which you have just installed the latest graphics card drivers, to supercomputers that forecast the weather for your desired holiday.
Why learn C++?
C++ is a general-purpose programming language designed by Bjarne Stroustrup as an extension to the C language, with object-oriented data abstraction mechanisms and strong static type safety. Compliance with the C language at the source code level remains one of the primary design goals of subsequent language standards.
Since 1998, the ISO / IEC 14882:1998 standard (Standard for the C + + Programming Language) with minor amendments approved in 2003 (ISO / IEC 14882:2003) have remained applicable. In 2009, a new standard was announced (known as C++0x), which came into effect as of 12 August 2011.
It is a highly developed programming language in terms of operators, simplicity, and ease of notation. This allows for data abstraction and the use of several programming paradigms: procedural, object-oriented and generic. It is characterized by the high performance of the object code, direct access to hardware resources and system functions, ease of creation and use of libraries (written in C++, C, or other languages), independence of any specific hardware or system platform (which ensures high portability of source codes) and a small execution environment. It is mainly used in applications and operating systems.
The C++ language can be used for building higher-level applications with graphics libraries, applications to communicate with network devices and computer network simulators as well as remote device systems and network management.
So what is C/C++ actually used for?
Most of the operating systems are written in the C/C++ languages. These not only include Windows or Linux (the Linux kernel is almost entirely written in C), but also Google Chrome OS, RIM Blackberry OS 4.x, Symbian OS, Apple Mac OS X, iPAD OS, Apple iPhone iPod Touch, and Cisco IOS (which is mainly comprised of compiled C and C++ code).
Think of such Internet Browsers as Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, Safari, Netscape Navigator, or Opera. They all, too, have been developed in C/C++.
And what about websites? Google? Facebook? Twitter? YouTube? Amazon? PayPal? Yes. They all have been written, to a larger or smaller extent, in C/C++.
Think of Microsoft Office products (Word, Excel, Access, PowerPoint, etc.) or e-mail clients (Microsoft Outlook, Mozilla Thunderbird, IBM Lotus). Think of Multimedia players such as Winamp, Windows Media Player, VLC media player, or Apple iPod software. Think of Database systems such as Oracle database, MySQL, IBM DB2, Microsoft SQL Server, IBM Informix, SAP DB/MaxDB, or MongoDB. Think of the examples of the Graphical User Interface, such as Microsoft Windows UI, Apple MacOS UI (Aqua), or KDE. Finally, think of compilers and virtual machines for programming languages, such as Microsoft Visual C++ Compiler, Microsoft Visual Basic Compiler, Microsoft Visual C# Compiler, Microsoft .NET CLR, or Java Virtual Machine (JVM). Yes, they all have been developed in C/C++. And yes, a variety of compilers and run-time environments for other programming languages have been developed in C/C++, which means, for example, that it would not be possible to execute .NET or Java applications without C/C++.
Do you remember Doom III, StarCraft, Master of Orion III, or Warcraft III? You have probably played (or at least heard of) Diablo I or Diablo II? If you like computer games, then you must have heard of Electronic Arts. All of these games have to do with C/C++ programming. The truth is that a large majority of computer games and game engines have been developed in C/C++. Electronic Arts’ video game engine and (probably) all Microsoft games are no exception.
Looking for more? Here are some other applications largely written in C/C++: Sun Microsystem’s compilers, Solaris OS, Google File System, Google Earth and Picasa, Adobe’s Photoshop, Illustrator, Acrobat Reader, InDesign, Intel’s chip design and manufacturing software, IBM’s OS/400 and K42, Microsoft’s DirectX, Exchange Server, and Visual Studio, CERN data analysis applications, Bloomberg, Autodesk’s applications, e.g. Autodesk Maya, 12D, Vodaphone infrastructure, and FlightGear…. Okay, are you ready to learn some programming now?