Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 19:10
Оценка: 83 (9) +1
Дисклеймер:
1) Все сказанное ниже это мое личное мнение в моих конкретных условиях. На истину я не претендую.
2) Все сказанное относится только и исключительно к промышленному программированию в составе команд с размером > 3 человек и состоящих не исключительно из топа разрабочиков.
3) Попытки обсудить меня лично, мою квалификацию, опыт или мое психическое и психологическое состояние, а так же прочие медицинские и моральные вопросы, аутоматично приводят к тому, что попытавшиеся товарищи идут в лес.

Итак, сабж.
1) На практике я наблюдаю, что даже новые стандартные фичи языка используются очень и очень неспешно и с неохотой. Даже итераторы, которые еще в 2004 году появились, у многих вызывают изумление. Исходя из этого, я считаю, что серьезные изменения в самом языке, заточенные под конкретный проект, в промышленном программировании в большинстве случаев неприемлемы. И только в очень больших платформах, там где сейчас применяются собственные языки программирования, внесение изменений в язык на уровне платформы может быть оправдано.
При этом, обращаю внимание, ничего против того, чтобы использовать идеологию Немерле для построения собственно языка под конкретный стандарт я не имею. Т.е. суть не в конкретной технологии, а в области ее использования.
Итого — внесение изменений в компилятор для улучшения языка лично для меня с точки зрения промышленного программирования малополезно (при этом побаловаться для проектов, рассчитаных на одну-две хари фо фан я как бы и не против).
2) Еще одна сфера применения МП — создание DSL. И здесь есть имеем другую проблему — основной смысл применения DSL в моем случае — не расширение возможностей существующих языков, а наоборот, их сужение и жесткое ограничение заданными рамками. Для того чтобы минимизировать спектр возможных проблем и объем знаний, требуемх для использования. И для этого, как мне видится, хоть Nemerle и можно использовать, но подходит он для этих целей не очень, потому что даже его база весьма и весьма функциональна, хоть и маленькая совсем, а написание кода, проверяющего, нет ли чего лишнего в AST, очень непростая задача.
Короче, идеология, применяемая в MPS, DSL Tools, Oslo для этой задачи представляется мне более подходящей.
3) Следующая сфера применения кодогенерации (язык не поворачивается назвать это метапрограммированием) — визарды в средах разработки, которые генерируют первоначальный код. Не очень представляю, как тут может помочь Немерле, да и использование специального языка тут явно перебор.
4) Генерация кода на основе DSL. Пример такого применения — DSL Tools. Вот здесь, в принципе, отчасти использование Немерле оправдано. Но есть тут одна засада. Дело в том, что разработка кодогенератора (любого, в том числе и по AST, с применением квазицитирования, паттерн-матчинга и алгебраических типов данных) нередко значительно сложнее, нежели написание генерируемого кода. И при поддержке, далеко не факт, что правка кодогенератора проще, чем модификация рукопашного кода при помощи современных средств рефакторинга.
5) Последний момент, который я хотел обсудить — это АОП, или даже, в более широком смысле, инструментирование и ускорение кода. Я понимаю, что ситуации могут быть разными, и наверное тот же BLToolkit выиграет от портирования на Немерле. Но вот в моих задачах сей процесс нужно проводить не при компиляции, а в момент деплоймента. Поясню: инструментируемый код представлен в виде бинарников и я не имею права требовать перекомпиляции прикладного кода, если у меня вдруг произошли изменения в сервере, которые требуют генерируемый код изменить. Соответственно, compile time техники Немерле тут совсем не подходят, просто потому что никаких исходников, которые Немерле будет компилировыать, нет.

P.S. Еще раз, если кто то в корне со мной не согласен, прежде чем бросаться писать возмущенный ответ и разгромить меня в пух и прах, обратите внимание на наличие и содержание дисклеймера.
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re: Что меня не устраивает в МП в Nemerle
От: Lloyd Россия  
Дата: 25.12.08 20:37
Оценка: -1 :)
Здравствуйте, AndrewVK, Вы писали:

