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
Regardless of what business you’re in, it’s increasingly a software-driven business. Consumers’ rising expectations for connected digital and physical experiences are driving what some are calling the "Customer Experience Challenge.” In his session at @DevOpsSummit at 20th Cloud Expo, Marco Morales, Director of Global Solutions at CollabNet, will discuss how organizations are increasingly adopting a discipline of Value Stream Mapping to ensure that the software they are producing is poised to ...
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm. In his Day 3 Keynote at 20th Cloud Expo, Chris Brown, a Solutions Marketing Manager at Nutanix, will explore t...
When NSA's digital armory was leaked, it was only a matter of time before the code was morphed into a ransom seeking worm. This talk, designed for C-level attendees, demonstrates a Live Hack of a virtual environment to show the ease in which any average user can leverage these tools and infiltrate their network environment. This session will include an overview of the Shadbrokers NSA leak situation.
SYS-CON Events announced today that delaPlex will exhibit at SYS-CON's @ThingsExpo, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. delaPlex pioneered Software Development as a Service (SDaaS), which provides scalable resources to build, test, and deploy software. It’s a fast and more reliable way to develop a new product or expand your in-house team.
Interested in leveling up on your Cloud Foundry skills? Join IBM for Cloud Foundry Days on June 7 at Cloud Expo New York at the Javits Center in New York City. Cloud Foundry Days is a free half day educational conference and networking event. Come find out why Cloud Foundry is the industry's fastest-growing and most adopted cloud application platform.
In his opening keynote at 20th Cloud Expo, Michael Maximilien, Research Scientist, Architect, and Engineer at IBM, will motivate why realizing the full potential of the cloud and social data requires artificial intelligence. By mixing Cloud Foundry and the rich set of Watson services, IBM's Bluemix is the best cloud operating system for enterprises today, providing rapid development and deployment of applications that can take advantage of the rich catalog of Watson services to help drive insigh...
Automation is enabling enterprises to design, deploy, and manage more complex, hybrid cloud environments. Yet the people who manage these environments must be trained in and understanding these environments better than ever before. A new era of analytics and cognitive computing is adding intelligence, but also more complexity, to these cloud environments. How smart is your cloud? How smart should it be? In this power panel at 20th Cloud Expo, moderated by Conference Chair Roger Strukhoff, pane...
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm.
As enterprise cloud becomes the norm, businesses and government programs must address compounded regulatory compliance related to data privacy and information protection. The most recent, Controlled Unclassified Information and the EU’s GDPR have board level implications and companies still struggle with demonstrating due diligence. Developers and DevOps leaders, as part of the pre-planning process and the associated supply chain, could benefit from updating their code libraries and design by in...
The 21st International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Digital Transformation, Machine Learning and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding busin...
Existing Big Data solutions are mainly focused on the discovery and analysis of data. The solutions are scalable and highly available but tedious when swapping in and swapping out occurs in disarray and thrashing takes place. The resolution for thrashing through machine learning algorithms and support nomenclature is through simple techniques. Organizations that have been collecting large customer data are increasingly seeing the need to use the data for swapping in and out and thrashing occurs ...
SYS-CON Events announced today that DivvyCloud will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. DivvyCloud software enables organizations to achieve their cloud computing goals by simplifying and automating security, compliance and cost optimization of public and private cloud infrastructure. Using DivvyCloud, customers can leverage programmatic Bots to identify and remediate common cloud problems in rea...
Most DevOps journeys involve several phases of maturity. Research shows that the inflection point where organizations begin to see maximum value is when they implement tight integration deploying their code to their infrastructure. Success at this level is the last barrier to at-will deployment. Storage, for instance, is more capable than where we read and write data. In his session at @DevOpsSummit at 20th Cloud Expo, Josh Atwell, a Developer Advocate for NetApp, will discuss the role and value...
SYS-CON Events announced today that Tintri, Inc, a leading provider of enterprise cloud infrastructure, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Tintri offers an enterprise cloud platform built with public cloud-like web services and RESTful APIs. Organizations use Tintri all-flash storage with scale-out and automation as a foundation for their own clouds – to build agile development environments...
Cloud promises the agility required by today’s digital businesses. As organizations adopt cloud based infrastructures and services, their IT resources become increasingly dynamic and hybrid in nature. Managing these require modern IT operations and tools. In his session at 20th Cloud Expo, Raj Sundaram, Senior Principal Product Manager at CA Technologies, will discuss how to modernize your IT operations in order to proactively manage your hybrid cloud and IT environments. He will be sharing bes...