Re[7]: [PDC, Don Syme] Type providers
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.11.10 09:19
Оценка:
Здравствуйте, DarkGray, Вы писали:

WH>>Дело в том что "обратную задачу" ни кто ни когда не решает.

WH>>Всегда решают только "прямую".

DG>в немерле может и не решают, а в других системах решают.


Дай угадаю — это при генерации кода текстовыми генераторами вроде T4?

Ну, так даже для них есть средства — #pragma line. Неудобно, конечно, но проблему решить можно.
В прочем, текстовая генерация есть текстовая генерация.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: [PDC, Don Syme] Type providers
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.11.10 09:20
Оценка:
Здравствуйте, mrTwister, Вы писали:

VD>>А то, что это как раз то что невозможно положить в обычную библиотеку потому, но слишком специфично чтобы встраивать в язык. По этому ты никогда не увидишь средств автоматизирующих DependencyProperty и INotifyPropertyChange. Меж тем в виде макроса эти проблемы автоматизируются на раз. Вот здесь можно найти пример автоматизации DependencyProperty.


T>Какое это имеет отношение к Type providers?


Дык их тоже можно было бы положить в мако-библиотеку... при наличии макросов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [PDC, Don Syme] Type providers
От: alexeiz  
Дата: 10.11.10 03:29
Оценка:
Здравствуйте, Кэр, Вы писали:

Кэр>Забавно смотреть, как он показывал как он пишет строго-типизированный код к WMI, а потом показывает, как это было бы в старом стиле и для этого использует интеллисенс нового подхода, как подсказку


Битва
Автор: alexeiz
Дата: 18.09.10
с гидрой по имени WMI продолжается! На этот раз в бой брошены функциональные языки. Но сдается мне, что это еще не конец. У гидры на одну отрубленную голову отростает две.
Re[10]: [PDC, Don Syme] Type providers
От: Кэр  
Дата: 16.11.10 01:06
Оценка:
Здравствуйте, WolfHound, Вы писали:

Кэр>>Для интеллисенса и компиляции. Конкретно этот вызов я бы предположил что используется для вызова несуществующих методов/свойств несуществующих типов.

WH>И что это если не кодогенерация?

Что-то другое Я код не генерю и этим процессом не управляю. И очень рад этому факту. Мне реально все равно, как вы называете этот процесс внутри компилятора и почему вам так хочется выделить именно его.

Кэр>>В этом случае — нам не стоит использовать слово "кодогенерация". Ибо это процесс подготовки исходников перед процессом запуски компилятора. А макросы — это один из видов кодогенерации.

WH>Не надо играть словами.
WH>Генерация кода она и есть генерация кода.
WH>А кто и в каком виде этим занимается дело десятое.

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

WH>Кстати если подходить к макросам немерла с твоих позиций то они кодогенерацией не занимаются... ибо с исходником ничего не делают.


Мне довольно все равно как классифицировать макросы Немерле, так как я их не использую.

Кэр>>Код получается слишком гибкий.

WH>Я не знаю что такое слишком гибкий код. Это субъективно.
WH>За то я знаю что такое в 10 раз меньше кода. И это как ни крути объективно.

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

Кэр>>Когда семантика кода при одном и том же синтаксисе начинает очень сильно зависеть от подключенных макросов (а также их версии).

WH>И чем это отличается об библиотеки классов?
WH>Хорошо подумай прежде сем ответить.

Уже ответил выше. Поддержка тулами. Я очень легко могу управлять подключениями библиотек. В случае с макросами возможных side-effect'ов становится в разы больше. В общем случае это большая проблема, потому что резко увеличивает область, которую нужно проверять, когда что-то идет не так.

Кэр>>Мне абсолютно неинтересно смотреть на решения до того, как была сформулирована проблема, которая вроде как решена данным кодом.

WH>Тебя в гугле забанили?

Великолепно, если вы так все задачи ставите и проблемы формулируете — то это мощный подход. Даже обсуждать дальше не буду.