AVK>Итак, сабж.

AVK>...

Целиком и полностью поддерживаю по всем пунктам!
Re: Что меня не устраивает в МП в Nemerle
От: Константин Л. Турция  
Дата: 25.12.08 21:12
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Дисклеймер:

AVK>1) Все сказанное ниже это мое личное мнение в моих конкретных условиях. На истину я не претендую.
AVK>2) Все сказанное относится только и исключительно к промышленному программированию в составе команд с размером > 3 человек и состоящих не исключительно из топа разрабочиков.
AVK>3) Попытки обсудить меня лично, мою квалификацию, опыт или мое психическое и психологическое состояние, а так же прочие медицинские и моральные вопросы, аутоматично приводят к тому, что попытавшиеся товарищи идут в лес.

AVK>Итак, сабж.

AVK>1) На практике я наблюдаю, что даже новые стандартные фичи языка используются очень и очень неспешно и с неохотой. Даже итераторы, которые еще в 2004 году появились, у многих вызывают изумление. Исходя из этого, я считаю, что серьезные изменения в самом языке, заточенные под конкретный проект, в промышленном программировании в большинстве случаев неприемлемы. И только в очень больших платформах, там где сейчас применяются собственные языки программирования, внесение изменений в язык на уровне платформы может быть оправдано.

можно разобью на 2?

1. новые фичи осваиваются неохотно
2. для пром. девелопмента лучше следовать стандартам, вольности неоправданы

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

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

AVK>Итого — внесение изменений в компилятор для улучшения языка лично для меня с точки зрения промышленного программирования малополезно (при этом побаловаться для проектов, рассчитаных на одну-две хари фо фан я как бы и не против).
AVK>2) Еще одна сфера применения МП — создание DSL. И здесь есть имеем другую проблему — основной смысл применения DSL в моем случае — не расширение возможностей существующих языков, а наоборот, их сужение и жесткое ограничение заданными рамками. Для того чтобы минимизировать спектр возможных проблем и объем знаний, требуемх для использования. И для этого, как мне видится, хоть Nemerle и можно использовать, но подходит он для этих целей не очень, потому что даже его база весьма и весьма функциональна, хоть и маленькая совсем, а написание кода, проверяющего, нет ли чего лишнего в AST, очень непростая задача.
AVK>Короче, идеология, применяемая в MPS, DSL Tools, Oslo для этой задачи представляется мне более подходящей.

пожалуй, но у немерле есть 2 преимущества: отсутствие интеропа, и компиляция, а не интерпретация, чем занимается большинство dsl (разве нет?).

AVK>3) Следующая сфера применения кодогенерации (язык не поворачивается назвать это метапрограммированием) — визарды в средах разработки, которые генерируют первоначальный код. Не очень представляю, как тут может помочь Немерле, да и использование специального языка тут явно перебор.


а что делать, если генерировать код нужно для имеющихся типов, дополняя их?

AVK>4) Генерация кода на основе DSL. Пример такого применения — DSL Tools. Вот здесь, в принципе, отчасти использование Немерле оправдано. Но есть тут одна засада. Дело в том, что разработка кодогенератора (любого, в том числе и по AST, с применением квазицитирования, паттерн-матчинга и алгебраических типов данных) нередко значительно сложнее, нежели написание генерируемого кода. И при поддержке, далеко не факт, что правка кодогенератора проще, чем модификация рукопашного кода при помощи современных средств рефакторинга.


не знаком с DSL Tools, так что тут промолчу

AVK>5) Последний момент, который я хотел обсудить — это АОП, или даже, в более широком смысле, инструментирование и ускорение кода. Я понимаю, что ситуации могут быть разными, и наверное тот же BLToolkit выиграет от портирования на Немерле. Но вот в моих задачах сей процесс нужно проводить не при компиляции, а в момент деплоймента. Поясню: инструментируемый код представлен в виде бинарников и я не имею права требовать перекомпиляции прикладного кода, если у меня вдруг произошли изменения в сервере, которые требуют генерируемый код изменить. Соответственно, compile time техники Немерле тут совсем не подходят, просто потому что никаких исходников, которые Немерле будет компилировыать, нет.


