Доклад Влада на altnet
От: Ziaw Россия  
Дата: 01.04.11 04:28
Оценка:
Судя по твиттеру вызвал бурные положительные эмоции, Влад молодец. Расскажите плиз, что было тем, кто далеко от столицы?
Re: Доклад Влада на altnet
От: alvas  
Дата: 01.04.11 07:02
Оценка: +2
Здравствуйте, Ziaw, Вы писали:

Z>Судя по твиттеру вызвал бурные положительные эмоции, Влад молодец. Расскажите плиз, что было тем, кто далеко от столицы?


Было бы неплохо выложить доклад в интернет
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re: Доклад Влада на altnet
От: MxMsk Португалия  
Дата: 01.04.11 07:08
Оценка: 6 (2) +1 :)
Здравствуйте, Ziaw, Вы писали:

Z>Судя по твиттеру вызвал бурные положительные эмоции, Влад молодец. Расскажите плиз, что было тем, кто далеко от столицы?

А было вот что. Подхожу я к бюро пропусков, протягиваю документ. А мне теточка отвечает:
— Вас нет в списке
— Как нет?
— Нет и всё. Есть какой-то Марат, но фамилия другая.
Тут подходит Влад и предлагает пропустить его, а меня типа как сопровождаюшего... Не тут то было!
— Вас тоже нет в списке
— Как нет, я докладчик! — восклицает Влад — Хотя я и не регистрировался — "чешет репу".
— Ничего не знаю, звоните в организацию...
Влад набирает номер. В это время выясняется, что теточка смотрела то ли в список другой организации, то ли не заметила там других листочков.

Таких офисных зданий я еще не встречал. Подходишь в двери — пикаешь пропуском. Открывается мощная дверь, проходишь внутрь, перед тобой другая такая же дверь. Та дверь, в которую вошел, закрывается и ты оказываешься в некотором тамбуре с окошечком охраны. Отдаешь охраннику пропуск, и он открывает следующую дверь. Слава Богу, быструю сортировку написать не просят. Дальше, пока шел по коридорам, обратил внимание на камеры. Забавно, что в этот день я делился с коллегами, как было бы интересно побродить по зданиям на Лубянке. Понял, что надо с осторожностью относится к своим желаниям.

В аудитории было человек 60-80. И даже несколько девушек. Влад оказался таким, каким я его и представлял. На стенке были прикреплены два экрана — на них выводилась одинаковая картинка с ноута, на котором колдовал докладчик.

Начали с беглого сравнения простого кода на C# и Nemerle, после чего Влад представил публике всем известного форумчанина-Немерлиста-СиШарпПарсероПисателя hardcase-а. Потом перешли к выводу типов. Тут народ начал развлекаться, закидывая Влада всякими заковыристыми вопросами, типа "а как поведет себя компилятор, если сюда подставить не то, что нужно". Потом пошло обсуждение особенностей языка типа def, операторов, именованных блоков. Аудиторию очень заинтересовала возможность присвоить переменной некоторое выражение. Пытливые умы довели все это до возможности использования конструкций типа:
def a = throw Exception() : int;
WriteLine(a);

или совсем хардкорной
def a = 1 + (throw Exception() : int);
WriteLine(a);

В синтаксисе наверняка ошибся, но суть надеюсь ясна. Все дружно решили, что это очень круто, но коллег за такое поубивали бы

Далее, быстро поговорили про алгебраические типы и паттерн-матчинг. Надо сказать, я очень проникся этими фичами. Дело в том, что мы в проекте на C# реализовали нечто подобное на хэш-таблицах, где ключами выступали типы объектов. Понятно, что это был лишь узкоспециализированный аналог, да и цели повторить паттерн-матчинг не было. Важно другое. Увидев, как бы легко мы могли это выразить на Nemerle, я прямо слюной изошел. Надеюсь, что удастся выбить у руководство времени на эксперименты с Nemerle в данном участке кода.

Потом бы перерывчик. Поели плюшки, попили чаек. Во второй части Влад рассказал про макросы. Сколько не пробовал въехать в них, читая статьи на сайте — не получалось. А вот вживую, на простых примерах, сразу осознал, что фича мощная. Но опасная. Но мощная. В-общем, начинающим такое лучше в руки не давать. И решать вопросы написания нового макроса нужно очень ответственно.

