Blog Feed Post

The Bedrock of the Software World: C++ Programming Language

C++ is one of the most popular programming languages in the world. It’s very fast and used for many high-profile projects, including Google Chrome and Microsoft Office. C++ is a mid-level language that communicates close to the hardware layer while still being easier to program than low-level assembly languages. It offers a unique blend of ease of coding and high-speed hardware control. Let’s take a closer look at C++, how it originated, who uses it, and its advantages over other languages.

The Origins and History of C++

In 1972, Dennis Ritchie of Bell Labs created a language for Unix called C. By the late 1970s, C had become popular for developing operating systems. A number of variations on the original language were developed. In the late 1980s, ANSI Standard C was created.

In 1979, Denmark’s Bjarne Stroustrup modified C by adding classes. He made further refinements by implementing object-oriented features to create C++. He was trying to create a language like Scala, so it would be easy to program large software systems but also fast with low-level hardware control like BCPL. C++ gave him more advanced features than C offered while retaining its flexibility and efficiency. By the 1990s, C++ continued to grow and develop and it was often the first choice for operating systems like Windows, BeOS Haiku, and Syllable. It’s ideal for low-level development, robotic spacecraft, and telephone exchanges.

C++ is a language, development environment, and library in one, used for both object-oriented and procedural programming. It can be modified and extended depending on the goals of the programmer, and there are a number of versions of C++ today. They include Microsoft C++ (Microsoft Visual C++ 6.0); ANSI C++; C++ versions from companies such as Turbo, Symantec, Borland, and others; and platform-specific versions.

C++ uses standards written by an ISO standard committee. C++ is not an implementation itself, but has many variations developed by different organizations and companies. Some variations are open-source depending on the goals and guidelines of the originator — for example, both Clang and GNU are open-source implementations of C++.

The Advantages of C++

C++ is sometimes referred to as a “multi-paradigm” language because it can be used for procedural, object-oriented, or functional programming. It is known for its flexibility and extensibility. In a procedural language, modules communicate by writing and reading state located in shared data stores. It is loosely bound with very little shared code.

With a tightly bound object-oriented language, objects communicate by sending various messages to other objects. Object-oriented programming uses encapsulation, with both code and data acting as objects. It simplifies code using polymorphism, the process of deploying one interface and several entities. C++ code runs faster than most other languages. It is highly portable and is a popular choice for creating multi-platform, multi-device applications. It has a useful function library, allows function overloading and exception handling, and includes classes, data abstraction, polymorphism, encapsulation, and inheritance.

Used in a Variety of Fields

C++ is deployed for tasks that demand high performance, such as video editing and transcoding, high-end computer-aided design (CAD), image processing, games, telecommunications, and business. It is used by companies such as Reuters and Bloomberg for data feeds with low latency, by the military for onboard systems, by Google for Chrome and other apps, and by Microsoft for the Office Suite.

Major airlines use flight control systems written in C++. It is popular for game development — the Torque 3-D game engine, written in C++, is used to develop Xbox and iPhone games. Advanced medical equipment makers use C++, and defense contractors use it for mission-specific software APIs. Well-known tech companies and organizations using C++ include Evernote, LinkedIn, Microsoft, Opera, NASA, and Facebook. Evernote switched from .NET to C++ for more speed and better graphics. LinkedIn uses restclient-cpp, a client written in C++ used for making HTTP/REST requests. Facebook uses it for back end services and regularly modifies C++ standards for custom features.

In addition, Wall Street and the financial industry have long used C++ for trading high volumes at high-frequency levels — they like that it can be easily used for modeling and data simulations. Its popularity in finance can be partly attributed to the fact that it is a major investment to adapt to new technologies and C++ simplifies the digital transformation of creating applications that run on legacy systems. More importantly, more than 70 percent of trading is known as High Frequency Trading (HFT), where software programs can trade tens of thousands of transactions in mere seconds. C++ is favored over other languages in HFT environments because on Wall Street, speed equals millions of dollars of revenue and profits.

C++ vs. Other Languages