AVK>P.S. Еще раз, если кто то в корне со мной не согласен, прежде чем бросаться писать возмущенный ответ и разгромить меня в пух и прах, обратите внимание на наличие и содержание дисклеймера.
Re: Что меня не устраивает в МП в Nemerle
От: alvas  
Дата: 25.12.08 21:22
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Что подразумевается под словами "в моих задачах"? Из теста видно что это

Все сказанное относится только и исключительно к промышленному программированию в составе команд с размером > 3 человек и состоящих не исключительно из топа разрабочиков.


Я правильно понял?
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[2]: Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 21:30
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>1. новые фичи осваиваются неохотно


Скажем так, это стоит дополнительных денег.

КЛ>2. для пром. девелопмента лучше следовать стандартам, вольности неоправданы


Не очень понятно, если честно. При чем тут вольности? Выглядит как какая то эмпирика, а не истинная причина.

КЛ>соглашусь частично только со 2м, тк если отталкиваться от п.1, то прогресс нафиг не нужен.


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

КЛ>макросы действительно хорошая штука, чтобы превратить код в кошмар. но я видел, как это делали используя обычные языки через жопу.


Я ничего нигде не говорил о возможности превращения кода в жопу, это все очень субъективно. Дело не в этом.

AVK>>Короче, идеология, применяемая в MPS, DSL Tools, Oslo для этой задачи представляется мне более подходящей.


КЛ>пожалуй, но у немерле есть 2 преимущества: отсутствие интеропа


Ммм, а где в вышеприведенных технологиях интероп?

КЛ>, и компиляция, а не интерпретация, чем занимается большинство dsl (разве нет?).


Бывает ну очень по разному, и компиляция, и интерпретация, и вообще отсутствие выполнения в традиционном смысле. Тут надо понимать, что понятие DSL может быть очень широким, не обязательно это императивный универсальный язык. DSL Tools, к примеру, создает графические декларативные DSL (в качестве примера — редакторы Linq2SQL и EF объектов, редакторы UML в VS2010).
Если же наш DSL это универсальный текстовый язык описания алгоритмов с широким спектром возможностей, просто подрихтованый для специфических задач, то да, Nemerle-подобные технологии в подобном разрезе вполне интересны.

КЛ>а что делать, если генерировать код нужно для имеющихся типов, дополняя их?


В случае C# есть partial types и partial methods. Визарды не предназначены для повторных вызовов, если такое требуется, то это уже п.1.

КЛ>не знаком с DSL Tools, так что тут промолчу


Да дело то не в DSL Tools, а в создании генераторов сложных алгоритмов по простому описанию — генераторы моделей, парсеров и т.п.
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[2]: Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 21:39
Оценка:
Здравствуйте, alvas, Вы писали:

A>Что подразумевается под словами "в моих задачах"?


Хм, по моему это вполне по русски. Подразумевается, что речь идет о тех задачах, с которыми сталкивался и сталкиваюсь именно я, и на глобальные обобщения на всю софтописательную индустрию и тенденции ее развития я не претендую. Что именно непонятно?

A>Я правильно понял?


Странный вопрос. Не знаю я, как ты понял.
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[3]: Что меня не устраивает в МП в Nemerle
От: alvas  
Дата: 25.12.08 21:44
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

A>>Что подразумевается под словами "в моих задачах"?


AVK>Хм, по моему это вполне по русски. Подразумевается, что речь идет о тех задачах, с которыми сталкивался и сталкиваюсь именно я, и на глобальные обобщения на всю софтописательную индустрию и тенденции ее развития я не претендую. Что именно непонятно?


A>>Я правильно понял?


AVK>Странный вопрос. Не знаю я, как ты понял.


И вот как дальше обсуждать? Иду лесом...
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[3]: Что меня не устраивает в МП в Nemerle
От: Константин Л. Турция  
Дата: 25.12.08 21:44
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Константин Л., Вы писали:


