cpp.chat

Follow cpp.chat
Share on
Copy link to clipboard

Each fortnight, or thereabouts, we chat with guests from the C++ community about what they're doing, what interests them, and what's going on in the world of C++

Jon Kalb & Phil Nash


    • Feb 11, 2022 LATEST EPISODE
    • monthly NEW EPISODES
    • 1h AVG DURATION
    • 59 EPISODES


    Search for episodes from cpp.chat with a specific topic:

    Latest episodes from cpp.chat

    The Curse of Backwards Compatibility

    Play Episode Listen Later Feb 11, 2022 60:47


    This week we chat with Harald Achitz about a new ISO mirror in Sweden, the C++ community - in Sweden, and worldwide - and other topics (which may or may not include Cobol) We explore the underbelly of getting involved with standards work - not just the C++ one, as well as community building, language evolution and static analysis.

    Did You Really Learn from All the C++ Mistakes?

    Play Episode Listen Later Dec 27, 2021 65:58


    We're back! Again! And so is Dave Abrahams, after a long period outside the C++ community. So we thought we should hear about what he's been up to and what he's doing now. We end up getting some fascinating insights into the design and evolution of the Swift programming language, which Dave joined the team behind quite early on. While Swift draws inspiration from many languages, the core of the team behind it - including Dave - were C++ experts - but experts who wanted to take from the best, yet learn from the mistakes, of the past. Listen to this episode to find out if they pulled it off!

    I Can't Believe I'm Here

    Play Episode Listen Later Nov 9, 2021 73:22


    This week, err... month, no, episode, we're joined by Anastasia Kazakova for a cross-over show with No Diagnostic Required - the other show that Phil co-hosts with Anastasia. We cover articles on static analysis, move semantics and expressive interfaces, three new std proposals, then chat about conferences, especially CppCon, which just finished for this year.

    The Future of C++ (KDAB interview)

    Play Episode Listen Later Jun 18, 2021 39:23


    This episode is slightly different to the normal. Rather than being a pure cpp.chat session, it's a recording of an interview, conducted by KDAB, of a panel of C++ experts, including our own Jon Kalb - but also past cpp.chat guests Ivan Čukić and Jens Weller, as well as Matthias Kalle Dalheimer. The interview is around the future of C++, but also takes a look at its past and present.

    The Answer Is, It Depends

    Play Episode Listen Later Apr 20, 2021 71:48


    In this episode we welcome back Tony and Klaus to talk about the [SOLID](https://en.wikipedia.org/wiki/SOLID) Principles, and how they relate (or not), to C++. Tony is about to give a keynote at C++ Now about his take on the SOLID Principles. Klaus has been giving a talk on applying SOLID to C++ and even Phil has recently given a talk on a similar topic. Perhaps somebody should have mentioned this to Tony before! Along the way we get plenty of SOLID advice, discover what the single responsibility is that Tony's objects have, what COLID is, who is going to argue against Liskov, and who is just there for the jokes. The answer, of course, is: it depends.

    Required to Warn You, Unless It's Hard

    Play Episode Listen Later Apr 15, 2021 64:10


    This week we get back on track and chat with Christopher Di Bella from Google about working on the Chrome OS toolchain - including his newly finished concepts implementation. We talk a bit about the practicalities of bringing C++ 20 features to compilers, interoperating GCC and Clang and how to deal, portably, with std libraries that can't be implemented without compiler support.

    I'm a Bit Rusty

    Play Episode Listen Later Apr 13, 2021 69:56


    This week we have a special panel made up of members of the C++ community, joined by members of the Rust community. We have a round table discussion of how the two languages relate, differ - and how entwined their fates may be. We also learn why Rust doesn't have random numbers, but why it's lucky to have Burnt Sushi.

    Izzy's 'Fine' With Modules

    Play Episode Listen Later Jan 12, 2021 69:47


    This week we chat with Isabella (Izzy) Muerte about modules, build systems and more. We talk about xyr new job (which, at the time of recording, was with Netlify), and how that still involves working on build systems - but particularly CMake, where xe has found an intriguing special use for emoji! We segue into a discussion about modules, which Izzy was definitely down on a couple of years ago, and what xe thinks of them now. To avoid spoilers don't read the title!

    Chairs Around a Tony Table

    Play Episode Listen Later Nov 12, 2020 70:06


    This week we chat with Tony Van Eerd about what comes after Post Modern C++, what the single most important principle for good code is, and what Dr. Seuss and Shakespeare have to do with all this. The off-by-one jokes are regular, or at least semi-regular, but what proposals has Tony killed? And how can opening your mind to unexpected ways of thinking lead you to better code?

    I Really like Sugar

    Play Episode Listen Later Oct 8, 2020 65:43


    This week we chat with a Conor Hoekstra, about dreaming in algorithms, being a programming language addict and writing beautiful code. We look at what Conor is jealous of in other languages, why his competitive coding entry came dead last, and why he really likes sugar and dopamine. And is it really true that no-one is listening to Sean Parent? Note that this episode was recorded over four months before editing, so the news items are a bit stale.

    My Friends Call Me Bool

    Play Episode Listen Later Jun 21, 2020 64:17


    This week we chat with a vector-of-bool (a.k.a. Colby Pike). We talk about pseudonyms, modules, build systems and his standard layout proposal, Pitchfork. At the last minute we branch into TDD and what makes good design. But what prompts Michael Caisse, in the chat, to respond, 'because we are not monsters', and why does that cat say 'test first'?

    It Doesn't Get Bored and It Doesn't Get Tired

    Play Episode Listen Later May 26, 2020 66:45


    This week we chat with a Yuri Minaev, of PVS Studio, about static analysis - and why you shouldn't be skipping on this essential part of software development. Why is using a static analysis tool better than peer review (the clue is in the title)? Should you do both? What is the most common bug? And what does happen if you write to address zero? We also discuss the billion dollar mistake and the perils of copy & paste (and how you can mitigate them). All in all, a step towards safer coding.

    The Problem Is, They Expect Answers

    Play Episode Listen Later May 10, 2020 67:22


    This week we chat with a panel of C++ trainers from around the world (but mostly from Germany, for some reason) - Nicolai Josuttis, Jason Turner, Rainer Grimm, Klaus Iglberger and Mateusz Pusz. We talk about how bringing in a good trainer will keep your costs down, whether online training works or not, and why C++ is different to most other languages when it comes to training. One of our guests reveals that he has had, and has recovered from, COVID-19 - but who?

    Willing to Steal Good Ideas

    Play Episode Listen Later Apr 17, 2020 68:07


    This week we chat with Bryce Adelstein Lelbach about how the ISO C++ WG21 committee is evolving - and his roles within it (and beyond) are evolving, too. We also look at the cross-over and interaction with the C standard, and even other languages. Is C really the Latin of programming languages? What is the relationship between the languages and the committees at this point? And why did so many committee members agree to a plan that contains items they may not be interested in? And what happened to the Varna meeting, anyway?

    We're Not Going to Allow You to Throw

    Play Episode Listen Later Apr 2, 2020 59:04


    This week we chat with five members of the SG16 Unicode Study Group, Zach Laine, Tom Honermann, Steve Downey, Peter Brett and Corentin Jabot. We talk about their efforts to get all things Unicode into the C++ standard in a tour that takes us from 5000 years ago, through the 80s and 90s up to the 2020s! We look at every known language, including a few dead ones - and some that are purely fictional. Do you know the difference between a code unit and code point? A glyph and a grapheme cluster? String a Text? And what's wrong with Locales anyway? This show sorts it all out.

    Colour Is Not Black and White

    Play Episode Listen Later Mar 5, 2020 61:12


    This week we chat with James Berrow about colo(u)r, and how we're doing it all wrong (and not just the spelling). We look at why colour management is complicated, how RGB doesn't exist, and how everybody (well, almost everybody) gets it all wrong. We also look at the graphics proposal, and James' critique of it, as well as how he is working with the authors on some improvements.

    Ranting Is Optional

    Play Episode Listen Later Feb 26, 2020 58:40


    This week we chat with JeanHeyd Meneide (A.K.A. ThePhD) about coming full circle on std::embed, as well as whether optional references should rebind or assign-through. Packed with edge-of-the-seat stories of interesting proposals adventures through the standardisation process, as well as a decent amount of ranting.

    Copperspice Is Your Middle Name?

    Play Episode Listen Later Feb 5, 2020 64:02


    This week we chat with Ansel Sermersheim and Barbara Geller about Copperspice, Doxypress, csLibGuarded and kitchen utensils. We find out that Barbara and Ansel are not just library people but are actually programmers - and programmers that know how to build abstractions. We chat about why they started CopperSpice, how it got it's name, and what else they've been working on.

    Set a Breakpoint in the Past

    Play Episode Listen Later Jan 17, 2020 61:11


    This week we chat with Greg Law about debugging and going back in time! How do things change when we can wait for something to go wrong, then go back to any point in time and examine the program state, like The Matrix's 'Bullet Time'? How is this even possible, and what challenges need to be overcome? We also answer that age old question: what's the first thing people ask for when you say you can give them a time machine?

    We Almost Always Get the Default Wrong

    Play Episode Listen Later Dec 19, 2019 57:50


    This week we chat with Vittorio Romeo about the pros and cons of backwards compatibility in C++, and his proposal to get the best of both worlds: Epochs. As well as language compatibility, we also discuss _ABI_ compatibility - why breaking these things is such a problem, but how _not_ breaking them is increasingly becoming a problem. We also, finally, get an answer to the age of question of, 'how many programmers does it take to change a lightbulb?'

    If You Change It and You Break It, You'll Know

    Play Episode Listen Later Nov 21, 2019 58:56


    This week we chat with Clare Macrae about Approval Testing, testing in general, the challenges (and some solutions to) testing legacy code - as well as highly visual environments like Qt GUIs or image processing apps. Working with an existing codebase that doesn't have tests can be scary and time consuming. But getting it under test is challenging, too. Clare explains how Approval Testing helps here, and how it all works. We also talk about how she has quickly become a sought after speaker, with some tips for first time speakers, and some more general ideas from Agile and Continuous Delivery circles.

    All the C++30 Features - but Right Now

    Play Episode Listen Later Nov 6, 2019 59:33


    This week, in a cpp.chat exclusive, we chat with Sean Baxter about Circle - the C++ compiler that he wrote. That's a C++ compiler. That he wrote. Oh, and it does meta-programming in a way that we're only dreaming of part of for C++23 or 26! So what can it do, and what is it useful for? Why is Jon struggling to wrap his head around what Sean has achieved and can it really turn Twitter into code? If you want to follow along screen shared segment, I've tried to embed screenshots in the podcast mp3 - or you can go to [this point in the YouTube recording](https://youtu.be/Tcaoz56uSKs?t=1044). And finally, contrary to what Phil says during the show, there were not 130 lightning talks at CppCon. It was more like 70 - and we're not including a link to the ACCU CfP as it has now closed).

    I'm Surprised You Brought up Rotate

    Play Episode Listen Later Oct 17, 2019 45:43


    In our second live CppCon 2019 episode we chat with Sean Parent about relationships, working with Alexander Stepanov, over-object-orientizing things and, yes, even rotate. Sean tells us stories from his years at Adobe, including how he first came to work with Stepanov (the father of the STL) - a well as some spectacularly bad responses to interview problems.

    You Get to Fix It the next Time

    Play Episode Listen Later Oct 12, 2019 40:37


    The first of our two, live, CppCon 2019 episodes - this time we sit with Andrei Alexandrescu and Herb Sutter to introspect about introspection and take exception to exceptions. We also talk about the 'Engage, Entertain, Educate: Technical Speaking that Works' class that Andrei was involved with, again, at CppCon 2019. But Andrei describes himself as a 'free radical' and 'too much plutonium' and claims he needs Herb as 'a bit of graphite' to keep him in check. Listen to find out what the debate is about!

    The Shape of the Value

    Play Episode Listen Later Sep 28, 2019 52:40


    This week we chat with David Sankel and Michael Park about their Pattern Matching proposal, as well as a language level variant. We look at how some judicious use of syntactic sugar can improve even the ugliest part of the sausage. Pattern Matching (as well as the language version of Variant) are progressing well through the committee - potentially on track for C++23. We discuss how, when these land, they are going to impact every single developer - allowing us to inspect and handle values in a far more declarative way, We also talk a bit about CppCon, which was upcoming as we recorded, but already in the past as we release this episode.

    There's No Secret to Security. The Secret Is ...

    Play Episode Listen Later Sep 12, 2019 63:32


    This week we chat with Patricia Aas about secure coding practices, using computers to count votes in elections and the two hardest problems in software development. Patricia and Phil have both been at NDC TechTown all week where Patricia gave a keynote, a two-day class, a talk and hosted a meet-up - but still found time to chat with us. We discuss the relationship between secure code and just plain good code (spoiler: they're essentially the same), and how much rigour went into computerising the Norwegian election vote counting system (spoiler: none). We also discuss whether it is possible to fully computerise national voting systems reliably (spoiler: you'll just have to listen).

    Aggressively Stealing from Other Languages

    Play Episode Listen Later Aug 30, 2019 57:12


    This week we're joined by Victor Zverovich as we chat about his string formatting library - which has just been adopted into C++20 - as well as the possibility of a corresponding input library, various smaller C++17 features, and whether it's possible to travel continuously from C++ event to C++ event. We also announce the dates for C++ on Sea 2020, Phil's vision for CppCon's Lightning Talks, as he takes them over, whether we should be removing more from the standard, and look forward to seeing The Last Macro.

    Can Everyone Stop Saying "Tupple"

    Play Episode Listen Later Aug 1, 2019 63:32


    This week we chat with Guy Davidson about linear algebra coming to C++, other mathsy stuff, audio, games dev and C++ training evenings. We barely even mention 2D graphics once! Did you know that Guy has written four linear algebra libraries in C++ since 1990? He's in a good position to be involved with the standardisation effort. But how do you bring something that Fortran excels at to modern standard C++ without it just being the C++ification of Fortran? Listen to find out.

    Hell's Corner: Shared Mutable State

    Play Episode Listen Later Jul 9, 2019 62:24


    This week we chat with Juan Pedro Bolívar Puente (a.k.a. JuanPe) about immutable data structures, value types and more - and definitely not functional programming! How can data types be valuable if you can't change them? How can copying huge amounts of data be cheap? How can we go beyond Object-Oriented Programming - and get concurrency almost for free - all without making moral judgements about our code? The answers to all this and more drop out of our chat with Juan Pedro.

    How Often Do People Move Functions?

    Play Episode Listen Later Jun 14, 2019 55:06


    This week we chat with Pablo Santos, founder and chief engineer of Plastic SCM, and SemanticMerge. Pablo talks to us about how the 'full stack' version control system he created at Plastic SCM differentiates itself in the age of GitHub, how times have moved on for VCS systems (largely driven by GitHub), and how it might even be being used outside of software projects now. We also chat about SemanticMerge, which can automatically - and accurately - merge far more cases than the traditional text-only merge tools, and what this means for coders.

    You Do Not Understand Anything as Well as You Think You Do

    Play Episode Listen Later May 18, 2019 58:36


    This week we chat with Ivan Čukić about Functional Programming, despite him not wanting to be known as 'The Functional Programming Guy', TMP and OO, and how he was taught C++ in high school. How does Ivan balance writing books (in fact will he write another book?) and speaking at conferences internationally, while teaching full time at university?

    The Puns Only Appeared after We Added Co_

    Play Episode Listen Later Apr 29, 2019 62:30


    After a break of a few weeks we're back with an episode actually recorded on March 12th (when Phil had a cold). We chat with Gor Nishanov about Coroutines, which were just adopted into the draft standard for C++20. We talk about what Coroutines are, why recent talks may have been given the wrong impression (as they focused on a library writer's perspective,) what is going into the standard (the core language features) and what is not (library support, performance guaranteed by construction) and why. We also look at Microsoft's open-sourcing of the Calculator source code - and the bugs contained therein - as well as some follow-up on contracts.

    How Hard Is It to Write a Build Tool?

    Play Episode Listen Later Mar 13, 2019 58:54


    This week we're joined by Ben Craig as we chat about Modules, as was recently adopted into the C++20 draft standard in the meeting at Kona. We talk about how modules interact with build systems, what the deal with macros is, and the new study group set up to advise tools vendors on best practices for supporting modules in an optimal way. We also talk about Ben's ongoing work on moving the Free Standing mode of the standard forwards - and what that really means. To find out what the beneficial crisis is, and why John Lakos might be angry, listen to this episode.

    The next Call to Random() Must Be 4

    Play Episode Listen Later Mar 5, 2019 60:32


    We've talked about contracts before, but this week Björn Fahller joins us to give us his thoughts, based on his recent talk at C++ on Sea. This is all pre-Kona - the recent Standards meeting that saw several tweaks to the wording for contracts in the draft standard for C++20. Björn gives us a refresher of what contracts actually are, and how many of us have been using them in some form for years - even decades. Then we discuss what's actually going into C++20, why that's worth having compared to assert() or hand-rolled or library solutions - but also what the shortcomings are - including a couple of weakenesses that have cause some to think that contracts may be 'dead on arrival'. Where does the truth lie? Björn makes his case and (somewhat boringly) Jon and Phil tend to agree. But what does it matter? The whole show is undefined behaviour, anyway.

    If You Took a Cookie You Owe Us a Lightning Talk

    Play Episode Listen Later Feb 16, 2019 65:06


    This week we talk to Adi Shavit and Michael Gopshtein about their new conference in Tel Aviv - Core C++. We also get thoroughly distracted by talking about modules - and whether there is a major toolability issue with them, as currently proposed.

    Entirely Incorrect but Wonderfully Well-formed

    Play Episode Listen Later Jan 26, 2019 64:04


    This week we welcome back Kevlin Henney and talk to him about Deliberate Practice: what it is, how to relates to C++ programmers, and the workshop on it he's running with Jon Jagger at C++ on Sea. Along the way we also get into gaming the documentation writing system, the PDSA cycle and Boyd OODA loop, Mind Mapping and TDD. All in the pursuit of becoming better programmers.

    I Don't Think I Could Code My Way out of a Paper Bag

    Play Episode Listen Later Jan 22, 2019 63:38


    This week we chat with Frances Buontempo and Andy Balaam about Machine Learning, Artificial Intelligence and Genetic Algorithms. We learn how ML is mostly just 'multiplying and adding up' with a bit of 'randomly trying stuff out' but that you might need a kill switch - except when you don't. We also revive the 'C++ Lamentations' debate and try to make an iota of difference.

    We Made It Even Worse

    Play Episode Listen Later Jan 19, 2019 63:32


    This week we're joined, once again (yet for the first time) by Nicolai Josuttis, and we talk about how much of a C++ expert you need to be to write 'Hello, World' and initialize objects. We also discover how strongly Jon feels about initializer_list constructor syntax - and what Nico thinks about it.

    My Special Technique for Debugging Meta-programming Code

    Play Episode Listen Later Jan 11, 2019 52:32


    This week we welcome Hana Dusíková to the show and we chat about her compiler time regular expressions library, Protocol Buffers, std::embed and getting good compile and runtime performance when doing metaprogramming. Unfortunately, due to an extended edit time, the volunteer and diversity ticket programmes for C++ on Sea, mentioned during the discussion, have already closed. The student programme is still open as this show is published.

    The Things I'm Well Known for Are Javascript

    Play Episode Listen Later Dec 18, 2018 61:26


    This week we're joined by Matt 'Compiler Explorer' Godbolt as we chat about what your compiler is and isn't doing for you, doing a keynote for your first talk, and how having co-maintainers lets you go to flute concerts.

    I Could Get Compile-time Threads

    Play Episode Listen Later Dec 4, 2018 58:46


    After a bit of a break, we're back - and with non-other than Bjarne Stroustrup! We chat about the state of C++, from the hardcore of the committee to the whole community and also look at where we think it should go and maybe where it is going.

    Control over Space and Time

    Play Episode Listen Later Oct 19, 2018 44:40


    After a bit of a break in the lead up to CppCon, in this interview we chat with Herb Sutter - in front of a live audience at CppCon itself. We chat a bit about the conference, how it has been 'the best ever' (yet again), but also how it is the last one in that location (CppCon moves to Aurora, just north of Denver, Colorado, next year). We then dig into Herb's Static(aly-typed, deterministic) Exceptions proposal - what it really means for everyone in the community - and how it fits into Herb's master plan of simplying the language, while doubling down on what C++ is strongest at: zero-cost abstractions, primarily through static-by-default approaches.

    A Fight Club in Every City

    Play Episode Listen Later Sep 17, 2018 66:09


    This week we chat with Tristan Brindle, Oli Ddin and Tom Breza about C++ London Uni - a free course, based in London (and remotely), for learning C++. We hear, not only what the course is about and how you can join, but some inside insights into the challenges - and rewards - of teaching C++ to beginners. We also talk about how this is useful even to experienced developers.

    We Still Have Vector of Bool

    Play Episode Listen Later Aug 29, 2018 56:57


    C++ on Sea free ticket winner. This week we chat with David Schwartz, CTO of Ripple, the company behind the XRP cryptocurrency. He tells us what sets XRP apart from Bitcoin, summarises what Proof Of Work actually means, and how XRP's Distributed Agreement Protocol is better, and some of the reasons that C++ was chosen as the implementation language.

    It Works but It's Undefined Behaviour

    Play Episode Listen Later Aug 20, 2018 68:04


    This week we welcome back Howard Hinnant and Arthur O'Dwyer to discuss Arthur's paper, P1144, 'Trivially Relocatable'. We talk about what it is, what problems it solves, older papers covering the same ground, and even another in-flight paper (P1029) that it overlaps with. As one of the original authors of C++11's move semantics, Howard is on hand to flesh out the historical perspective.

    Who, Here, Writes Unit Tests?

    Play Episode Listen Later Aug 17, 2018 63:03


    This week we manage to align with the calendars of Kevlin Henney and Martin Hořeňovský to talk about testing and beyond - with a particular focus on Catch2 - past, present and future. We discuss how some of Kevlin's ideas influenced Catch originally, and how Martin later joined as a co-maintainer (who does most of the work).

    Hotfix Our Way to Security

    Play Episode Listen Later Aug 16, 2018 67:56


    The week we chat with Eva Conti, Troy Hunt and Matthew Butler on the topic of secure coding (so that's what safe coding is!). Eva and Matt are reformed hackers themselves and share some of their unique insights from the dark side, and how that can inform all of us in our coding practices - including those that think they don't need to worry about security in their environments.

    A Whole Arsenal of Foot Guns

    Play Episode Listen Later Aug 8, 2018 59:46


    This week we welcome Anastasia Kazakova and Dmitry Kozhevnikov to talk about the recent release of CLion 2018.2, as well as the upcoming release of ReSharper C++. We particularly talk about the new clangd based language engine that CLion now uses alongside it's own, as well as the next step towards alternate build system support - and C++/CLI support in ReSharper C++. We also talk about JetBrains' involvement in the standards committee and the new tooling group, SG15. And Anastasia talks excitedly about a really great promotional discount on JetBrains' products which, sadly, expired before this episode could be edited.

    A Callback Every Millisecond

    Play Episode Listen Later Jul 31, 2018 62:20


    This week we chat with Timur Doumler and Brian Heim about the challenges peculiar to audio development, and find that most are shared with other domains - especially those that consider themselves low-latency and/ or real-time. Timur has, in the past, worked on audio software at ROLI and Native Instruments, and has been a maintainer of the JUCE audio library - but now works on CLion at JetBrains. Brian is a maintainer of SuperCollider, a platform for audio synthesis and algorithmic composition.

    Volatile Is the Embedded Keyword

    Play Episode Listen Later Jul 27, 2018 65:12


    This week we discuss some of the challenges of embedded development. We're joined by Michael Caisse, Ben Craig and Odin Holmes for a chat that, at times, touches on volatile subjects! We'll also consider why those of us not working in embedded should care - and what possible future features and directions of C++ could benefit everybody and, perhaps, unify our currently disparate worlds.

    Don't Make the Garbage in the First Place

    Play Episode Listen Later Jul 11, 2018 63:36


    This week our main topic is Simplicity and we're joined by Kate Gregory, who will be keynoting CppCon on the subject, and Jonathan Boccara, whose blog is often focused on pursuing simplicity, too. We cover how to deal with complexity in legacy code, e.g. a report function containing thousands of lines of switch statement (and a 27 step process to add a new report), what simple code looks like to begin with, techniques that help - including functional programming and TDD, and some of the limitations of all these approaches.

    Claim cpp.chat

    In order to claim this podcast we'll send an email to with a verification link. Simply click the link and you will be able to edit tags, request a refresh, and other features to take control of your podcast page!

    Claim Cancel