cpp.chat

cpp.chat

By Jon Kalb & Phil NashNewsTechnologyTech News
Download on the App Store

cpp.chat episodes

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

    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?

    Links:

    • CppCon announcements
    • ReSharper C++ 2019.1 release- Explore the dozens of significant performance improvements inside, as well as dedicated support for Unreal Engine 4, more flexible integration with Clang-Tidy, naming conventions, and the new Doctest unit testing framework.
    • Top Ten Reasons To Send Your Developers to CppCon (or any C++ Conference)- Sending software engineers to conferences is both a time and money expense, but conferences exists because they provide value to attendees and companies that send them. Some of the value may be obvious, some may not. Here is a list of the top business reasons to send your developers to CppCon or any other C++ conference
    • Book review of Functional Programming with C++ by Ivan Čukić
    • Functional Programming in C++ (Manning)- Ivan's book
    • Functional Programming in C++ (Amazon)
    • Ivan's dissertation- Functional and Imperative Reactive Programming Based on a Generalization of the Continuation Monad in the C++ Programming Language
    • What is ADL?- Arthur O'Dwyer's post on ADL (as lead-in to a post on Hidden Friends)
    • Qt Creator 4.9.0 released
    59 min
  • The Puns Only Appeared after We Added Co_

    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.

    Links:

    • Understanding C++ Modules: Part 1: Hello Modules, and Module Units- Vector-of-bool (Colby Pike)'s post on Modules
    • Code Generation with C++ Contracts- Post about how contracts affects (or may affect) code generation
    • Counting Bugs in Windows Calculator- PVS-Studio's post looking into the Windows Calculator code for bugs
    • Gor's CppCon 2015 talk on coroutines- C++ Coroutines - a negative overhead abstraction
    • Gor's CppCon 2016 talk on coroutines- C++ Coroutines: Under the covers
    • Gor's CppCon 2017 talk on coroutines- Naked coroutines live (with networking)
    • Gor's CppCon 2018 talk on coroutines- Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)
    • C++ Now 2019
    • Core C++ (Tel Aviv)
    • Italian C++ Conference
    1 hr 3 min
  • How Hard Is It to Write a Build Tool?

    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.

    59 min
  • The next Call to Random() Must Be 4

    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.

    Links:

    • C++ on Sea videos- Now fully uploaded
    • Italian C++ Conference- Andre Alexandrescu keynoting - Saturday June 15, Milan
    • ACCU Conference- 2018-10-05 to 2018-10-26
    • emBo++- 14th to the 17th of March
    • C++ Now- May 5, 2019 - May 10
    • Catch2 2.6.1 released
    • Why You Should Use std::for_each over Range-based For Loops- Jon's guest post on Jonathan Boccara's blog
    • Episode #32 on Contracts- with John Lakos and Kévin Boissonneault
    1 hr 1 min
  • If You Took a Cookie You Owe Us a Lightning Talk

    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.

    Links:

    • Core C++
    • Core C++ - Eurovision Ticket Raffle- "We are delighted to announce that as part of the Eurovision diversity outreach, we shall be raffling one free Eurovision ticket!"
    • The Italian C++ Conference
    • The ACCU conference
    • Embo++
    • C++ Now
    • C++ on Sea- Now over, but videos coming online
    • C++ Modules Might Be Dead-on-Arrival- If you've been hoping for modules for as long as many have, you'll note that 'compilation speed' is missing from this list. Nevertheless, this is one of the biggest promises of modules. The possible speedup from modules is merely a consequence of the above design aspects.
    • What I Talk about When I Talk about Cross Platform Development- Adi's talk at C++ on Sea
    1 hr 6 min
  • Entirely Incorrect but Wonderfully Well-formed

    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.

    Links:

    • C++ on Sea - closing soon!- Last chance to get tickets
    • C++ Now- registration open
    • Core C++- in Tel Aviv
    • ACCU Conference- registration open
    • Worldwide conferences schedule
    • MindMup- free online mindmapping tool
    • This is why you shouldn't interrupt a programmer- webcomic
    • The PDSA Cycle- The PDSA Cycle (Plan-Do-Study-Act) is a systematic process for gaining valuable learning and knowledge for the continual improvement of a product, process, or service. Also known as the Deming Wheel, or Deming Cycle
    • The Boyd OODA loop- The OODA loop was a tool developed by military strategist John Boyd to explain how individuals and organizations can win in uncertain and chaotic environments. It is an Acronym that explains the four steps of decisions making: Observe, Orient, Decide Act.
    1 hr 5 min
  • I Don't Think I Could Code My Way out of a Paper Bag

    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.

    Links:

    • Frances' book, "Genetic Algorithms and Machine Learning for Programmers"- Build artificial life and grasp the essence of machine learning. Fire cannon balls, swarm bees, diffuse particles, and lead ants out of a paper bag.
    • Amazon link for Frances' book
    • Andy's postcast- Movie and tech podcast with "Clueless" Andy Balaam and "Expert" Andy Cockerill
    • Frances' ACCU 2017 keynote- It has been said, to err is human, to really foul things up requires a computer [citation needed]. Given the long tradition of AI, which sometimes attempts to make a sentient being from hardware, or body parts (think Frankenstein's monster), are humans unique, or is this dream possible? Or desirable?
    • "Modern" C++ Lamentations- The post that kicked off the "modern C++ is un-debuggable" debate
    • Ben Deane's response to "Modern C++ Lamentations"- The C++ committee isn't following some sort of agenda to ignore the needs of game programmers, and 'modern' C++ isn't going to become undebuggable.
    • Sean Parent's response to "Modern C++ Lamentations"- This post is a response for a number of people who have asked me to give my 2¢ to a large Twitter thread, and post by Aras Pranckevičius, that is rooted in a post by Eric Niebler regarding C++20 standard ranges.
    • Genetic Algorithms (wikipedia)- In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to generate high-quality solutions to optimization and search problems by relying on bio-inspired operators such as mutation, crossover and selection.
    • Your Code as a Crime Scene- Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs
    • NorDevCon- Tech conference in Norwich, UK
    • ACCU Conference- Tech (with strong C++ focus) conference in Bristol, UK
    • C++ on Sea- Standard ticket pricing ending soon!
    1 hr 4 min
  • We Made It Even Worse

    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.

    Links:

    • C++17 - The Complete Guide (book)- This book is published incrementally (step-by-step) at leanpub, so that you can benefit from it without waiting until all is done. The first version was available since December 15, 2017. You can buy it now for a cheaper price and get all updates for free. See below for how much currently is covered.
    • C++ on Sea student programme
    • Core C++ (call for speakers)- The call for speakers officially closed, but you may still be able to sneak something in if you're quick
    1 hr 4 min
  • My Special Technique for Debugging Meta-programming Code

    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.

    Links:

    • Regular Expressions Redefined in C++- CppCon 2017 lightning talk
    • Compile Time Regular Expressions- CppCon 2018 main program session
    • C++ on Sea student programme- Full access the two day conference, for students, for only £50
    • Functional C++ for Fun and Profit- talk by Phil
    53 min
  • The Things I'm Well Known for Are Javascript

    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.

    Links:

    • Compiler Explorer
    • Quick Bench
    • Undefined Behavior and CERT's Vulnerability Note
    • C++ on Sea Volunteers and Student tickets- We are now accepting applications for students and volunteers. These programmes offer cheap (£50 for students) or free (for volunteers) tickets to qualifying applicants.
    • C++ on Sea diversity tickets (via #include )- We're raising money to sponsor diversity and support tickets for @cpponsea! You can donate here:
    • Cpp Cast with Lenn Maiorani
    • Core C++ (Israel)
    1 hr 2 min

About cpp.chat

From the publisher's feed

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++