Italy has a bunch of excellent C++ programmers (working here or abroad) and sometimes I have the honor to meet them. In this brief post I just like to tell you our latest activities, when C++ people meet, discuss and share knowledge. Every time we meet, new people join us. I think this is another proof of the high interest for modern C++ by the industry, the academia, etc.
We are promoting this initiative to gather Italian C++ people (and freelancers, and companies) on an interactive map. For free.
I’m spending more words about our meetup in Bologna and our workshop in Ancona – latest activities -, but first of all let me recap our first events/appearances:
Our first public appearance was in November 2013, when Paolo Polce and I gave a talk at the Italian Agile Day 2013: “Effective Code Tansformations in C++” (telling stories about transforming legacy code to modern C++).
Then, in February 2014, Microsoft’s Community Days 2014 gave us the chance to talk about C++. Raffaele Rialdi, Ale Contenti, Guido Pederzini, Alessio Gogna, and I gave a total of 6 talks (topics covered: introduction to C++11, new STL and boost, Visual Studio 2013, WinRT, Prototyping graphics by using Cinder and OpenFrameworks, legacy to modern). Great feedback and 40-50 people attended.
In June 2014 we met in Milan (Marco Foco helped me a lot with the logistics). Our first meetup, 4×30′ talks (topics covered: stories about lambdas, Async/Await, Actor Model, Type-Classes) and a Q/A panel, 30+ people attended. Our exceptional speakers were: Gian Lorenzo Meocci, Gianluca Padovani, Paolo Severini and Nicola Bonelli.
In September 2014 Microsoft’s Community Days 2014 hosted us again. This time a very special speaker joined us: Bartosz Milewski! We (Bartosz, Mirco Vanini, Paolo Severini, and I) gave 4 talks (topics included: how foundations of C++ change by adopting new C++, WinPhone in C++, Persistent Data Structures in C++).
Last November 8th the Italian C++ Community gathered for the second time by organizing a free and entirely C++-focused meetup in Bologna. 50+ people attended, from different parts of Italy. Here you can find some details that isocpp.org published on its website (thanks for that).
I would like to express my gratitude to Gianluca Padovani, who was in charge of the logistics and he found a wonderful room, in the city centre. Besides I’m grateful to Gian Lorenzo Meocci for taking lots of beautiful pictures. This event would have not been possible without our speakers, so thanks to (in order of appearance): Roberto Bettazzoni, Bartosz Milewski, Daniele Pallastrelli, Gianfranco Zuliani. Last but not least, I wish to thank the attendees!
Attendees gave us good feedback (we are still waiting for) and the topics covered were:
- Monads in C++
- Rule of Zero
- Dependency Injection in C++
- Story of developing a unit-testing framework in C++
The first session was completely interactive and I think it’s worth spending a few words about because this format is very common but I had never seen it applied to C++. Roberto moderated an interview, which the main topic was “why should I learn new C++?”. Starting by asking the question “which is the most important feature of new C++ for your daily work?” to some volunteers (Bartosz, me, and Gianluca). Lots of attendees expressed their opinion too. Another question was “which features would you like to be in C++17?” and the most quoted answer was… deprecating! It’s worth having a look at the results here.
We had lunch all together and it was a great networking time!
The last session was an interactive Q/A Panel. People led the discussion to “why should I use C++ today?”. Answers included these topics: performance, portability, interoperability, flexibility and elegance with no lack of control, legacy code. All of these questions arised from real working experiences.
Workshop: C++ from ’90 to ’14
Yesterday, Gianluca Padovani, Marco Foco and I facilitated a 3-hours workshop at the Italian Agile Day 2014 (in Ancona) about Refactoring in C++. Target of this workshop was to let people experience with modern C++ by solving issues on a quite old and smelling codebase. Clearly the codebase was under test (by using Google Test) and we started with a red test to fix 🙂
An interesting news was that people attending this workshop had almost no knowledge of modern C++ and some of them had just a little experience with C++! I consider this fact as another demonstration that programmers from other languages are curious and want to know why C++ world is changing.
Issues to solve were about both making the C++ code more modern and fixing design smells. Not surprisingly, sometime design smells could be fixed just by applying modern C++ techniques/concepts rather than applying Object Oriented reasoning.
We had four categories of issues: productivity (e.g. simplify some parts of the code by taking advantage of initializer_list and range-based for loop), memory management and ownership (e.g. at some point we asked people to decomment an include file and suddenly almost all the tests became broken because of a memory leak. People had to fix it), algorithms and lambdas (e.g. some functions could be simplified by using an algorithm instead of looping manually) and a generic programming exercise to make tests more fluent (I’m writing a specific post about).
I was very happy people learned “naturally” (just by coding) the new syntax and style. We supported them and we introduced some concepts but they wrote code on their own and had great ideas. Most important: they had fun!
Next events we are planning fall in February. Stay tuned!