Blog

The C languages merge

For immediate release
Cupertino, April 1, 2015

The C languages merge

To unite their growing communities and better meet the challenges from newer languages, such as Java and MatLab, the C languages have reached a formal agreement to merge.

Initially, the C and C++ ISO standards committees (WG11 and WG16) decided to unite as of Spring 2015 aiming for a joint C/C++ standard in 2016.

In a surprise move, the Objective-C leadership decided to join the new consortium. From their press release: “We are pleased to support this long-overdue initiative. Besides, with Apple putting their development money into Swift, we have lost our only support. We were just deciding to go independent and multi-platform when we heard rumors of the C/C++ merger and saw an obvious opportunity.”

A few hours later, feeling the pressure from JavaScript and C++, the C# designers declared their intent to join the C language melting pot: “With the performance and portability of C++ combined with the development environment of C#, the combined new language will be universal and unbeatable. We were going open source and cross-platform anyway. Most importantly, the opportunity to merge the efforts of the two Great Danes of programming language design is too good to miss.”

The remaining two members of WG4 (COBOL) decided that this offered a golden opportunity to renew COBOL: “By joining this new language, we can increase our appeal to the advertising-friendly demographic of programmers under the age of 70, and enlarge the COBOL presence in the mainframe market and beyond. We will be pleased to contribute from our vast intellectual property store of uppercase names to this exciting new effort.”

Several other languages, including Snobol, JavaScript, and Rust, inquired about membership but did not at this time meet the requirement of having a capital C in their names.

Academics and educators met the announcement with ecstatic outbursts, including: “We can spend years teaching all this!” (Chancellor, University of Tejas at Aston Martin) and “This opens a multitude of amazing new opportunities for academic dialects, research papers and industrial funding” (Dean, College of Computing, Del Monte University) and "Good luck with that!" (Registrar, Appl University).

The new consortium's first important language design task, already in progress, is to decide the name of the new language. "It is clear that the name must start with C, but beyond that there still isn’t agreement," said one person familiar with the matter but who was not authorized to speak publicly about the negotiations. "'C15' is considered too boring and might be confused with C. 'Objective-C#++' and 'C++++++' are too hard to pronounce, though everyone seemed to like 'C+++++' because it was considerably terser than both of those but unfortunately that one is syntactically malformed. The obvious 'Clang' is already taken by a related effort, and given their recent blitzkrieg-style expansion across this and nearby solar systems, we figured they didn't need more encouragement on their way to Local Cluster domination. 'C united' and 'Cucumber' are the current front runners, with votes split along party lines." The final decision on the name will be taken by vote at the first joint meeting in May 2015 in Chicago.

So far, no technical details about the merged language are available. Bjarne Stroustrup and Dennis Ritchie declined to comment, but were seen shaking their heads and muttering, “they’re nuts!”

Media contact: Clarence C. Cucumber (CCC@Clangsunited.org), Convener pro tem, C/C++/ObjectiveC/C#/COBOL joint development committee (soon to become ISO WG41)

CppCon 2014 Viewing The World Through Array-Shaped Glasses—Łukasz Mendakiewicz

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

Viewing The World Through Array-Shaped Glasses

by Łukasz Mendakiewicz

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

It's agreed among experts that the most performant data structure in C++ is an array. Or a vector. Or a dynarray. Indeed, until recently there was no standardized approach in C++ to view these types in an uniform manner. It was even murkier when the data had logically more than one dimension. This talk is an introduction to the new features proposed for C++17 in N3851 [TBD: update after Rapperswil] bringing all contiguous data into harmony and lifting it to higher dimensions: index, bounds, array_view and more. Attendees will also learn how indexable algorithms differ from the traditional elemental ones, and what does it mean for parallelism.

Eggs.Variant - Part II (the constexpr experience)—K-ballo

A link to make type-safe unions:

Eggs.Variant - Part II (the constexpr experience)

by K-ballo

From the article:

Ruminations on the development of Eggs.Variant, a C++11/14 generic, type-safe, discriminated union. Part I explored a straightforward implementation based on untyped raw storage appropriate to hold any of the variant members. It was noted, however, that such an implementation would never be constexpr-aware. It's time to throw it away and start from scratch in order to properly support constexpr...

Bug of the week—Andrzej Krzemieński

Here is an interesting bug:

Bug of the week

by Andrzej Krzemieński

From the article:

Today we are going to see a case study illustrating a bug. Not a very spectacular one: a typical bug one would encounter in everyday work. We will start with the symptoms, identify the root cause, and suggest measures to prevent similar things from happening in the future...

CppCon 2014 An Overview of C++11/14, Part II—Leor Zolman

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

An Overview of C++11/14, Part II

by Leor Zolman

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

This accelerated introduction to C++11/14 surveys most of the key additions to the C++ language, including support for increased code clarity (lambdas, uniform initialization, auto, new OOD control) and improved performance (rvalue references, move semantics and perfect forwarding.)

The presentation is designed for those who truly need a quick overview of the new C++, so the focus is on breadth rather than depth. Whenever feasible, new language features are presented in a style showcasing how they improve over their "Old C++" counterparts.

Simple and Clean Code vs. Performance—Arne Mertz

This article talks about why simple code is more important.

Simple and Clean Code vs. Performance

by Arne Mertz

From the article:

One of C++s strengths is that it is possible to write very performant code. But does that mean we always have to worry about performance and write our everyday code as performant as possible? Should we give up simplicity for performance? Do we have to?
 

CppCon 2014 An Overview of C++11/14, Part I—Leor Zolman

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

An Overview of C++11/14, Part I

by Leor Zolman

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

This accelerated introduction to C++11/14 surveys most of the key additions to the C++ language, including support for increased code clarity (lambdas, uniform initialization, auto, new OOD control) and improved performance (rvalue references, move semantics and perfect forwarding.)

The presentation is designed for those who truly need a quick overview of the new C++, so the focus is on breadth rather than depth. Whenever feasible, new language features are presented in a style showcasing how they improve over their "Old C++" counterparts.

CppCast Episode 5: Exploring CLion with Anastasia Kazakova—Rob Irving

Episode 5 of CppCast, the only podcast by C++ developers for C++ developers. In this episode Anastasia Kazakova from JetBrains joins Rob Irving to discuss the new CLion IDE.

CppCast Episode 5: Exploring CLion with Anastasia Kazakova

by Rob Irving

About the interviewee:

Being a C/C++ fan since University Anastasia has been creating real-time *nix-based systems and pushing them to production for 8 years. She has a passion for networking algorithms (especially congestion problems and network management protocols) and embedded programming, and believes in good tooling. Now she is a part of the JetBrains team working as a Product Marketing Manager for CLion the upcoming cross-platform C/C++ IDE.