Кэр>>Об этом я писал в абзаце выше, который вы разодрали на цитаты. Я повторю еще раз — мне не жалко. Но вы, я думаю, еще раз меня не услышите. Так вот — прежде чем втирать людям решение, надо показать проблему, которая решается. Это идеально. Это то, чтобы было при переходе от ассемблера к С, от С к С++, от С++ к C#. Менее идеально — показать людям, что проблема есть, а потом показать как она будет решена. Я об этом давно говорил Владу — он меня тоже не услышал.

WH>Ну так мы показываем.
WH>Но они просто игнорируются.

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

Кэр>>И не вижу критичных проблем, которые они должны решить.

WH>Ну да. Сократить код раз в 10 это конечно нихрена не критично.

10 раз взято с потолка. Отсутствии поддержки языка тулами — вот это критично. Были бы достойные причины отказаться от тулов и выиграть в чем-то другом — уже отказывались бы по все миру и использовали Немерле.

Кэр>>И не могу добиться внятного ответа от ведущих макросоводов этого форума. Начинают тыкать кодом на Немерле и кричать как это компактно. Причем каждый пример кода — о каком-то парсинге, о каком-то интеллисенсе, о каких-то грамматиках. Они мне все нафиг не нужны в моей работе.

WH>Проблема в том что я понятия не имею о твоей работе.
WH>И как следствие не могу сказать где ты в своей работе можешь использовать макросы.
WH>Вот тут
Автор: WolfHound
Дата: 26.10.10
я приводил пример ДСЛя который можно сделать для разработки интерактивных ВЕБ приложений.

WH>Но ты сейчас опять скажешь что тебе это не надо.
WH>Мы просто не в состоянии найти примеры для каждого ибо вас очень много.

Ну вот именно. Значит цель и задачи под эту цель надо формулировать по-другому. Найдите проблему, которая хорошо решается с помощью Немерле и которая приносит конкретную пользу, как веб-фреймворк и попытайтесь его продвинуть. Если получится — значит что-то за языком возможно стоит. Если нет — ну что же. Есть много технологий, которые себя не оправдали. Ну или апологетов, которые не оправдали технологию.

Кэр>>Забавный вы. Вы похоже тоже верите, что МС опять обманул весь мир.

WH>Нет.
WH>Я просто понимаю что для огромного числа людей все инструменты на которых не стоит лычка мегакорпорации отстой по определению.

А ну да, да. Все люди идиоты, а Микрософт их всех обманул.

Кэр>>Сделайте язык — который имеет внятную нишу и внятное применение — и будет у вас аудитория.

WH>Так она у нас есть.
WH>И получает существенные преимущества перед конкурентами.

И какова аудитория Немерле? Пальцев на руках хватит, чтобы пересчитать? Его за пределами RSDN никто и не знает по сути.

Кэр>> Посмотрите на пример Ruby.

WH>И что я там должен увидить?

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

Кэр>>А если МС был неправ — то МС подтянется, если сможет.

WH>Не сможет.

Точно. Пора бежать продавать последние акции MS — конец он уже близок.

Кэр>>Если не сможет — МС умрет и кто-то другой будет делать популярные средства разработки.

WH>Этот зомби еще очень долго будет всех пугать.

Фуф. Ну хоть прямо сразу бежать продавать акции не надо.

Кэр>>И никакой теории заговора.

WH>Ты не понял. Я не про заговор. Я про банальную глупость.

Ага, я тоже. Но вы можете тратить свое время как вам будет угодно
Re[11]: [PDC, Don Syme] Type providers
От: WolfHound  
Дата: 16.11.10 11:24
Оценка: +2
Здравствуйте, Кэр, Вы писали:

Кэр>Что-то другое Я код не генерю и этим процессом не управляю.

За то управляет тот кто пишет type provider?

Кэр>И очень рад этому факту. Мне реально все равно, как вы называете этот процесс внутри компилятора и почему вам так хочется выделить именно его.

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

WH>>Кстати если подходить к макросам немерла с твоих позиций то они кодогенерацией не занимаются... ибо с исходником ничего не делают.

