Core C++ (Israel), 2024
So, it’s a bit late, but finally I’ve found a few minutes to write about the conference.
Last week, took place in Tel-Aviv the annual conference of the C++ community in Israel, Core C++ 2024. A conference that has being held for several years, and is the second largest in the world in that domain. This year, as could have been expected, the event was somewhat different. Instead of taking place in the summer, it was postponed to the winter (just a few hours after the cease-fire went into effect… it seems that someone there knows the right people 🙂 ). Instead of hosting a significant presence of international lecturers, booths and participants, Hebrew was the main language. And mainly – and that’s what was mostly interesting in my opinion this year – the target audience to whom the lectures were aimed was much more diversified this time.
Was it a result of relying mainly on local lecturers, or because Inbal had enough with my nagging after each of the former events? Hard to know. What I do know for sure is that it was a very pleasant change, and I saw it mainly by the feedback I got afterwards from the people of my department.
What It Used to Be
In former years, the main focus was on the state-of-the-art parts of the language. Topics that were added in the last standard, topics that are to be included in the next one. Very interesting indeed, but whoever is still doing their first steps in the language, or has mainly dealt with the classic 98/03 version of it, was struggling to understand those issues. Even less than that, could they actually apply what they’ve learned into their own codebase, once the conference ended and they’re back to their desks. Another side-effect of that focus was little reference to Realtime/Embedded environments. The language is progressing in paths that ignore the existence of Hard-Realtime, and barely notice Embedded environments at all. Therefore, discussions that focus C++23 or C++26, has almost no relevance to that domain.
Yet, only a fraction of the C++ codebases are that advanced. It’s hard to know what the real numbers are, but I tend to believe that most of the lines in active code still didn’t hear the term “Modern C++”. (I might be wrong; It’s really hard to know. In that very conference series, a few years ago, a JetBrains representative presented interesting statistics about the industry. However, the main data source was based on CLion users; and one can’t assume that whoever is still writing in C++03 has necessarily upgraded to a modern IDE.) Not less important: much of the legacy C++ code runs on embedded systems, which pose their own challenges to the language.
What We Had This Year
This year, the conference offered a very diversified approach. Along with discussing topics whom the standardization committee decided upon only a few days earlier, there were lectures that covered the variety of all the versions. From core concepts that can be applied regardless of the language’s version, through a reference to the actual upgrading process from Classic C++ to modern versions, to a lot of lectures that focused the intermediate versions (14, 17, 20), where, I dare to believe, most of the developers are currently found. There were also lectures about embedded systems, and others that addressed more managerial topics, working environment and more.
A few ones that worth mentioning (I might later write on them in details): the promo Inbal gave to the newcoming support in Reflection, that opens a new, brave world; the discussion of Amir about compile-time polymorphic comparison operator, which reminded me a bit of a Talmudic sort of analysis; the problems in the language and possible solutions, suggested by Assaf Tzur-El; the way Ryan Baker stunned the audience by presenting the floating-point shenanigans; and the way to combine C++ and Python by Alex Dathskovsky (from which I was unfortunately absent, but it was praised by those who participated in it).
So, to Summarize
I think the conference was a great success, and it was hard to decide which lectures to choose. Most of them were great and whoever was sitting in the audience added major abilities to their toolbox. I’ve heard similar feedback from the engineers in my department, from juniors to seniors. This is a great opportunity to thank to the conference organizers, who successfully managed to conduct events with international impact, and do it fully voluntarily, motivated by good will of giving back to the C++ community and support its progress. So thank you – Inbal Levi, Michael Gopshtein, Amir Kirsh, Adi Shavit and Eran Gilad, and all the rest whose names I do not remember. You are doing great work.
And in the next post I’ll try to give my two cents regarding Inbal’s question about reflection of function parameter names.