Published Aug 18, 2023

SE Radio 577: Casey Muratori on Clean Code, Horrible Performance?

Casey Muratori challenges the balance between clean code practices and software performance, arguing for the prioritization of efficiency without sacrificing readability and maintainability. He delves into the impact of coding decisions on business success, critiques misconceptions about optimization, and underscores the strategic significance of language choices in software development.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Bottlenecks

    Performance bottlenecks often arise from poor architectural decisions, leading to inefficiencies in system operations. highlights how designing systems to accommodate the slowest component can solidify low performance across the architecture. This approach makes future optimizations challenging, as seen in real-world examples from companies like Facebook, where backend improvements were nullified by sluggish frontends 1.

    We've solidified low performance into our architecture, which I again wouldn't approve of.

    ---

    Additionally, network-based programs often suffer from I/O bound challenges due to inefficient communication patterns, further exacerbating performance issues 2.

       

    Optimization

    Misunderstandings about optimization can lead to inefficient code. argues that premature optimization, often misunderstood, can result in complex, hard-to-maintain code without significant performance gains. He emphasizes that optimization should be considered throughout the development process, not just at the end 3.

    Don't just hand optimize some routine, because now you're into hand optimization because you're making life worse for everybody else.

    ---

    Muratori also challenges the notion that many applications are inherently I/O bound, suggesting that poor structuring often creates these bottlenecks 4.

       

    Performance

    Performance is crucial for user engagement and business success. points out that faster software leads to more user interactions and higher profits, as evidenced by research from major tech companies like Google and Microsoft 5. Despite this, many developers overlook performance, assuming it can be addressed later, which Muratori argues is a flawed approach.

    Performance really matters in practice, and we have copious data that says that that's true.

    ---

    He encourages engineers to prioritize performance from the start, as it significantly impacts both user experience and revenue 6.

Related Episodes