Published Sep 3, 2019

Episode 97: Interview Anders Hejlsberg

Anders Hejlsberg, Microsoft's Chief Language Strategist, delves into the historical impact of Delphi on modern languages like C#, while discussing language design complexities, and speculating on the future challenges of programming, including concurrency and the evolution of domain-specific languages.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Checked Exceptions

    The debate over checked exceptions in programming languages is a contentious one. shares his perspective, acknowledging the intent behind checked exceptions but questioning their overall benefit. He argues that while stronger compile-time checking is generally advantageous, checked exceptions can complicate programming by forcing developers to handle or declare exceptions, which may not always improve the programming experience 1.

    Checked exceptions have all sorts of problems with this notion that you must either handle or yourself and your method declare that you rethrow all of these or push further push on these exceptions.

    ---

    He believes that tools like FxCop could offer a middle ground by analyzing code for exception handling without enforcing strict rules 1.

       

    Language Integration

    The integration of language design and development tools is crucial for modern programming. emphasizes the importance of this symbiosis, noting that tools like statement completion and refactoring are essential for effective language use 2. He highlights how the design of LINQ in C# was influenced by the need for seamless tool integration, ensuring that features like statement completion work intuitively 2.

    It's foolish to think about one to the exclusion of the other because in our day to day lives, you know, I mean, as programmers, we don't really sit there and make a distinction between whether this is a keyword or an API.

    ---

    Additionally, Hejlsberg discusses the importance of explicit language features, such as the override modifier in C#, which prevents versioning issues by requiring developers to specify when they are overriding a method 3.

Related Episodes