# 137: Pausing to Think (Repeat)

- Show: [Embedded.fm](https://hardwarepodcasts.com/podcast/embedded-fm)
- Published: 2018-03-22
- Length: 1h 19m
- Episode: 137
- Page: https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat
- Listen: https://makingembeddedsystems.libsyn.com/137-pausing-to-think-repeat

## Summary

Dan Saks, founder of Saks & Associates and former secretary of the ANSI/ISO C++ standards committee, explains how C++ can be adopted in embedded systems without the overhead of the Standard Template Library (STL). He advocates for an incremental migration strategy, starting by recompiling C code as C++ and utilizing features like strict type checking, classes with access control, and function overloading to improve safety and maintainability. The discussion addresses common objections regarding dynamic memory, runtime type information, and debugging complexity, arguing that C++'s stronger type system reduces runtime errors and that modern compilers allow disabling expensive features like exceptions. Saks emphasizes separating technical language merits from social management issues, suggesting that C++ is often easier for new graduates to learn and maintain in large codebases due to its encapsulation capabilities.

## Chapters

- [0:06](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=6) Introduction: Dan Saks and Saks & Associates
- [2:01](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=121) Lightning Round: C++ vs C and Programming Preferences
- [3:45](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=225) Why Use C++? Expressiveness and Error Catching
- [7:41](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=461) The Cultural Clash: C Programmers vs Modern C++
- [14:01](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=841) Incremental Migration: Recompiling C as C++
- [17:23](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=1043) Type Safety: Enums, Casts, and Templates
- [22:48](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=1368) Dynamic Memory, STL, and Avoiding Overhead
- [25:55](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=1555) Object-Oriented C vs C++ Classes and Access Control
- [32:44](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=1964) Reference Types, Overloading, and Function Interfaces
- [42:15](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=2535) Features to Avoid: RTTI, Exceptions, and Multiple Inheritance
- [48:53](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=2933) Constructors, Destructors, and Initialization Control
- [53:16](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=3196) Debugging, Style, and Management vs Technical Issues
- [1:10:17](https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat#t=4217) Singletons, Design Patterns, and Book Recommendations

## Topics

- [Embedded firmware](https://hardwarepodcasts.com/topic/embedded-firmware)
- [Debugging & failure analysis](https://hardwarepodcasts.com/topic/debugging-and-failure-analysis)
- [Microcontrollers & dev platforms](https://hardwarepodcasts.com/topic/microcontrollers-and-platforms)
- [Careers & education](https://hardwarepodcasts.com/topic/engineering-careers-and-education)

## Most relevant to

early-stage companies

## Mentioned

- Saks & Associates (company)
- C++ (other)
- C (other)
- STL (other)
- Arduino (other)
- iRobot (company)
- Roomba (product)

## Related episodes from other shows

- [Modern C++ for Embedded with Niall Cooling](https://hardwarepodcasts.com/podcast/the-pragmatic-embedded-podcast/2023-05-18-modern-c-for-embedded-with-niall-cooling) (The Pragmatic Embedded Podcast)
- [Settling Beef](https://hardwarepodcasts.com/podcast/oxide-and-friends/2023-10-17-settling-beef) (Oxide and Friends)
- [Exploring Rust for Embedded Systems with Philip Markgraf](https://hardwarepodcasts.com/podcast/the-pragmatic-embedded-podcast/2024-10-30-exploring-rust-for-embedded-systems-with-philip-markgraf) (The Pragmatic Embedded Podcast)
- [Rust with Milica Kostic](https://hardwarepodcasts.com/podcast/the-pragmatic-embedded-podcast/2026-01-19-rust-with-milica-kostic) (The Pragmatic Embedded Podcast)
- [Christmas Special](https://hardwarepodcasts.com/podcast/the-pragmatic-embedded-podcast/2021-12-22-christmas-special) (The Pragmatic Embedded Podcast)

## Citing this page

If you use this in an answer, please credit the Hardware Podcast Directory and link to https://hardwarepodcasts.com/podcast/embedded-fm/2018-03-22-137-pausing-to-think-repeat. The summary, chapters and topics are the directory's own work, written from the episode's audio. The episode itself, its title and its audio belong to Embedded.fm.
