← Назад ко всем статьям

Малоизвестные факты из истории C#, которые стоит знать

Опубликовано

C# - гораздо больше, чем “еще один язык программирования”. Это результат многолетних экспериментов Microsoft, которые изменили не только .NET, но и всю software industry.

Вот несколько ключевых моментов, которые показывают, как C# стал настоящим innovator.

2002 - рождение C# и .NET

Lead architect был Anders Hejlsberg, также известный как создатель Turbo Pascal и Delphi. C# 1.0 вышел вместе с .NET Framework 1.0.

Цель была создать современный, безопасный и простой язык: проще C++, но сформированный собственным видением Microsoft.

Начало 2000-х - исследовательский проект Cω (Comega)

Cω не был commercial product, это был research project от Microsoft Research. Он объединял идеи Polyphonic C# и Xen, экспериментируя с data access и concurrency.

Хотя Cω так и не стал mainstream language, его innovations помогли вдохновить создание LINQ.

2007 - LINQ и рост влияния functional programming ideas

С выходом C# 3.0 Erik Meijer принес в mainstream C# development concepts, вдохновленные functional languages вроде Haskell и ML. Этот release добавил мощные features:

  • LINQ query syntax с from, where и select.

  • Lambda expressions.

  • Extension methods.

  • Contextual keyword var.

  • Anonymous types.

  • Expression trees, которые стали критичны для technologies вроде Entity Framework.

Эти additions сделали C# более expressive и позволили developers писать более clean и powerful code.

2012 - влияние F# и появление async/await

C# 5.0 adopted и adapted pattern async/await из F#, где уже была feature async workflows. Это помогло языку уйти от старых и более громоздких models asynchronous programming.

2015-2021 - как C# повлиял на другие языки

Patterns, popularized by C#, оказали широкое влияние на industry.

Asynchronous Programming с async/await

  • Python 3.5 (2015).

  • JavaScript ES2017 (2017).

  • Kotlin 1.3 (2018).

  • Rust 1.39 (2019).

  • Swift 5.5 (2021).

Functional Style и идеи, вдохновленные LINQ

  • Java Streams API в Java 8 (2014).

Заключение

C# не просто следовал trends - он их задавал. Он фундаментально изменил то, как developers думают об asynchrony, data и language design.

P.S. Интересный факт после публикации

После публикации этого поста в LinkedIn Don Syme, creator и lead architect языка F#, оставил comment с важными уточнениями:

“Language integrated async programming was shipped first in F# in 2006 and was copied and adapted into C# in the following years.”

“The history of Generics, LINQ and async programming, iterators and more is covered tangentially in ‘The Early History of F#.’”

“There’s no corresponding peer reviewed paper on the history of C# unfortunately.”

Вы можете прочитать The Early History of F# в Proceedings of the ACM on Programming Languages.

Он также отметил, что ключевые contributions в C# в 2000-х внесли следующие люди:

  • Gavin Bierman - Comega.

  • Cédric Fournet - Comega.

  • Nick Benton - Comega.

  • Erik Meijer - LINQ and more.

  • Todd Proebsting - Iterators.

  • Andrew Kennedy - Generics.

  • Claudio Russo - Generics.