КЛ>>1. новые фичи осваиваются неохотно


AVK>Скажем так, это стоит дополнительных денег.


стоп. мне казалось, что ты имел ввиду косность мышления и тп. Какие нужны средства, чтобы сотрудники начали писать декларативный код с пом. линка, вместо циклов и массивов?

КЛ>>2. для пром. девелопмента лучше следовать стандартам, вольности неоправданы


AVK>Не очень понятно, если честно. При чем тут вольности? Выглядит как какая то эмпирика, а не истинная причина.


Вольности, это клепать фреймворки и dsl-и на каждый чих

КЛ>>соглашусь частично только со 2м, тк если отталкиваться от п.1, то прогресс нафиг не нужен.


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


при чем тут мп от немерле?

КЛ>>макросы действительно хорошая штука, чтобы превратить код в кошмар. но я видел, как это делали используя обычные языки через жопу.


AVK>Я ничего нигде не говорил о возможности превращения кода в жопу, это все очень субъективно. Дело не в этом.


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

AVK>>>Короче, идеология, применяемая в MPS, DSL Tools, Oslo для этой задачи представляется мне более подходящей.


КЛ>>пожалуй, но у немерле есть 2 преимущества: отсутствие интеропа


AVK>Ммм, а где в вышеприведенных технологиях интероп?


ок, гарантированное отсутствие интеропа. этими тулами dsl не заканчиваются, правда?

КЛ>>, и компиляция, а не интерпретация, чем занимается большинство dsl (разве нет?).


AVK>Бывает ну очень по разному, и компиляция, и интерпретация, и вообще отсутствие выполнения в традиционном смысле. Тут надо понимать, что понятие DSL может быть очень широким, не обязательно это императивный универсальный язык. DSL Tools, к примеру, создает графические декларативные DSL (в качестве примера — редакторы Linq2SQL и EF объектов, редакторы UML в VS2010).

AVK>Если же наш DSL это универсальный текстовый язык описания алгоритмов с широким спектром возможностей, просто подрихтованый для специфических задач, то да, Nemerle-подобные технологии в подобном разрезе вполне интересны.

КЛ>>а что делать, если генерировать код нужно для имеющихся типов, дополняя их?


AVK>В случае C# есть partial types и partial methods. Визарды не предназначены для повторных вызовов, если такое требуется, то это уже п.1.


какие у partial types есть инструменты для анализа окружения? В немерле для этого есть почти все.

КЛ>>не знаком с DSL Tools, так что тут промолчу


AVK>Да дело то не в DSL Tools, а в создании генераторов сложных алгоритмов по простому описанию — генераторы моделей, парсеров и т.п.


а тему все-таки надо было назвать "что меня не устраивает в МП в Nemerle для пром. разработки"
Re[4]: Что меня не устраивает в МП в Nemerle
От: Aen Sidhe Россия Просто блог
Дата: 25.12.08 21:56
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, AndrewVK, Вы писали:


AVK>>Здравствуйте, Константин Л., Вы писали:


КЛ>>>1. новые фичи осваиваются неохотно


AVK>>Скажем так, это стоит дополнительных денег.


КЛ>стоп. мне казалось, что ты имел ввиду косность мышления и тп. Какие нужны средства, чтобы сотрудники начали писать декларативный код с пом. линка, вместо циклов и массивов?


Время. А время — деньги. Далеко не всегда обучение окупаемо.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[4]: Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 21:58
Оценка: +1
Здравствуйте, Константин Л., Вы писали:

КЛ>стоп. мне казалось, что ты имел ввиду косность мышления и тп. Какие нужны средства, чтобы сотрудники начали писать декларативный код с пом. линка, вместо циклов и массивов?


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

AVK>>Не очень понятно, если честно. При чем тут вольности? Выглядит как какая то эмпирика, а не истинная причина.


КЛ>Вольности, это клепать фреймворки и dsl-и на каждый чих


А, ну да, где то так.

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


КЛ>при чем тут мп от немерле?


Не знаю. Это ты про прогресс спросил. Я просто ответил на заданный вопрос.

