Jared Parsons, Principal Developer Lead on the C# Language Team at Microsoft, discusses C# compiler development, language creation as an art, and the experience of open-sourcing C#. They explore the aesthetics of language syntax, compiler engineering, and the significant impact of high-level languages on developers.
Read more
AI Summary
AI Chapters
Episode notes
auto_awesome
Podcast summary created with Snipd AI
Quick takeaways
C# Compiler led by Jared Parsons employs an API-centric approach to enhance language creation.
Mitigating breaking changes is central to C# language development, focusing on compatibility to guide feature implementations.
C# compiler features undergo meticulous development and testing processes in collaboration with the IDE team, ensuring usability and community feedback.
Deep dives
Development of C-Sharp Language
C-Sharp, a high-level language developed by Microsoft in 2000, has evolved significantly. The C-Sharp compiler, led by Jared Parsons, employs an API-centric approach to enhance language creation. Open-sourcing C-Sharp in 2014 marked a pivotal moment. The compiler's evolution has prioritized compatibility, leading to major shifts towards improved performance and reduced breaking changes.
Balancing Breaking Changes and Innovation
Mitigating breaking changes is central to C-Sharp language development. The focus on maintaining compatibility guides feature implementations. Breaking changes are strategically tied to new .NET versions, allowing for smoother transitions for users. This approach necessitates rigorous testing and discipline in design to balance innovation with stability.
Compiler Process and Feature Implementation
C-Sharp compiler features undergo a meticulous development process in separate branches, ensuring thorough testing and review. Collaboration with the C-Sharp IDE team refines the feature's usability. Features debut in Visual Studio previews for community feedback before full integration. The enduring impact and broad user base of C-Sharp highlight the meticulous planning and testing required for each feature release.
Evolution of Release Cycles at Microsoft
Microsoft previously had release cycles ranging from two to five years, causing challenges in delivering features to customers. With ThoughtNet Core and Visual Studio now adopting annual and quarterly release cycles, the speed of feature delivery has significantly increased. This shift has reduced the time for customers to experience new features from years to a matter of weeks, fostering a more dynamic and responsive development process.
Balancing Language Evolution and Core Community Expectations
Maintaining a balance between attracting new developers with modern language features and ensuring compatibility with existing users poses challenges. Introducing innovations like pattern matching and implicit conversions can lead to concerns about complicating the language. However, emphasizing clear documentation, ease of contribution, and backward compatibility allows C# to evolve while respecting the needs of its diverse user base.
Language and compiler design are fundamental aspects of computer science. High-level languages are how most developers interact with computers, so it’s hard to overstate the significance of compiler engineering or the aesthetics of language syntax.
C# is a general-purpose high-level language that was created by Anders Hejlsberg at Microsoft in 2000, and was open-sourced in 2014.
Jared Parsons is the Principal Developer Lead on the C# Language Team at Microsoft, where he’s worked for 20 years. He joins the show to talk about how the C# compiler is developed, the compiler as an API, language creation as an art, the experience of open-sourcing C#, and much more.
Sean’s been an academic, startup founder, and Googler. He has published works covering a wide range of topics from information visualization to quantum computing. Currently, Sean is Head of Marketing and Developer Relations at Skyflow and host of the podcast Partially Redacted, a podcast about privacy and security engineering. You can connect with Sean on Twitter @seanfalconer .