Programming languages offer different advantages depending on the goals of the project. At Google, for example, C++, Java, and Python dominate. Here’s how they compare:

  • Java: C++ compiles to bytecode at the system level, while Java compiles to Java Virtual Machine bytecode. As a result, there are many cross-platform libraries associated with C++ because different platforms have different compilers. Because Java Virtual Machine is essentially an abstraction layer, Java programs can be run on any device that supports Java. Java is memory safe, but C++ is not. Java has a disciplined system for detecting errors, whereas C++ has unchecked casts and relies on the developer for memory management. Java is a complete object-oriented language, while C++ only utilizes certain OOP elements. Java uses interfaces to provide multiplicity — C++ offers multiple class inheritance.

  • Python: Python differs from C++ in that C++ is a compiled language, while Python is a scripting language. Python’s types are much simpler, and it has a distinct lack of declarations. Types in C++ are bound to names, explicitly declared, and checked when compiled. C++ is a mid-level language that offers lots of power and subsequent complexity. Python is simple to code and understand, which leads to quicker development and easier troubleshooting.

Garbage collection was originally intended to be included in C++, but there were too many technical problems to integrate properly with the rest of the code. However, the lack of garbage collection is an example of the power C++ gives you to customize the language for your purposes — you can easily add garbage collections with smart pointers. Unlike some other programming languages that have garbage collection built in, C++ was developed with speed and efficient infrastructure as its primary goals. It offers many advantages over other languages, with the caveat that you must have a working understanding of low-level programming to get the most out of it.

Is C++ a Good Investment for the Future?

C++ remains a solid investment for the future because of its power, versatility, flexibility, and prevalence in a number of industry verticals. It is still one of the most popular languages for game development, and is a favorite of the scientific community and financial industry. Further, it is often used for creating device drivers, software-defined networking, operating systems, and embedded software.

Handling the Back End at Google

Back end software operates on servers in the data center. C++ is often used for back end computing because it is ideal for heavy number crunching. It is fast, reliable, and compact. It also uses fewer resources per transaction, which is critical when you’re processing thousands of requests at the same time. For instance, Google web applications generally use JavaScript for the browser and Java for servers on the front end, while back end services and data repositories use C++. Google’s back end repository uses BigTable, and it uses MapReduce to handle large amounts of data processing.

The Go-to Language on Wall Street

Part of the reason that C++ is popular on Wall Street, and for quantitative finance in general, is due to its historical presence in the industry. Many developers in the finance industry “grew up” on C++ in the early part of their careers, so it became ubiquitous. Many financial programmers are able to develop in C++, and there’s a plethora of resources and communities to support it. Further, there are extensive math and quantitative-oriented libraries available.

Beyond that, it offers superior performance compared to other solutions such as Java or .NET. In addition, popular C++ libraries such as Boost have made C++ simpler and faster. Also, C++ templates potentially make code easier to optimize than Java or C. There are useful packages such as Rcpp, which adds R functions to C++, and RInside, which adds the R interpreter using a C++ wrapper class.

A Favorite of Game Developers

For a long time, C++ was the only choice for creating high-performance programs such as games. As a result, it’s become a standard solution, with lots of investment in game engines and libraries.

Game developers like C++ because it provides lots of control over hardware. It offers a powerful blend of high-level ease of use, high speed, and low-level hardware access. It is highly deterministic, a quality that is not always true for languages that operate in virtual machines or garbage-collected languages. Many games used to be written in Assembler, because you needed to access the hardware directly to get the best performance. With today’s computers, C++ makes code development faster while still allowing plenty of control over the machine layer.

Monitor Performance

With a powerful language like C++, application performance management is critical. AppDynamics offers C/C++ application performance monitoring that identifies and resolves performance problems in dynamic and distributed environments. The SDK discovers application topology, allowing you to trace transactions from application behavior. It correlates your C++ and C apps with programs written in other languages such as PHP, Node.js, and Python, and it lets you monitor databases, web services, and other back-end functions.

C++ is a fast, reliable, powerful language with few peers in game development, quantitative finance, banking, military and defense, back end systems, and many other applications. It offers a unique blend of hardware control while still being easy to program. Because of these advantages, the future is bright for C++ as it continues to adapt and improve in today’s modern computing environment.

Learn More

Learn more about our C++ performance monitoring solution today.

The post The Bedrock of the Software World: C++ Programming Language appeared first on Application Performance Monitoring Blog | AppDynamics.

Read the original blog entry...

More Stories By Jyoti Bansal

In high-production environments where release cycles are measured in hours or minutes — not days or weeks — there's little room for mistakes and no room for confusion. Everyone has to understand what's happening, in real time, and have the means to do whatever is necessary to keep applications up and running optimally.

DevOps is a high-stakes world, but done well, it delivers the agility and performance to significantly impact business competitiveness.

