Condividi tramite


Динамические языки программирования (Python, Ruby, JavaScript) и платформа .NET

В комментариях к предыдущим сообщениям (комментарии в блоге на GotDotNet, на MSDN почему-то не пишут - регистрация, наверно, мешает) упоминались динамические языки программирования, такие как Ruby и Python. Поэтому, я думаю, стоит написать несколько слов о том, что они уже поддерживаются на платформе .NET.

Как известно, основной состовляющей платформы .NET является общеязыковая среда выполнения (CLR, Common Language Runtime), унифицирующая взаимодейтсвие между разными языками программирования - CLR задает общую систему типов, стандартные механизмы вызова методов и предоставляет общий набор функциональности. Соответственно, реализация дополнительного языка программирования для .NET не является сложной задачей. Потому то их и было создано огромное количество и оно все еще продолжает расти.

Однако, когда речь зашла о создании .NET компиляторов для динамических языков, выявилась очевидная проблема - .NET и CLR не были предназначены для поддержки динамических языков (слишком уж "расслаблены" ограничения в этих языках - эти языки позволяют определять типы и осуществлять синтаксический анализ на лету). Однако, в последнее время динамические языки привлекают все больше и больше внимания, поскольку позволяют еще быстрее разрабатывать приложения (разумеется, за счет снижения производительности по сравнению с "классическими" языками) и Microsoft, разумеется, адресовал эти требования созданием динамической среды выполнения (Dynamic Language Runtime, DLR). Изначально для DLR был начат проект по разработке компилятора Iron Python и спланирована разработка Ruby и JavaScript, однако сообщество подхватило знамя и начало выпускать свои компиляторы, например для Lua (для .NET портирован как Nua).

Где будут использоваться динамические языки: в Silverlight 1.1 и в грядущих расширениях ASP.NET. Уже сейчас можно посмотреть примеры и попробовать динамические языки в действии.

Пробуйте и делитесь своими впечатлениями. Мы очень ценим ваше мнение!