А потом, я ушел, т.к. было уже поздновато
Впечатления положительные. Организация на уровне — было вполне уютно. Владу только нужно меньше отвлекаться от сути доклада, а то он слишком затягивается.
Re[2]: Доклад Влада на altnet
От: VoidEx  
Дата: 01.04.11 09:13
Оценка: :)
Здравствуйте, MxMsk, Вы писали:


MM>
MM>def a = throw Exception() : int;
MM>WriteLine(a);
MM>

MM>или совсем хардкорной
MM>
MM>def a = 1 + (throw Exception() : int);
MM>WriteLine(a);
MM>

MM>В синтаксисе наверняка ошибся, но суть надеюсь ясна. Все дружно решили, что это очень круто, но коллег за такое поубивали бы

Ух ты, это что это у них, монады или ленивость неявные появились? Куда строгость делась, нелогично как-то. Тип же int, а вычисление не проиведено.
Re[2]: Доклад Влада на altnet
От: MxMsk Португалия  
Дата: 01.04.11 09:25
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, Ziaw, Вы писали:

Чем я заслужил минус
Re[2]: Доклад Влада на altnet
От: Аноним  
Дата: 01.04.11 10:29
Оценка: 18 (2) :)))
Доклад действительно произвел очень положительное впечатление. Понравился и сам докладчик (в хорошем смысле слова), и язык, и то, как сделана интеграция со студией. Т.к. я сам пытался писать интеграцию со студией перед тем, как полностью перешел на программирование в молескине, мне осталось только подивиться трудолюбию и самоотверженности небольшого коллектива разработчиков Nemerle, жертвующих своим бесценным временем в угоду средств закабаления программистов.

Выражения вроде def a = 1 + (throw Exception() : int); также произвели хорошее впечатление о дизайне языка. Ведь помимо глубокого практического смысла, их наличие говорит о том, что за богомерзким сишарпоподобным синтаксисом скрывается вполне стройная система типов, в которой присутствует ЖОПА (http://en.wikipedia.org/wiki/Bottom_type), представленная полиморфным типом самого выражения throw <..>, что, несомненно, делает Nemerle ближе к языкам, созданным для нормальных людей вроде физиков и математиков, а не для специально выведенного подвида homo stultus, называемого программистами.

К сожалению монад и ленивости в Nemerle нет, поэтому если в Вашей компании еще остались разработчики, пишущие никому не нужные юнит-тесты, вполне корректное выражение def a = 1 + (throw Exception() : int), как и положено редуцирующееся в жопу, может не пройти неправильно написанный юнит-тест. Как вариант — можно либо заставить наконец тестера писать что-нибудь полезное, либо добавить монады и ленивостью самостоятельно, посредством мáкросодомии. Или макрóсодомии (не знаю как ударение правильно ставить). Попутно на макрóсах (это такие специальные мáкросы http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BA%D1%80%D0%BE%D1%81 в Nemerle) можно реализовать strictness analysis для свежедобавленной ленивости, stream fusion, lambda lifting и остальные 48 мб GHC, что, несомненно, и стоит сделать к выпуску новой версии Nemerle.
Re[3]: Доклад Влада на altnet
От: _FRED_ Черногория
Дата: 01.04.11 10:37
Оценка: :)
Здравствуйте, MxMsk, Вы писали:

MM>>Здравствуйте, Ziaw, Вы писали:

MM>Чем я заслужил минус

Ушёл, видимо, слишком рано, самое интересное, наверное, пропустил и не сумел рассказать
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Доклад Влада на altnet
От: hardcase Пират http://nemerle.org
Дата: 01.04.11 11:40
Оценка: +2
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, MxMsk, Вы писали:


MM>>Здравствуйте, Ziaw, Вы писали:

MM>Чем я заслужил минус

Штото забавное с системой рейтингов сегодня творится... Первое апреля сказывается
/* иЗвиНите зА неРовнЫй поЧерК */
Re[3]: Доклад Влада на altnet
От: Ziaw Россия  
Дата: 01.04.11 13:21
Оценка:
MM>>Здравствуйте, Ziaw, Вы писали:
MM>Чем я заслужил минус

