TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.77K subscribers
Post #1312 1.39K
День 1066.
Оглядываясь Назад на C#. Начало

С наступающим!

Говорят, что праздники должны быть временем, когда человек оглядывается на прошедший год и размышляет над решениями и событиями, произошедшими в его жизни. Предполагается, что он обдумывает свои успехи и неудачи в надежде пролить свет на взлёты и падения прошлого, чтобы либо повторить, либо избежать таких событий.

Одна из самых удивительных особенностей C# - это упорный труд, который разработчики вложили в его изменение и адаптацию к текущим трендам и требованиям сообщества. В новом году мы отметим 20-летний юбилей релиза C#, а работать над ним в Microsoft начали задолго до этого. Многие языки возникали и пропадали за время существования C#, а некоторые даже объявлялись новой вехой в программировании, но потерпели неудачу и оставались лишь заметками в анналах истории. C#, даже несмотря на то, что поддерживался одной из крупнейших компаний-разработчиков ПО в мире, никогда не имел гарантии успеха, и временами казалось, что он станет ещё одним мимолётным увлечением.

90-е были действительно другой эпохой программирования, как технологически, так и культурно. Интернет только начинал развиваться. Колёсико мыши было практически неслыханным делом, а трекболы были еще одним предметом, который нужно чистить и обслуживать. Microsoft были в разгаре судебной тяжбы с Sun по поводу торговых марок Java и J++. Delphi, основанный на Turbo Pascal, был лидером в области быстрой разработки приложений (RAD). Необычный язык программирования JavaScript, который добавлял интерактивность в веб-браузеры, был новинкой. Программистам на COBOL и другим людям, работавшим над ошибкой 2000 года, наряду с HTML-разработчиками, платили как рок-звёздам, а Microsoft спасала Apple от финансового краха.

В середине 2000 года Microsoft объявила о скором выпуске нового языка программирования под названием C#, ничем не напоминающего Visual Basic, их флагманский инструмент RAD, который, возможно, был самым любимым (и самым осуждаемым) языком в то время. Синтаксис VB во всех его формах использовался для большинства инструментов программирования Microsoft. Всё, от VBScript в классическом ASP до автоматизации офиса и инструмента RAD Tool. Хотя это официально не было заявлено, выпуском C# Microsoft недвусмысленно намекнули об изменении своего подхода к разработке ПО и что они не против оставить в прошлом синтаксис BEGIN/END и ON ERROR GOTO, к большому огорчению многих разработчиков.

Да, строго говоря, Microsoft официально не отказывались от Visual Basic. Они создали VB.NET с некоторыми изменениями синтаксиса и согласились «развивать» его параллельно с C#. Хотя в то время официально об этом не говорили, но на его рекламу и продвижение было потрачено гораздо меньше времени и усилий. И многие разработчики считали, что Microsoft твердо намерены перевести разработчиков на C#.

Заглянув в историю 90-х, теперь можно посмотреть на мир, в котором дебютировал C# 1.0. Он вошёл в мир, где продолжались споры о том, действительно ли нужны ещё какие-либо коммерческие языки программирования, и, кроме того, он выглядел чрезвычайно похожим на язык программирования конкурирующей компании… Java. Настолько похож, что даже некоторые недостатки Java были сознательно продублированы, например ковариантность массивов.

В Microsoft решили эту проблему с помощью обобщений. Хотя, в первоначальном выпуске было явно запрещено делать что-то вроде следующего:
public void AddEmployee(List<Employee> employees){}
...
public void AddManager () {
List<Manager> managers = new List<Manager>();

// Изначально это было запрещено, даже при том,
// что Manager – подтип Employee.
AddEmployee(managers);
}

В некоторых случаях преобразование типов для обобщений, делегатов и т.п. было упрощено в зависимости от того, как использовался тип. Затем Microsoft обновили значительную часть платформы .NET, чтобы без проблем разрешить эти упрощённые правила неявного преобразования.

Продолжение следует…

Источник:
https://kemiller2002.github.io/c-sharp/2021/12/24/reflection.html
  • 👍 11
More from @netdeveloperdiary
  1. Oct 15, 2026Post #3374
  2. Oct 14, 2026Post #3373
  3. Oct 13, 2026День 2813. #ЗаметкиНаПолях #Async Ещё Раз Про Async/Await в C#. Часть 1 Почему существует…
  4. Oct 12, 2026День 2812. #Карьера #AI Как Разработчикам Оставаться Полезными, Когда Код Пишет ИИ? По мер…
  5. Oct 11, 2026День 2811. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  6. Oct 10, 2026День 2810. #ЧтоНовенького #VSCode Более Быстрый и Лёгкий C# Dev Kit Мы, разработчики, люби…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →