#124 Mads Torgersen, C# 8

Summary
Mads Torgersen talks about the upcoming release of C#, what's new, what's different, what else is coming in the future. He also answers questions from Twitter.

Details
Who he is, what he does. What new in C# 8; robustness, pits of success; nullable reference types. No breaking changes. Use of language features, IntelliCode. The legacy of String, unicode and UTF8, array, immutability and invariants. Async streams, what it is and history. Bryan's blog on steaming, why async is important, especially if you have a limited number of threads available. Improved patterns matching, recursive patterns. C# 8 relies on a .NET Core Runtime feature. C# 8 and Visual Studio schedules are independent; upcoming schedules for .NET Core and .NET 5. Questions from Twitter - records and roles, expression tree updates, compiler flags, AOT, tiered compilation, type providers, async/await inside LINQ expressions, discriminated unions, Typescript style inline union. Relationship between C# design team and the compiler team. Mads encourages us all to use the previews of C# 8 and let him know if you find a problem.

Links
Mads' twitter
What's new in C# 8
C# repo on GitHub

Download mp3 of podcast

#123 Dane Hillard, Good Software Practices

Summary
Dane Hillard, software engineer and author, discusses what he considers to be some of the important principles of software development.

Details
Who he is, what he does. A little about his book. Separation of concerns, what it means, how to do it; good naming; method length. Abstraction and encapsulation, what it is, good examples and bad examples. Good programming in industry. Improving performance, profiling, when to optimize; trusting the performance of third party packages. Testing code, unit vs integration testing, mocking; performance and load testing, Locust. Security, when to add it in, feature switches.

Links
Dane's twitter
Dane's homepage

Download mp3 of podcast