КЛ>при том, что они дают возможность отойти от стандартов.


Да нет, все гораздо печальнее — они подразумевают отсутствие зафиксированного стандарта вовсе. Разве что можно сформировать что то навроде СLOS. Но если есть возможность стандарт нарушать, то да, получаем то, о чем я писал.

AVK>>Ммм, а где в вышеприведенных технологиях интероп?


КЛ>ок, гарантированное отсутствие интеропа. этими тулами dsl не заканчиваются, правда?


Все равно мне непонятно, каким боком тут интероп.

AVK>>В случае C# есть partial types и partial methods. Визарды не предназначены для повторных вызовов, если такое требуется, то это уже п.1.


КЛ>какие у partial types есть инструменты для анализа окружения?


Никаких. Он не для этого нужен.

КЛ> В немерле для этого есть почти все.


Не в Немерле, а в его инструментарии, доступном в рамках IDE. Но это, согласись, совсем другой вопрос с совсем другим ответом.

КЛ>а тему все-таки надо было назвать "что меня не устраивает в МП в Nemerle для пром. разработки"


Слишкам многа букаф
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[4]: Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 21:58
Оценка:
Здравствуйте, alvas, Вы писали:

A>>>Я правильно понял?


AVK>>Странный вопрос. Не знаю я, как ты понял.


A>И вот как дальше обсуждать?


А ты чего ожидал? Что я буду в курсе, понял ты правильно или нет? Каким образом я могу это определить?
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[5]: Что меня не устраивает в МП в Nemerle
От: Константин Л. Турция  
Дата: 25.12.08 22:01
Оценка:
Здравствуйте, Aen Sidhe, Вы писали:

[]

AS>Время. А время — деньги. Далеко не всегда обучение окупаемо.


предвидел этот ответ. у нас работа такая, что постоянно нужно учиться, впитывать новую информацию. боюсь, что фича вроде итераторов, не то, о чем можно говорить в контексте денежных/временных затрат. кроме того, каждый вменяемый манагер, принимая решение о переходе на ту или иную технологию, анализирует, что ему это даст в плане денег и времени. Так что кому выгодно — будут переходить, а невыгодно — тогда в чем вопрос?
Re[6]: Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 22:06
Оценка: +1
Здравствуйте, Константин Л., Вы писали:

КЛ> боюсь, что фича вроде итераторов, не то, о чем можно говорить в контексте денежных/временных затрат.


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

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


В динамике. Код ведь потом поддерживать надо, а команды формируются не на всю жизнь. Нанимаешь нового разработчика, и, лыко-мочало, начинай сначала.
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[7]: Что меня не устраивает в МП в Nemerle
От: Константин Л. Турция  
Дата: 25.12.08 22:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Константин Л., Вы писали:


КЛ>> боюсь, что фича вроде итераторов, не то, о чем можно говорить в контексте денежных/временных затрат.


AVK>Лично я так не думаю, особенно если речь не об очень опытных разработчиках. Нет, изучить саму конструкцию, конечно, сравнительно несложно, а вот научится ее применять ... Та же ленивость нуждается в серьезном понимании.


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

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


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


то-же самое качается фреймворков
Re[5]: Что меня не устраивает в МП в Nemerle
От: Константин Л. Турция  
Дата: 25.12.08 22:15
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Константин Л., Вы писали:


КЛ>>стоп. мне казалось, что ты имел ввиду косность мышления и тп. Какие нужны средства, чтобы сотрудники начали писать декларативный код с пом. линка, вместо циклов и массивов?


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


на то есть умные люди, которые говорят что можно, а что нельзя

AVK>>>Не очень понятно, если честно. При чем тут вольности? Выглядит как какая то эмпирика, а не истинная причина.


КЛ>>Вольности, это клепать фреймворки и dsl-и на каждый чих


AVK>А, ну да, где то так.


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


КЛ>>при чем тут мп от немерле?


AVK>Не знаю. Это ты про прогресс спросил. Я просто ответил на заданный вопрос.


