Zero-Cost Abstraction Language / C++ Future

C++ is a zero-cost abstraction language. Instead of a multi-paradigm language, it is a language that allows you to shape code without cost. You can define classes that become objects and sets of algorithms and iterators that become components. If you template either of those you gain generic code. This term of zero-cost abstraction comes from the creator of C++.

Design

C++17, when it arrives, should allow the introduction of code that is more stable, runs faster, and possibly has more inherent security. The ideas behind C++17 are solid. Properly specified and implemented in compilers, C++17 code could be cleaner and leaner. You may not necessarily write C++ code faster but you may write better code.

Efficiency

At the end of the day, the success of C++ exists in the compilers that implement the C++ specification. A central idea in C++ is by using higher level abstractions with zero-cost, you end up with better programs that run faster. Those abstractions are primarily in what is called the C++ Standard Library. The promise of C++ is in well-written compilers that translate those abstractions into better machine programs.

Productivity

Individual productivity is expected to improve with future versions of C++. Languages at the same level of C++ that express abstractions well atop a solid standard library are Oracle Java and Microsoft C#. They are far more productive than C++ but lack the zero-cost abstractions and general efficiency of C++. You have to make a choice between level of productivity and depth of control over abstractions if you want code in a single language today.

Languages

Mozilla Rust, Apple Swift, and Google Go are the leading languages designed to offer greater productivity and with the efficiency that C++ offers today. Apple’s Swift language will likely succeed in user interfaces. Google Go in server web development. Mozilla Rust in command-line programs, background tasks, and drivers. Any of those languages could evolve to do it all, but C++ has the trump card in maturity, code libraries, and immense footprint in written solutions. Perceptions, real or imagined, surrounding its productivity is the only area where alternatives would gain significant ground.

Future

The language C is a great language that influenced the style and shape of C++. After many years of contemplation between C++98 and C++11, the language is en route to C++17. During that first gap in time, languages such as Sun Java and Microsoft C# quickly rose to demonstrate the power of rapid development of industrial scale code. Much has been made available in those efforts in what works and what does not. Zero-cost abstractions with higher prospects for secure code have regained their appeal. Less the efforts of Mozilla, Apple, and Google, adjustments to the C++ language beyond the C-style may create another major shift in computing.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s