Nemerle Deep Dive (Владислав Чистяков, ADD-2011)

Материал из CustisWiki

Версия от 20:40, 14 июня 2011; StasFomin (обсуждение | вклад) (Примечания и отзывы)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

Аннотация

Технический редактор журнала RSDN Magazine. Ведущий программист проекта Nemerle.

Докладчик
Владислав Чистяков

Рассказ о новом языке программирования для .Net - Nemerle. Возможности языка. Отличия от других языков. Отдельное место будет уделено макро-системе.

  • Рассказ о языке
    • Ядро языка.
    • Вывод типов.
    • Мимикрия под C# в области поддержки ООП.
      • Поддержка функционального программирования.
      • Функции как первоклассные значения.
      • Алгебраические типы.
      • Сопоставление с образцом.
    • Макросы: Что такое? С чем едят? Как сочетаются с IDE и прочими .технологиями? Сложности разработки, отладки, сопровождения. Развенчание мифов.
    • Ограничения версии 1.0.
    • Что будет в Nemerle 2.0?
  • Примеры практического использования макросов:
  • Прикладные макро-библиотеки.
    • Nemerle.Xml - XML-литералы.
    • Nemerle.Peg - быстрый и гибкий генератор парсеров шаговой доступности.
    • ComputationExpressions.
      • Асинхронное программирование.
      • yield внутри выражения.
      • другие применения.
    • Nemerle on Rails - миграции, автоматизация формирования ViewModel, движок рендеренга HTML "Spark".
    • Nemerle.WUI.Reactive - реактивный Web-интерфейс на основе статически типизированного языка вместо скриптов.
  • Мелкие полезняшки:
    • Автоматизация реализации зависимых свойств в WPF.
    • Record - автоматизация создания конструкторов.
    • Автоматизация паттернов проектирования ООП (Abstract factory, Aggregate, Proxy, Singleton).
    • late - позднее связывание.
    • Surroundwith - создание аналогов using и lock в мгновение ока.
    • Memoize.
    • $-строки.
    • assertions.
    • ListComprehension.
    • regexp match.
    • StructuralEquality.
    • LexicographicCompareTo.
    • StructuralHashCode.
    • и многое другое.

Видео

Видео в HD-качестве, смотрите в полноэкранном режиме.

HTML-код включения <iframe src="http://player.vimeo.com/video/24508454?byline=0&portrait=0" width="720" height="405" frameborder="0"></iframe>

Скачать
http://ftp.linux.kiev.ua/pub/conference/peers/addconf/2011/2a5-nemerle-intro-tchistyakov.avs.avi

Видео в HD-качестве, смотрите в полноэкранном режиме.

HTML-код включения <iframe src="http://player.vimeo.com/video/25040935?byline=0&portrait=0" width="720" height="405" frameborder="0"></iframe>

Скачать
http://ftp.linux.kiev.ua/pub/conference/peers/addconf/2011/2c6-nemerle-deep-dive-tchistyakov-p1.avs.avi

Видео в HD-качестве, смотрите в полноэкранном режиме.

HTML-код включения <iframe src="http://player.vimeo.com/video/25040959?byline=0&portrait=0" width="720" height="405" frameborder="0"></iframe>

Скачать
http://ftp.linux.kiev.ua/pub/conference/peers/addconf/2011/2c6-nemerle-deep-dive-tchistyakov-p2.avs.avi


Примечания и отзывы

Дальше был отличный доклад Владислава "VladD2" Чистякова, тех. редактора журнала RSDN и по совместительству, главного нынешнего разработчика языка Nemerle. Доклад сам был хорош - единственное замечание по существу - ощущение такое, что аудитория не тянула уровень доклада, и докладчик это в общем понимал, из-за чего перескакивал со слайда на слайд, уходил в разъяснение каких-то деталей и прочее. Но, повторюсь - лично мне было очень интересно. ©

Я давно краем уха слышал про такой язык как Nemerle, но не был с ним знаком. Поэтому я решил исправить это упущение и, взяв снаряжение, погрузился в доклад Владислава Чистякова (RSDN Magazine) c названием «Nemerle Deep Dive». Влад рассказывал про возможности языка, про макросы – то, благодаря чему доступно большинство возможностей языка. Понравилась то, как был подан материал: на первом докладе было рассказано про основы языка – ядро, типы, поддерживаемые парадигмы, что такое макросы и с чем их едят. Затем целых два доклада подряд, которые проходили в секции C, были посвящены практическому применению возможностей языка с примерами кода в Visual Studio. Можно долго рассказывать про то, какими крутыми возможностями обладает язык но понятнее от этого не станет. Но стоит привести несколько примеров кода, как сразу понимаешь, какая огромная сила заложена в этот язык. В общем, взял на заметку, обязательно ознакомлюсь с Nemerle поближе. Владу большое спасибо за интересный доклад, узнал много нового.

©

У нас в CustIS на Alt.Net не был, так что решил послушать.