Кэр>Мне довольно все равно как классифицировать макросы Немерле, так как я их не использую.
Тем не менее придется это сделать.
Иначе у тебя так и будут проблемы с пониманием того что вокруг тебя происходит.

Кэр>Архиватор еще лучше код жмет. С тем же уровнем объективности.

Но есть момент... заархивированный код читать невозможно, а вот код на немерле читать заметно проще чем код на C#.

Кэр>Поддержку среды разработки,

Автокомплит, навигация, подсветка ошибок, хинты (круче чем в студии), отладка прекрасно работают.

Кэр>плагинов вроде Решарпера, плагинов к самому Решарперу,

А что решарпер для F# уже уже есть?

Кэр>хорошую поддержку компилятора никто не отменял.

Уж точно не хуже чем у F#.

Кэр>Или может вам надо спуститься на грешную землю и понять все-таки кто для вас является целевой аудиторией?

Люди которые не хотят говнокодить в десять раз больше кода чем нужно.

Кэр>Уже ответил выше. Поддержка тулами.

Интеграция немерла прекрасно дружит с макросами.

Кэр>Я очень легко могу управлять подключениями библиотек.

Ну так и макросами можно управлять точно так же.
Сделал using SomeMacroNamespace; получил макру.
Не сделал нет макры.
В чем проблема то?

Кэр>В случае с макросами возможных side-effect'ов становится в разы больше.

Ну так головной мозг при разработке макросов никто не отменял.
А так я тебе рефлекшеном без всяких макросв таких side-effect'ов наделаю что закачаешься.

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

Сказал человек который ни разу в жизни не пользовался макросами.
Есть тут персонажи которые с пеной у рта доказывают что .НЕТ говно по тому что он кучу всего делает без их ведома и это резко увеличивает область которую нужно проверять.
Вот ты выглядишь так же.

Кэр>10 раз взято с потолка.

Возьмем например парсер C# написанный на немерле.
175К ркописного кода и 1.7М кода сгенеренного макросом (для того чтобы по этому коду можно было отладчиком ходить). Причем там генерируется такой код что писать его руками озвереешь.

Я еще когда на С++ писал однажды написал кодогенератор который генерирует примерно столько же кода сколько занимает сам.
Казалось бы в чем смысл?
Но! Учитывая что при малейших изменениях исходных данных весь сгенерированный код существенно менялся плюс в коде была масса волшебных чисел корорые так же пересчитывались я считаю что генератор многократно окупился.

На немерле такие вещи делаются гораздо проще.

Кэр>Отсутствии поддержки языка тулами — вот это критично.

Так есть же интеграция. Но ты ее упорно игнорируешь.

Кэр>Были бы достойные причины отказаться от тулов и выиграть в чем-то другом — уже отказывались бы по все миру и использовали Немерле.

Почитай эту тему.
Автор:
Дата: 11.11.10

Как видешь люди видят выгоды. Понимают риски и готовы их нести ибо инструмент реально мощьный.

Кэр>А ну да, да. Все люди идиоты,

Не все. Но их не мало.

Кэр>а Микрософт их всех обманул.

Никого он не обманывал. Просто большенство людей не думают своей головой, а идут за стадом во главе которого стоит мелкософт.

Кэр>Пример языка, который нашел свою нишу и получил свою аудиторию. То чего не может никак сделать Немерле.

Немерле намного моложе.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: как меня достали видео-выступления...
От: Klatu  
Дата: 02.01.11 08:55
Оценка: +3
Здравствуйте, Кэр, Вы писали:

А можно в нескольких словах описать в чем идея? Не переношу видео-лекции
Re[2]: как меня достали видео-выступления...
От: novitk США  
Дата: 03.01.11 04:39
Оценка: 6 (1)
Здравствуйте, Klatu, Вы писали:
K>А можно в нескольких словах описать в чем идея? Не переношу видео-лекции
Запихали кодогенераторы для объектных моделей внешних данных в плагины к компилятору. Не ожидал такой скукоты от Дона.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.