Мало написал Вообще я ставил "Интересно", это рсдн балует сегодня.
Re: Доклад Влада на altnet
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.04.11 16:26
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Судя по твиттеру вызвал бурные положительные эмоции, Влад молодец. Расскажите плиз, что было тем, кто далеко от столицы?


Почти ничего такого, что ты бы не знал (т.е. не смог узнать сам).

Доклад затянулся потому, что бравые орлы сидящие в зале начали, с моей помощью, экспериментировать с языком. Особо долго экспериментировали с выводом типов. Пытались "завалить" типизатор разными каверзными выражениями типа:
def a = throw Exception();
def a = 1 + throw Exception();

и т.п.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Доклад Влада на altnet
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.04.11 16:47
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>...про макросы. ... фича мощная. Но опасная. Но мощная.


Одним из пунктов доклада был "Развенчание мифов". К сожалению на него ни сил, ни времени не хватило. А жаль. Потому как точно так же думают многие, а это заблуждение.

Все очень просто Макросы — это код. Да — не простой (сложный) код. Но все же просто код. По этому как и любой другой код он может быть написан, оттерсирован и проверен на практике.

Применение качественного макроса не более опасно нежели применение качественной библиотеки или фичи языка.

Таким образом, макросы ни чуть не опасны. Просто не каждому их дано писать. Те кто их создают должны быть подготовленными специалистами и должны понимать что и зачем они делают. У них должна быть ответственность за свой труд. Они должны понимать в тестировании.

Но это так с любым важным аспктом разработки. Вы же не посадите разрабатывать архитектуру сложного приложения новичка или индуса (по духу)?

В-общем, начинающим такое лучше в руки не давать. И решать вопросы написания нового макроса нужно очень ответственно.

Мне кажется, что эти слова применимы к любой стадии разработки ПО. Ведь ламерский код легко может превратиться в бомбу замедленного действия которая обрушит весь проект.

MM>Впечатления положительные. Организация на уровне — было вполне уютно. Владу только нужно меньше отвлекаться от сути доклада, а то он слишком затягивается.


Из минусов я бы выделил, пожалуй, недостаток кислорода в помещении. Когда 4 часа к ряду говоришь в душном помещении, то мысли начинают путаться, а голова деревенеть.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Доклад Влада на altnet
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.04.11 16:49
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>Ух ты, это что это у них, монады или ленивость неявные появились? Куда строгость делась, нелогично как-то. Тип же int, а вычисление не проиведено.


Зачем тут ленивость? Исключение предотвращает любую возможность продолжения вычислений. Так что ленивые они или нет уже не важно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Доклад Влада на altnet
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.04.11 17:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>К сожалению монад и ленивости в Nemerle нет, поэтому


Вот те раз! Пол часа рассказывал о ComputationExpressions и раз двадцать повторил, что они основаны на монадах, но до многих эта мысль так и не смогла дойти.

Монада — это не более чем паттерн функционального программирования. Чтобы использовать их в языке нужно лишь наличие функций высшего порядка.