Как только услышал слово макрОс, сразу начал думать как это отлаживать. Спросить у докладчика как-то не успел, а на продолжение не пошел. Я лично не очень заинтересовался проектом, если уж смотреть на функциональщину — надо смотреть на поддерживаемый Микрософтом F# и его взаимодействие с C# там где нужно ООП. Смысла вкладываться во что-то еще не увидел.

  • Nemerle Deep Dive (Владислав Чистяков, ADD-2011)

Думал узнать что-то новое сверх семинара ALT.NET, но, к сожалению, процесс пошел еще медленнее, чем у нас.

Докладчик — ведущий программист проекта Nemerle Владислав Чистяков.

Доклад длился 3 часа, но, по-моему, почти всё, что было прочитано и показано на 2х последних докладах — специфика разработки, интересная тем, кто уже программирует на Nemerle. По словам докладчика, Nemerle — гибридный язык, отчасти императивный, отчасти функциональный, отчасти метаязык, расширяемый с помощью макросов. Создан как язык, на который несложно перейти программистам, разрабатывающим приложения на C#.

Ядро языка

Типы: C# и ML.

Выражения: ML

Операторы: C (C#)

Макросы: LISP

Поддерживается indent-стиль кодирования.

Макросы языка служат для:

  • Создания встроенного DSL
  • Расширения языка
  • Автоматизации программирования
  • Контроля за кодом

Существующие макро-библиотеки:

  • Computation Expressions
    • Yield
    • Асинхронное программирование
  • Xml-литералы (Nemerle.Xml)
  • Nemerle.Peg — быстрый парсер
  • Nemerle.Web.Reactive — расширения для создания web-приложений (c поддержкой MVVM)
  • Nemerle.Rails

Расширения:

  • Автоматическая реализация Dependency Properties в WPF
  • Record — автоматическое создание конструкторов
  • Автоматизация паттернов проектирования ООП (abstract factory, aggregate, proxy, singleton)
  • Позднее связывание (?)
  • Surround with
  • Lisp comprehensions
  • Regexp math

Во второй части автор рассказал про тип variant — аналог union в C. Основную часть оставшегося времени подробно рассказал про pattern matching — технологию, которая позволяет, если я правильно понял, реализовать двойную диспетчеризацию. Язык интересный, но неясны перспективы развития (поддерживается де-факто сообществом, но что будет завтра — непонятно). Вероятно, поэтому ничего не слышно про применение Nemerle в коммерческих проектах. По словам автора, язык будет развиваться. Посмотрим.


Призыв к зрителям!

Мы призываем всех зрителей видеозаписей докладов давать хоть какой-нибудь, желательно конструктивный feedback.

Где? — неважно. В блогах, в форумах, в комментах — пофиг, лишь бы можно было найти, например, поиском по блогам, по ключевому слову «ADD-2011» (ну и/или по названию доклада).

Что-то побольше твиттер-вскрика, хотя бы пару абзацев. Да, иногда краткая характеристика бывает достаточной («маркетинговый булшит», «унылый самопиар» — обычно в адрес «спонсорских докладов»), но это очень, очень редко, а так хочется прочитать что-то большее, чем «сижу на XXX, говорят о YYY».

Что писать? Что хорошо, что плохо («плохо» неудачное слово, скажем, «неправильно на ваш взгляд»), как вы поняли то, что рассказано, как это спроецировалось конкретно на вас — все это фантастически важно и полезно:

  • Другим потенциальным зрителям (смотреть/не смотреть, «правильно ли я понял»).
  • И докладчикам:
    • «Правильно ли меня поняли»,
    • «Что я делал правильно, а что улучшить»
    • Даже критический отзыв лучше, чем никакого!
    • Плюс — это мотивация, это награда за немалый труд многие готовятся долго, раскрывают свой опыт, старательно делают слайды, репетируют выступление — и ради чего? двадцать минут театра перед парой десятков зритетелей и все?
  • Организаторам конференций (этой и других) — они внимательно следят за отзывами, и пытаются понять, кого имеет смысл звать («рубит фишку и жжет!»), а к кому отнестись скептически, и если брать, то, например, «прокачать в части выступлений» — мы, например, старались это делать, итеративно рецензировали слайды, рассылали подборку литературы о правильных слайдах и искусстве выступлений.
  • Безотносительно лично докладчиков — важно понять, исчерпала себя тема или для народа еще остаются откровениями то, что для более пресыщенных инфопотоками людей (а организаторы обычно такие) уже выглядит как «аццкий боян». Ну и вообще — что еще интересно, и что было бы интересно услышать-увидеть-пообщаться на тему о…
  • Ну и кстати, мне тоже важно — вообще имел ли смысл весь этот сыр-бор с сьемкой, видеомонтажем и обработкой и публикацией (это, вообще-то дорогая работа, расценки профессионалов в этой области весьма недетские, при том, что до этого уровня монтажа им, как правило очень далеко), или кроме участников конференции эти темы никому не интересны. Может есть какие-то косяки в видео? или предложения как сделать лучше? — связывайтесь со мной, возможно это можно будет исправить (или хотя бы вырезать). Это кстати относится и к докладчикам — если есть какие-то позорные неудачные моменты, или что-то не нравится — это можно убрать.


Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».


Репликация: База Знаний «Заказных Информ Систем» → «Nemerle Deep Dive (Владислав Чистяков, ADD-2011)»