ок, я считаю, что мп от немерле не тот прогресс, который вреден by default

КЛ>>при том, что они дают возможность отойти от стандартов.


AVK>Да нет, все гораздо печальнее — они подразумевают отсутствие зафиксированного стандарта вовсе. Разве что можно сформировать что то навроде СLOS. Но если есть возможность стандарт нарушать, то да, получаем то, о чем я писал.


Опять же, чем макробиблиотека отличается от фреймворков? В идеале, к ним подход должен быть одинаков

AVK>>>Ммм, а где в вышеприведенных технологиях интероп?


КЛ>>ок, гарантированное отсутствие интеропа. этими тулами dsl не заканчиваются, правда?


AVK>Все равно мне непонятно, каким боком тут интероп.


ну как каким. часто dsl-ли работают с подмножеством сущностей, построенных на основном языке. нужно обеспечить прозрачное взаимодействие — interop

AVK>>>В случае C# есть partial types и partial methods. Визарды не предназначены для повторных вызовов, если такое требуется, то это уже п.1.


КЛ>>какие у partial types есть инструменты для анализа окружения?


AVK>Никаких. Он не для этого нужен.


а для чего тогда? Ты же предлагаешь с пом. них расширять типы? Но partial не дает генерировать код, основываясь на окружении — других типа etc.

КЛ>> В немерле для этого есть почти все.


AVK>Не в Немерле, а в его инструментарии, доступном в рамках IDE. Но это, согласись, совсем другой вопрос с совсем другим ответом.


при чем тут инструментарий? я про то, что он дает доступ к внутренним представлениям типов etc

КЛ>>а тему все-таки надо было назвать "что меня не устраивает в МП в Nemerle для пром. разработки"


AVK>Слишкам многа букаф
Re[8]: Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 22:25
Оценка: +2
Здравствуйте, Константин Л., Вы писали:

AVK>>Лично я так не думаю, особенно если речь не об очень опытных разработчиках. Нет, изучить саму конструкцию, конечно, сравнительно несложно, а вот научится ее применять ... Та же ленивость нуждается в серьезном понимании.


КЛ>ты тут выше сам правильно сказал, что новые фичи, в основном, изучаются за счет личного времени.


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

КЛ>то-же самое качается фреймворков


Конечно. Разница только в одном — в рамках. У немерлевых макросов они сильно шире, нежели чем у фреймворков. Поэтому и эффект намного сильнее.
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[6]: Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 22:25
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>на то есть умные люди, которые говорят что можно, а что нельзя


Время умных людей стоит больших денег.

КЛ>Опять же, чем макробиблиотека отличается от фреймворков?


Уже ответил рядом.

КЛ> В идеале, к ним подход должен быть одинаков


Size does matter.

AVK>>Все равно мне непонятно, каким боком тут интероп.


КЛ>ну как каким. часто dsl-ли работают с подмножеством сущностей, построенных на основном языке. нужно обеспечить прозрачное взаимодействие — interop


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

AVK>>Никаких. Он не для этого нужен.


КЛ>а для чего тогда?


Для растаскивания одного типа на несколько файлов.

КЛ> Ты же предлагаешь с пом. них расширять типы? Но partial не дает генерировать код, основываясь на окружении — других типа etc.


А partial и не должен генерировать код вовсе. Его задача обеспечить возможность связи сгенерированного кода и рукописного без runtime техник. Не Немерле конечно, но ряд несложных задач решать позволяет.

AVK>>Не в Немерле, а в его инструментарии, доступном в рамках IDE. Но это, согласись, совсем другой вопрос с совсем другим ответом.


КЛ>при чем тут инструментарий? я про то, что он дает доступ к внутренним представлениям типов etc


Визарды вообще то запускаются в рамках IDE, а не при компиляции.

P.S. Большая просьба, удаляй ненужное цитирование.
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[7]: Что меня не устраивает в МП в Nemerle
От: Константин Л. Турция  
Дата: 25.12.08 22:35
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Время умных людей стоит больших денег.