Поддержка же монад языком — это не более чем синтаксический сахар скрывающих ненужные детали. Может быть для какого-то другого языка этот сахар и нужно зашивать в синтаксис языка (не будем говорить каких, но это были F# и Haskell), но для Nemerle в этом нет никакой необходимости, так как есть макросы. С их помощью создать этот самый сахар не составляет особого труда. Именно таким сахаром и является указанные выше ComputationExpressions. В прочем, форма может быть разной.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Доклад Влада на altnet
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.04.11 17:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Доклад действительно произвел очень положительное впечатление. Понравился и сам докладчик (в хорошем смысле слова), и язык, и то, как сделана интеграция со студией. Т.к. я сам пытался писать интеграцию со студией перед тем, как полностью перешел на программирование в молескине, мне осталось только подивиться трудолюбию и самоотверженности небольшого коллектива разработчиков Nemerle, жертвующих своим бесценным временем в угоду средств закабаления программистов.


А>Выражения вроде def a = 1 + (throw Exception() : int); также произвели хорошее впечатление о дизайне языка. Ведь помимо глубокого практического смысла, их наличие говорит о том, что за богомерзким сишарпоподобным синтаксисом скрывается вполне стройная система типов, в которой присутствует ЖОПА (http://en.wikipedia.org/wiki/Bottom_type), представленная полиморфным типом самого выражения throw <..>, что, несомненно, делает Nemerle ближе к языкам, созданным для нормальных людей вроде физиков и математиков, а не для специально выведенного подвида homo stultus, называемого программистами.


А>Попутно на макрóсах (это такие специальные мáкросы http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BA%D1%80%D0%BE%D1%81 в Nemerle) можно реализовать strictness analysis для свежедобавленной ленивости, stream fusion, lambda lifting и остальные 48 мб GHC, что, несомненно, и стоит сделать к выпуску новой версии Nemerle.


Макросы не пригодны для изменения системы типов. Более того система типов должны уживаться с системой типов дотнета, а она далека от идеала, ведь ее проектировали под императивный язык — C#.

Но лично я не против расширений, если эти расширения не будут менять основную семантику языка, а просто предоставят некие новые возможности которые будут опциональными. При этом должен соблюдаться принцип — не платим за то что не используем (декларируемый в С++).

Так что если есть желание, сейчас самое время примкнуть к разработке Н2 и сделать его систему типов более совершенной.

Для этого нужны специалисты хорошо понимающие данную тему. Если Вы один из них, и не боитесь сложной и объемной работы, то милости просим.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Доклад Влада на altnet
От: Ka3a4oK  
Дата: 02.04.11 07:34
Оценка: 1 (1) +1
Доставьте видео и фото с доклада.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re[3]: Доклад Влада на altnet
От: adontz Грузия http://adontz.wordpress.com/
Дата: 02.04.11 08:25
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Применение качественного макроса не более опасно нежели применение качественной библиотеки или фичи языка.


Влад, а кто с этим спорит-то? Ты до сих пор не понял, что библиотеки и фичи языка тоже могут быть опасны. У меня, например, есть прокты в которых, по принчициальным соображениям (потребитель — идиот), нет Linq запросов, нет var объявлений.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Доклад Влада на altnet
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.04.11 21:50
Оценка:
Здравствуйте, adontz, Вы писали:

VD>>Применение качественного макроса не более опасно нежели применение качественной библиотеки или фичи языка.


A>Влад, а кто с этим спорит-то?


Создается впечатление, что большая часть тех кто берется судить о макросах и при этом не удосужились изучить то что они обсуждают.

A>Ты до сих пор не понял, что библиотеки и фичи языка тоже могут быть опасны.


Ты меня ни с кем не путаешь? Я как раз и говорю, что в данном вопросе они аналогичны.

A>У меня, например, есть прокты в которых, по принчициальным соображениям (потребитель — идиот), нет Linq запросов, нет var объявлений.


Ну, так тебе давно пора на Немерл пересаживаться. В нем линк отключается банальным отключением одной длл-и.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Доклад Влада на altnet
От: adontz Грузия http://adontz.wordpress.com/
Дата: 02.04.11 22:28
Оценка:
Здравствуйте, VladD2, Вы писали:

A>>Ты до сих пор не понял, что библиотеки и фичи языка тоже могут быть опасны.

VD>Ты меня ни с кем не путаешь? Я как раз и говорю, что в данном вопросе они аналогичны.

Нет, ты говоришь что-то типа "Ну вы же не боитесь библиотек, чего вы макросов-то боитесь?". А мы боимся библиотек
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Доклад Влада на altnet
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.04.11 22:37
Оценка:
Здравствуйте, adontz, Вы писали:

A>Нет, ты говоришь что-то типа "Ну вы же не боитесь библиотек, чего вы макросов-то боитесь?". А мы боимся библиотек


Я говорю о странной предвзятости к макросам. То что ты боишься библиотек не препятствует их использовать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Доклад Влада на altnet
От: adontz Грузия http://adontz.wordpress.com/
Дата: 02.04.11 22:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я говорю о странной предвзятости к макросам. То что ты боишься библиотек не препятствует их использовать.


Не поверите господа, использую и плачу.
A journey of a thousand miles must begin with a single step © Lau Tsu
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.