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.