Как дженерики влияют на дизайн С# и.NET?

Это может быть широкий вопрос, но это то, что мне не очень понятно и очень любопытно.

Часто для некоторых проблем я слышу, что это объясняется тем, что Generics не был доступен в .NET 1.0. Это заставляет меня думать обо всех этих двух вещах:

  • Общие понятия не были учтены раньше, поэтому разработчики придумали это после .NET 1.0, которые могут кардинально повлиять на дизайн С# и .NET, но не могут из-за уже принятых решений (обратная совместимость).

  • Дженерики всегда планировались с самого начала, поэтому единственная проблема, возникающая из-за того, что она не выпускала ее с .NET 1.0, не могла использовать ее до 2.0. Но кроме этого, никаких избыточных функций не было введено или неправильно, были приняты необратимые решения.

В основном я предполагаю # 1, но это №2 - это реальный случай?

Ответы

Ответ 1

Дженерики были долгое время и могут быть свободно по сравнению с шаблонами С++, хотя концепция (и, вероятно, реализация на других языках) предшествует даже этому.

.Net 1.0 - это первый разрез платформы, поэтому план должен был отправить что-то, что работает разумно. Дженерики должны были быть в "запланированном будущем", если бы какой-нибудь достойный архитектор находился в команде, но это то, что можно было добавить позже. Фактически, документ по внедрению generics для .NET вышел за год до того, как окончательно RTM-версия RTM появилась.

Сроки: (http://en.wikipedia.org/wiki/List_of_.NET_Framework_versions)

2002-03-05 .Net Framework version: 1.0.3705.0 released
~May, 2001 Don Syme paper on "Design and implementation of generics for .NET"

Microsoft, возможно, потратила 10 лет на создание .Net Framework 4.0 (как версия 1.0), но с таким количеством кода и так много функций сразу, потребуется 5 лет, чтобы найти все ошибки и проблемы юзабилити, если проект может даже преуспеть.

Итак, ответ на ваш вопрос будет # 2.

Don Syme разработал и внедрил обобщения в С# и .Net.

Ресурсы

Андерс Хейлсберг - мой герой - из Википедии - оригинальный автор Turbo Pascal, главный архитектор Delphi, позже возглавляющий архитектор С#

Ответ 2

Я почти уверен, что дженерики были задуманы с самого начала. Хорошо осознавая, что работа будет значительной. Проект возглавлял Дон Сим (известность F #), его первая публикация о дизайне датирована январем 2001 года. CLR представлен как заданный, бумажные документы дополняют MSIL, хотя в то время .NET 1.0 еще не отправлен. Это заняло еще год. Все и все, наверное, справедливо заключить, что им потребовалось около 4 лет, чтобы объединить это вместе в конкретное программное обеспечение для доставки.

Ответ 4

Дон Симе, разработчик F #, частично отвечал за .NET файлы .NET.