09 Января 2009
Будущее .NET языков PDF Печать E-mail
В этом году на конференции профессиональных разработчиков (PDC 2008), Microsoft ® было весомое приближение к особенностям будущего разработчиков Microsoft. NET ® платформы. В этой статье мы сделаем краткий обзор некоторых особенностей предстоящего в. NET 4.0 Framework, нового Microsoft ® F # языка и обсудим какую долгосрочную перспективу Microsoft имеет для .NET Platform в ближайшие годы.

Ко-эволюция VB.NET и C#

И VB.NET, и Microsoft Visual C#® построены поверх общеязыковой среды исполнения (Common Language Runtime (CLR)), а это значит, что они оба компилируются в один и тот же язык Common Intermediate Language (CIL). А так как они компилируются в один и тот же исходный код, то существенной разницы между ними нет. Тем не менее, оба языка поддерживаются различными командами в Microsoft, и с годами такое разделение привело к целому ряду языковых особенностей в C # и VB.NET, как командах сосредоточеных на различных областях со своими соотвествующими программами. Многие VB.NET разработчики считают, что наиболее интересные новые возможности появились сперва в C# и лишь позднее были введены в VB.NET. Естественно, это вызвало некоторую враждебность в VB.NET сообществе.

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

Представление динамической языковой исполнимой среды

Microsoft прекрасно понимает, что .NET Framework является не единственным выбором для создания приложений. Все, что вам нужно сделать, это охватить быстрым взглядом сферу разработки, и вы увидите ряд опций языка, и этот ряд, как ожидается, только расширится с возникновением предметно-ориентированных языков программирования. Люди тратят время и энергию на написание полезных компонентов на этих языках, поэтому вопрос состоит в том, каким образом вы можете использовать компонент, написанный на другом языке, не переписывая его на .NET?

Пожалуй, наиболее интересная новая возможность в предстоящем выпуске программы .NET 4.0 это динамическая языковая исполнимая среда (DLR). Поскольку общеязыковая среда исполнения (CLR) обеспечивает общую платформу для таких статически типизированных языков, как VB.NET и C #, динамическая языковая исполнимая среда(DLR) обеспечивает общую платформу для таких динамически типизированных языков, как JavaScript, Ruby, Python и даже наследование COM компонентов . Она представляет собой крупный шаг вперед в языковых средствах платформы .NET Framework, предоставляя абстрактные операции для языков, используя общую память, во избежание перебрасывания(сортировки) данных туда-сюда между процессами, общий(или обычный) набор языковых фич, таких как сборщик мусора, и plumbing, чтобы преобразовать разные представления данных из одного языка в другой.

На более высоком уровне, вы можете думать о динамической языковой исполнимой среде, как о трехслойной. На более высоком уровне, вы можете думать о динамической языковой исполнимой среде, как о трехслойной:

  • . NET Язык интеграции
  • DLR Основные компоненты
  • Язык скоросшивателей

Первый слой .NET Язык интеграции, представляет собой просто необходимость .NET языков иметь понятие о том, что такое DLR и как его использовать. По большей части, Вы даже не заметите этого аспекта в DLR, потому что у большинства .NET языков есть естественная точка интеграции. IronRuby и IronPython - оба языка с динамической типизацией, поэтому DLR отлично подходит. VB.NET всегда поддерживал понятие динамического связывания для типа Object, поэтому DLR хорошо соединяется с динамическим связыванием. С#, однако, не обладает динамическим связыванием и требует дополнительный статический тип для поддержки динамических языков. Это называется динамическим типом, и более детально мы поговорим об этом чуть позже.

Второй слой – это сама динамическая языковая исполнимая среда, которая состоит из трех основных компонентов: древовидные выражения, динамический вызов и точка вызова Caching. Древовидные выражения - это представление кода в виде дерева, что содействует абстрактным языкам в соответствующей форме, на которой может работать DLR.Второй слой – это сама динамическая языковая исполнимая среда, которая состоит из трех основных компонентов: древовидные выражения, динамический вызов и точка вызова Caching. Древовидные выражения - это представление кода в виде дерева, что содействует абстрактным языкам в соответствующей форме, на которой может работать DLR.

Язык скоросшивателей, которые составляют третий слой, это отражающие специфику языка разработки определенных операций, динамической языковой исполнимой среде необходимо понять, о каждом из языков, которые хотели бы участвовать в DLR. Конечно же, DLR является гораздо более объемной, чем можно себе представить из этого краткого обзора. За более подробной информацией о всех ее сложностях, пожалуйста, смотрите Jim Hugunin's PDC рассказ о Dynamic Languages in .NET.