ну опять скатываемся к "индусы не осилят". ну индусам и не предлагают. Вот, к примеру, RhinoMock. Нетривиально там все внутри? Так зачем мне знать, что там внутри? С макросами так-же.

AVK>Опять ты слишком узко трактуешь понятие DSL. Зачастую, ни о каких общих сущностях говорить даже не приходится, слишком специфичны эти DSL.


Ну а зачем мне его трактовать широко? По задаче и инструмент. Где лучше DSL Tool, там берем его, где лучше Н. — берем Н.

AVK>Для растаскивания одного типа на несколько файлов.


я как бе в курсе

КЛ>> Ты же предлагаешь с пом. них расширять типы? Но partial не дает генерировать код, основываясь на окружении — других типа etc.


AVK>А partial и не должен генерировать код вовсе. Его задача обеспечить возможность связи сгенерированного кода и рукописного без runtime техник. Не Немерле конечно, но ряд несложных задач решать позволяет.


а что делать со сложными?

AVK>Визарды вообще то запускаются в рамках IDE, а не при компиляции.


рядом меня коришь, что узко представляю DSL, а сам рассматриваешь только визарды

AVK>P.S. Большая просьба, удаляй ненужное цитирование.
Re[8]: Что меня не устраивает в МП в Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.12.08 23:02
Оценка:
Здравствуйте, Константин Л., Вы писали:

AVK>>Время умных людей стоит больших денег.


КЛ>ну опять скатываемся к "индусы не осилят".


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

КЛ> ну индусам и не предлагают.


Между индусами и мегапрофессионалами есть непрерывных спектр промежуточных вариантов.

КЛ> Вот, к примеру, RhinoMock. Нетривиально там все внутри? Так зачем мне знать, что там внутри? С макросами так-же.


Так, еще раз. Я говорю совсем не об этом. Я говорю о другом — любой новичек, каким бы он опытом не обладал, в проекте, широко использующем макросы, будет какое то время "индусом". Потому что ему придется изучить новый язык программирования.

КЛ>Ну а зачем мне его трактовать широко? По задаче и инструмент.


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

AVK>>А partial и не должен генерировать код вовсе. Его задача обеспечить возможность связи сгенерированного кода и рукописного без runtime техник. Не Немерле конечно, но ряд несложных задач решать позволяет.


КЛ>а что делать со сложными?


Решать по другому, потому что в сложных случаях см. п.1

AVK>>Визарды вообще то запускаются в рамках IDE, а не при компиляции.


КЛ>рядом меня коришь, что узко представляю DSL, а сам рассматриваешь только визарды


В данном конкретном пункте я рассматриваю исключительно визарды, чтобы не смешивать мух и котлеты.
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[9]: Что меня не устраивает в МП в Nemerle
От: Константин Л. Турция  
Дата: 25.12.08 23:12
Оценка: 38 (1)
Здравствуйте, AndrewVK, Вы писали:

[]

AVK>Ну а куда деваться. Речь, впрочем, не о индусах, а о том, что у людей, вобщем то, разная квалификация и разный уровень оплаты. Не, я конечно не против, если бы у меня в команде работали исключительно асы, но опять все упирается в бабло.


AVK>Между индусами и мегапрофессионалами есть непрерывных спектр промежуточных вариантов.


есть, и этому спектру предлагают асиливать замыкания, правила overload resolution, контр/ковариантность. А вот атрибут навесить, который по сути макра, это сложно.

КЛ>> Вот, к примеру, RhinoMock. Нетривиально там все внутри? Так зачем мне знать, что там внутри? С макросами так-же.


AVK>Так, еще раз. Я говорю совсем не об этом. Я говорю о другом — любой новичек, каким бы он опытом не обладал, в проекте, широко использующем макросы, будет какое то время "индусом". Потому что ему придется изучить новый язык программирования.


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

[]

AVK>В данном конкретном пункте я рассматриваю исключительно визарды, чтобы не смешивать мух и котлеты.


А в немереле генерация кода за счет использования квазицитирования и декларативности должна писаться еще проще. CodeDom по сравнению с ней — мамонт
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.