Published Sep 3, 2019

SE-Radio Episode 296: Type Driven Development with Edwin Brady

Discover the powerful intersection of type-driven development and programming precision with Edwin Brady, as he delves into the revolutionary Idris programming language and its use of dependent types to enhance software reliability and precision.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Language Features

    Idris stands out with its unique approach to type-driven development, offering a robust framework for developers. highlights the language's ability to leverage dependent types, which allow for more precise type checking and program correctness at compile time 1. This feature ensures that programs behave consistently, reducing runtime errors and enhancing reliability. Brady suggests visiting Idris's website for more information, noting its academic design and inviting contributions from web designers 2.

       

    Applications

    Idris excels in modeling systems, particularly through its state machine capabilities. Brady explains how the language can define operations and transitions between states, ensuring that operations are valid and executed correctly 3. This approach is beneficial for concurrent systems, where processes must adhere to specific protocols. By calculating types, Idris can generate state transition systems, ensuring message passing occurs in the correct order 4.

       

    Development

    The creation of Idris was driven by a vision to enhance programming reliability through compile-time checks. Brady shares that the language's name was inspired by a dragon character, reflecting its origins in a theorem proving engine 5. The focus on compile-time type checking allows developers to write correct programs by guiding them through the development process. This holistic approach ensures that programs are not only correct but also efficient and reliable 6.

Related Episodes