Атрибуты .NET и аннотации Java: что произошло первым?

Я - разработчик .NET, изучающий Java EE. Кажется, что эти две концепции служат одинаковым точным целям в любой системе.

Итак, какие рамки заслуживают придумывать их?

Ответ 1

. NET-метаданные, я полагаю, был представлен в .NET 1.1, который был выпущен 3 апреля 2003 года (как представляется, уже до этого?). аннотации Java были предложены как JSR-175 от 19 марта 2002, который был утвержден 30 сентября 2004 года и стал частью Java SE 5.0, который был выпущен в тот же день.

Неясно, когда были предложены именно метаданные .NET, но когда дело доходит до первой версии,.NET выигрывает.

Ответ 2

Атрибуты были частью CLR с момента ее создания. У меня есть старая предварительная спецификация С#, напечатанная с ноября 1999 года, которая описывает их, но самая ранняя ссылка, которую я могу найти, это С# 1.0 spec from 2001, Это было явно за несколько лет до того, как функция была добавлена ​​в Java.

EDIT: книга, Программирование на С# с публичной бета-версией, было опубликовано в 2000 году и упоминает атрибуты.

Ответ 3

Я считаю, что они пришли сначала с .NET; Последовала Java 5.

Java, к сожалению, отстает от кривая на языке неудобно, несмотря на факт, что это был язык С# смоделированный после.

Комментарий Pierreten верен, но я думаю, что есть несколько факторов, которые его объясняют:

  • Java имеет более длительное наследие, чем .NET, и поддержание назад совместимость является высокоприоритетной
  • Процесс сообщества Java требует больше времени для достижения консенсуса; Microsoft не нуждается в таком консенсусе, если считает, что функция нужна.
  • Финансовый спад Sun и возможная покупка Oracle означали, что для ресурсов Java было доступно меньше ресурсов.
  • Солнце потеряло сознание, которое продвигало Java вперед на высоте (например, Билл Джой, Джеймс Гослинг). Андерс Хейлсберг и Эрик Липперт все еще с Microsoft.

(Эрик Липперт оставил Microsoft в январе 2013 г., чтобы присоединиться к Coverity.)