EPISODE · Oct 16, 2024 · 41 MIN
Magic is Bad
from The Agile Embedded Podcast · host Jeff Gable, Luca Ingianni
The Dangers of Magic in Software AbstractionsIn this episode of the Agile Embedded Podcast, hosts Jeff Gable and Luca Ingianni discuss the pitfalls of relying on 'magic' in software development, particularly in tooling, build systems, and frameworks. They illuminate how seemingly helpful abstractions can become burdensome when they obscure necessary complexities or become hard to debug. Through various examples, including comparisons of Arduino and CMake, they explore what makes a good abstraction versus a bad one. The conversation also delves into the importance of composability, testability, and the real-world impact of overly simplistic or 'magical' solutions in long-term projects. The episode wraps up with practical advice for selecting and designing more effective coding abstractions to mitigate risks.00:00 Introduction and Episode Theme00:19 The Problem with Magic in Programming02:54 Examples of Good and Bad Abstractions04:45 Frameworks and Tools: Arduino vs. CMake08:10 Vendor-Supplied Tools and Their Pitfalls13:05 Characteristics of Good Abstractions29:04 Testing and Abstractions37:10 Final Thoughts and Contact Information You can find Jeff at https://jeffgable.com.You can find Luca at https://luca.engineer.Want to join the agile Embedded Slack? Click hereAre you looking for embedded-focused trainings? Head to https://agileembedded.academy/Ryan Torvik and Luca have started the Embedded AI podcast, check it out at https://embeddedaipodcast.com/
What this episode covers
In this episode of the Agile Embedded Podcast, hosts Jeff Gable and Luca Ingianni discuss the pitfalls of using overly 'magical' abstractions in software development. They explain how such abstractions, while aiming to simplify complex tasks, can lead to significant problems and risks when they fail or become difficult to work with. The conversation touches on examples like Arduino's beneficial simplicity and CMake's controversial complexity. They emphasize the importance of creating useful, testable abstractions that don't hide essential complexity and the need for careful tool and framework selection. They also draw connections between good abstractions and testability, advocating for test-driven development to ensure quality.
NOW PLAYING
Magic is Bad
No transcript for this episode yet
Similar Episodes
Mar 26, 2026 ·1m
Mar 19, 2026 ·34m
Feb 18, 2026 ·11m
Feb 11, 2026 ·45m