Latest Stories
Real IoT production deployments running at scale are collecting sensor data from hundreds / thousands / millions of devices. The goal is to take business-critical actions on the real-time data and find insights from stored datasets. In his session at @ThingsExpo, John Walicki, Watson IoT Developer Advocate at IBM Cloud, will provide a fast-paced developer journey that follows the IoT sensor data from generation, to edge gateway, to edge analytics, to encryption, to the IBM Bluemix cloud, to Wa...
What is the best strategy for selecting the right offshore company for your business? In his session at 21st Cloud Expo, Alan Winters, U.S. Head of Business Development at MobiDev, will discuss the things to look for - positive and negative - in evaluating your options. He will also discuss how to maximize productivity with your offshore developers. Before you start your search, clearly understand your business needs and how that impacts software choices.
Enterprises are moving to the cloud faster than most of us in security expected. CIOs are going from 0 to 100 in cloud adoption and leaving security teams in the dust. Once cloud is part of an enterprise stack, it’s unclear who has responsibility for the protection of applications, services, and data. When cloud breaches occur, whether active compromise or a publicly accessible database, the blame must fall on both service providers and users. In his session at 21st Cloud Expo, Ben Johnson, C...
Most of the time there is a lot of work involved to move to the cloud, and most of that isn't really related to AWS or Azure or Google Cloud. Before we talk about public cloud vendors and DevOps tools, there are usually several technical and non-technical challenges that are connected to it and that every company needs to solve to move to the cloud. In his session at 21st Cloud Expo, Stefano Bellasio, CEO and founder of Cloud Academy Inc., will discuss what the tools, disciplines, and cultural...
SYS-CON Events announced today that Fusic will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Fusic Co. provides mocks as virtual IoT devices. You can customize mocks, and get any amount of data at any time in your test. For more information, visit https://fusic.co.jp/english/.
SYS-CON Events announced today that Massive Networks, that helps your business operate seamlessly with fast, reliable, and secure internet and network solutions, has been named "Exhibitor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. As a premier telecommunications provider, Massive Networks is headquartered out of Louisville, Colorado. With years of experience under their belt, their team of...
21st International Cloud Expo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy. Me...
With the rise of DevOps, containers are at the brink of becoming a pervasive technology in Enterprise IT to accelerate application delivery for the business. When it comes to adopting containers in the enterprise, security is the highest adoption barrier. Is your organization ready to address the security risks with containers for your DevOps environment? In his session at @DevOpsSummit at 21st Cloud Expo, Chris Van Tuin, Chief Technologist, NA West at Red Hat, will discuss: The top security r...
SYS-CON Events announced today that Enroute Lab will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Enroute Lab is an industrial design, research and development company of unmanned robotic vehicle system. For more information, please visit http://elab.co.jp/.
SYS-CON Events announced today that MIRAI Inc. will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. MIRAI Inc. are IT consultants from the public sector whose mission is to solve social issues by technology and innovation and to create a meaningful future for people.
IBM helps FinTechs and financial services companies build and monetize cognitive-enabled financial services apps quickly and at scale. Hosted on IBM Bluemix, IBM’s platform builds in customer insights, regulatory compliance analytics and security to help reduce development time and testing. In his session at 21st Cloud Expo, Lennart Frantzell, a Developer Advocate with IBM, will discuss how these tools simplify the time-consuming tasks of selection, mapping and data integration, allowing devel...
SYS-CON Events announced today that Mobile Create USA will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Mobile Create USA Inc. is an MVNO-based business model that uses portable communication devices and cellular-based infrastructure in the development, sales, operation and mobile communications systems incorporating GPS capabi...
There is huge complexity in implementing a successful digital business that requires efficient on-premise and cloud back-end infrastructure, IT and Internet of Things (IoT) data, analytics, Machine Learning, Artificial Intelligence (AI) and Digital Applications. In the data center alone, there are physical and virtual infrastructures, multiple operating systems, multiple applications and new and emerging business and technological paradigms such as cloud computing and XaaS. And then there are pe...
Today traditional IT approaches leverage well-architected compute/networking domains to control what applications can access what data, and how. DevOps includes rapid application development/deployment leveraging concepts like containerization, third-party sourced applications and databases. Such applications need access to production data for its test and iteration cycles. Data Security? That sounds like a roadblock to DevOps vs. protecting the crown jewels to those in IT.
SYS-CON Events announced today that Interface Corporation will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Interface Corporation is a company developing, manufacturing and marketing high quality and wide variety of industrial computers and interface modules such as PCIs and PCI express. For more information, visit http://www.i...