Re[8]: [Голосование] Почему я не использую Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.10 20:08
Оценка:
Здравствуйте, gandjustas, Вы писали:

VD>>Эта фича больше хороший маркетинговый ход нежели реально мощьная возможность.

G>Чтонить аналогичное такому сделать можно с теми же трудозатратами:
G>http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1842.entry
G>http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1847.entry
G>http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1854.entry

Процитирую себя любимого:

Монады можно описать даже на C# 3.0 (а уж на Немерле и подавно). Ну, а синтаксис можно довольно легко создать с помощью макросов. Так что встраивать такую фичу в Немерле нет никакого смысла.


Другими словами за пару вечеров (опытному программисту) можно реализовать полный аналог в виде макроса.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: [Голосование] Почему я не использую Nemerle
От: Lloyd Россия  
Дата: 06.04.10 20:10
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>>>По моим наблюдениям объем кодирования, отладки и т.п. обратно пропорционален произведению знаний и опыта программиста на мощность его инструмента. У опытного программиста пользующегося мощным инструментом даже проектирование совершенно по другому протекает.


L>>Ну пусть будет 20%,


VD>Если высасывать цифры из пальца, то мне больше нравится цифра 20000%!


Дурилка, 20000% — это если еще и время на рсдн включить.

L>>если взять вместе с проектированием, итоговый процент прироста будет 15%.


VD>Интересные дела! А что-это процент понижается?


Не понижается. Смотри внимательнее.

VD>Ведь проектируя в более высоких абстракциях мы тоже получаем выигрыш. Не так ли?


Далеко не всегда. Время на проектирование в высоких абстракциях — это тоже расходы. Не все могут себе это позволить, особенно у нас, где основная масса разработок на .Net-е это аутсорс, а в аутсорс длительные проекты отдают не часто.

L>>Все равно эта цифра не стоит того, чтобы брать не себя доп. риски, связаные с использованием не-мейнстрим языка.


VD>Это та идея в которой любой софт пишется миллионом обезьян?


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

L>>P.S. Не прими в очередной раз мои слова как наезд на твое детище, язык сам по себе хороший. Просто вы, парни неправильную цель выбрали. Ну не суждено ему стать мэйнстримом, хоть вы тресните. У вас же прямо перед глазами пример "соперничества" явы и скалы, где ява и где скала? Найдите свою нишу и развернитесь там в полный рост, покажите все бенефиты языка, а не пытайтесь соревноаться с шарпов в унылом формочко-клепательстве.


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


Передергивать не стоит.
Не "страх", а "боюсь что его развитие заглохнет". Если первое (страх) — это о проголосовавшем, то второе — это скорее о самом проекте. Не у голосовавших уверенности, что завтра он тихо сойдет на нет.
На втором месте — "Мне хватает возможностей одного из мэйнстрим-языков", на 3-м — "Не хочу/не могу использовать .Net, а Nemerle на нем основан". О лени, как видишь ни слова.
Re[9]: [Голосование] Почему я не использую Nemerle
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.04.10 20:13
Оценка:
Здравствуйте, VladD2, Вы писали:

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


VD>>>Эта фича больше хороший маркетинговый ход нежели реально мощьная возможность.

G>>Чтонить аналогичное такому сделать можно с теми же трудозатратами:
G>>http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1842.entry
G>>http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1847.entry
G>>http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1854.entry

VD>Процитирую себя любимого:

VD>

VD>Монады можно описать даже на C# 3.0 (а уж на Немерле и подавно). Ну, а синтаксис можно довольно легко создать с помощью макросов. Так что встраивать такую фичу в Немерле нет никакого смысла.


VD>Другими словами за пару вечеров (опытному программисту) можно реализовать полный аналог в виде макроса.


Ну тогда реквестирую аналогичную серию постов по nemerle от опытных программистов.
Вот и будет начало популяризации этого языка, то пока с этим очень плохо.
Re[7]: [Голосование] Почему я не использую Nemerle
От: Ziaw Россия  
Дата: 06.04.10 20:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>У меня на нее к сожалению времени не хватает. Хотя первый шаг к ней я даже сделал — создал забавную такую библиотеку Nemerle.StringTemplate которая позволяет генерировать текст по модели. Я планировал ее как средство генерации SQL-я в библиотеке аналогичной Рельсам.


Рельсы наоборот, генерят модель по базе. Тут надо плотно думать. Модель по базе выглядит предпочтительнее базы по модели. Как это выглядит в рельсах:
class OrderLine < ActiveRecord::Base
end

Этого достаточно чтобы работать с таблицей order_line и иметь все ее поля в виде пропертей. Можно конечно прописать свойства и их мэппинг вручную, но обычно этого не делают.
Удастся ли повторить киллер фичу рельсов?
class OrderLine < ActiveRecord::Base
  belongs_to :order
  acts_as_list :scope => :order
end
class Order < ActiveRecord::Base
  has_many :order_lines
end

это значит, что в таблице order_line есть поля order_id и position, что коллекция order_lines в Order ведет себя как упорядоченный список и у OrderLine появляются методы типа IsLower, IsHigher, MoveToTop, MoveHigher, etc. Конечно это эктив рекорд и хотелось бы обойтись без него, но сам принцип генерации сработает? Появится интелисенс на эти методы?

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


К сожалению как архитектор такого проекта я не вытяну, я недостаточно знаю всякие рельсы-джанги и тонкую специфику веба.
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>
Re[6]: [Голосование] Почему я не использую Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.10 20:35
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Потому что:

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

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

ВВ>Речь была о том, что в случае Немерле все эти "фреймворки" могут заменить самые обычные библиотеки благодаря мощности языка. С этим я не спорю. Но есть одна проблема — эти библиотеки не написаны.


Ага. Может чем лясы точить почем зря поможешь что-нить подобное наклепать?
Вот тут уже два товарище параллельно предложили залудить Немерл на Рельсах:
http://rsdn.ru/forum/dotnet/3764459.1.aspx
Автор: Ziaw
Дата: 06.04.10

http://rsdn.ru/forum/dotnet/3764530.1.aspx
Автор: VladD2
Дата: 06.04.10


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

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


Бесспорно! Но без мощности (заметь, совершенно реальной!) сделать такие библиотеки или невозможно в принципе или очень сложно (даже у МС не всегда выходит). А меж тем у Рубистов оно выходит и очень даже красиво! Не это ли доказательство преимущество более мощных инструментов?

ВВ>Я вообще-то говорю не за всех, а за себя. Под "собой" опять же я имею в виду не себя лично, а скажем так, набор причин, по которым затруднительно внедрить Немерле в рабочий процесс так, как он организован в моей компании.


Ты прямо капитан очевидность! Ежу понятно, что если бы не было проблем то давно кто-нить внедрил бы. В прочем кто-то и внедрил. Просто мало пока.

ВВ>Само собой бывают разные случаи. Положим, у Андрея с его JetBrains ситуация совершенно иная.


Не понял причем тут АВК?

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


Но не во всех же?

ВВ>ОК, и что? Я, мягко говоря, не люблю ASP.NET WinForms. Но альтернативой должно быть не рассуждение о том, что веб-форм — это плохо, а, ну скажем, альтернативное решение на Немерле. Те же Рельсы.


Вот! Речь не мальчика, но мужа! (с)

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


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

Кстати, Немерл на Рельсах проканает за килер-аппу?

ВВ> Не потому что я хочу "на все готовое", а потому что в противном случае такое решение — один голый мощный язык — никому продать не получится.


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

ВВ>Представляешь как, например, тендер проводится? Что описывается в технической документации по тендеру? Там нельзя написать "мы все напишем на Немерле и макросах", там должны быть buzzwords.


Да. Согласен. С базвордами у нас туго. Не знаю плакать ли или смеяться.

ВВ>Как бы ни хотел конкретный программист писать на Немерле, при текущей модели бизнеса — и при текущем состоянии Немерле — это сделать практически нереально.


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

Это и есть путь Немерле. Действительно, если использовать Немерл как улучшеный шарп, то выигрыш будет не столь существенным.

ВВ>Ты там ниже — напишу уж сразу здесь — намекаешь, что от того WWF можно отказаться и сделать аналогичный движок на Немерле. Можно. Я тебе больше скажу — WPF 3.5 это злоеб полное говно. Но это buzzword, модный. И он уже есть, написанный. И есть люди, которые умеют с ним работать. Опубликовал вакансию — получил человека. А Немерле — это некая гипотетическая правильная воркфлоу библиотека, которая всем хороша, кроме одного — ее еще надо написать.


Не, ну, или шашечки, или ехать. Или базводры или увеличение производительности труда.

ВВ>MOSS 2010 — ты будешь смеятся, но отношение к нему у меня еще хуже, чем к вышеперечисленным двум.


Буду если расскажешь, что это такое.

ВВ>Я представитель вполне конкретного направления


На этих словах мне стало страшно

ВВ>в современном отечественном АйТи. Я его хорошо знаю и описываю тебе специфику. Все. Не больше и не меньше.


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

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


ВВ>Можешь пример привести такой задачи?


Да тот же РШарп. Думаешь почему я переключил свое внимание на Немерле?

ВВ>А причем тут опять язык? Ты полагаешь я парсер не писал? Основная задача — придумать качественную грамматику. Все остальное — дело техники.


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

ВВ> Если не устраивает ковыряться с Кокором и не хочется писать АСТ самому, можно взять тот же Айрони. Кардинальной разницы с вашим подходам я не вижу.


Разница есть. Хотя ты прав, что при наличии внешней тулзы с внешним ДСЛ-ем некоторые задачи решаются с приемлемой сложностью. Но такие решения есть для очень малого круга задач. А Немерле это эдакий фрэймворк для создания таких "тулзов".

ВВ>Я разработка языков "уровня Скала и Немерле" как-то в мейнстрим задачи не очень вписывается.


А меж тем как раз когда задача сложная (ты привел хороший пример сложной задачи), то нужны эдакие усилители, ну или мегабаксы MS, IBM или Sun (в прочем последний надорвался).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: [Голосование] Почему я не использую Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.10 20:36
Оценка:
Здравствуйте, Lloyd, Вы писали:

VD>>Если высасывать цифры из пальца, то мне больше нравится цифра 20000%!


Кстати, да. Потому пора завязывать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: [Голосование] Почему я не использую Nemerle
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.04.10 20:40
Оценка:
Здравствуйте, Ziaw, Вы писали:

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


VD>>У меня на нее к сожалению времени не хватает. Хотя первый шаг к ней я даже сделал — создал забавную такую библиотеку Nemerle.StringTemplate которая позволяет генерировать текст по модели. Я планировал ее как средство генерации SQL-я в библиотеке аналогичной Рельсам.


Z>Модель по базе выглядит предпочтительнее базы по модели.

Нужно чтобы оба способа работали, в том числе code-first, где база получается из обычного кода без метаописаний, на соглашениях.
Re[8]: [Голосование] Почему я не использую Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.10 20:41
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>На втором месте — "Мне хватает возможностей одного из мэйнстрим-языков",


Тебе историю про Блаб-программиста пересказать?

L>на 3-м — "Не хочу/не могу использовать .Net, а Nemerle на нем основан". О лени, как видишь ни слова.


Ага. При этом за пункты "Nemerle очень сложный для меня" и "Синтаксис Nemerle слишком необычен для меня" проголосовали 2-3 человека. Странная какая-то боязнь. Не страшно, что сам не справится с языком. Страшно за тех тубих обезьян которые придут на мое место. Они ведь точно не справятся!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Голосование] Почему я не использую Nemerle
От: Ziaw Россия  
Дата: 06.04.10 20:44
Оценка:
Здравствуйте, gandjustas, Вы писали:

Z>>Модель по базе выглядит предпочтительнее базы по модели.

G>Нужно чтобы оба способа работали, в том числе code-first, где база получается из обычного кода без метаописаний, на соглашениях.

Я не представляю как вести версионность модели. Версионность базы в тех же рельсах обкатана по самое не балуйся.
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>
Re[8]: [Голосование] Почему я не использую Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.10 21:15
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Рельсы наоборот, генерят модель по базе. Тут надо плотно думать. Модель по базе выглядит предпочтительнее базы по модели. Как это выглядит в рельсах:

Z>
Z>class OrderLine < ActiveRecord::Base
Z>end
Z>

Z>Этого достаточно чтобы работать с таблицей order_line и иметь все ее поля в виде пропертей.

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

У них даже продуман механизм миграции.

Z> Можно конечно прописать свойства и их мэппинг вручную, но обычно этого не делают.

Z>Удастся ли повторить киллер фичу рельсов?
Z>
Z>class OrderLine < ActiveRecord::Base
Z>  belongs_to :order
Z>  acts_as_list :scope => :order
Z>end
Z>class Order < ActiveRecord::Base
Z>  has_many :order_lines
Z>end
Z>

Z>это значит, что в таблице order_line есть поля order_id и position, что коллекция order_lines в Order ведет себя как упорядоченный список и у OrderLine появляются методы типа IsLower, IsHigher, MoveToTop, MoveHigher, etc. Конечно это эктив рекорд и хотелось бы обойтись без него, но сам принцип генерации сработает?

Сработает.

Z>Появится интелисенс на эти методы?


Появится. Только сама фича (acts_as_list) мне не очень нравится. В прочем, может я не просек чего.

Да и вообще у рубишных аэтив-рекордов есть много своих проблем. Мне кажется в такой библиотеке нужно не тупо копировать Рельсы, а брать их дух и реализовывать на более качественном уровне. К тому же БЛтулкит это сделать позволяет.

Z>К сожалению как архитектор такого проекта я не вытяну, я недостаточно знаю всякие рельсы-джанги и тонкую специфику веба.


Ну, архитекторов обычно находится вше крыши. А вот тех кто код будет писать не очень много .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Голосование] Почему я не использую Nemerle
От: Lloyd Россия  
Дата: 06.04.10 21:17
Оценка: +1
Здравствуйте, VladD2, Вы писали:

L>>На втором месте — "Мне хватает возможностей одного из мэйнстрим-языков",


VD>Тебе историю про Блаб-программиста пересказать?


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

L>>на 3-м — "Не хочу/не могу использовать .Net, а Nemerle на нем основан". О лени, как видишь ни слова.


VD>Ага. При этом за пункты "Nemerle очень сложный для меня" и "Синтаксис Nemerle слишком необычен для меня" проголосовали 2-3 человека. Странная какая-то боязнь. Не страшно, что сам не справится с языком. Страшно за тех тубих обезьян которые придут на мое место. Они ведь точно не справятся!


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

Кстати, я пару лет назад спрашивал, есть ли возможность каким-либо способом отследить по стэктрейсу exception-а какой макрос поучавствовал в генерации того или иного участка кода. На тот момент такой возможности не было. Что-нить изменилось за это время?
Re[5]: [Голосование] Почему я не использую Nemerle
От: IT Россия linq2db.com
Дата: 06.04.10 21:18
Оценка: 3 (1) +12 :))) :)))
Здравствуйте, VladD2, Вы писали:

VD>У кого ка. Лично я всегда считал UI примитивным кодом которым совсем не интересно заниматься.


Синоним примитивного UI кода — это уродливый UI код или в простонародье "говнокод". Написание качественного кода для качественного UI одна из самых сложных прикладных задач. Тут тебе и многозадачность в полный рост, и событийная модель работы с состоянием, и многообразие используемых компонентов, библиотек и фреймворков. Бузинес-логика или там серверный код — это всё примитивщина по сравнению с приличным UI. Спроси у ребят, которые пишут реал-тайм трейдинговые клиенты. У них там оптимизаций больше, чем во всём немерловом компиляторе было и когда-либо будет. Это тебе не вывод типов
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: [Голосование] Почему я не использую Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.10 21:18
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Нужно чтобы оба способа работали, в том числе code-first, где база получается из обычного кода без метаописаний, на соглашениях.


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

Но это все фигня.

Что касается обычного кода, то это мышление скорее всего вызвано привычкой. На самом деле иметь хороший ДСЛ намного удобнее. Данные нужно описывать так чтобы это было удобно делать, а не чтобы это было похоже на ОО-код.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: [Голосование] Почему я не использую Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.10 21:20
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Я не представляю как вести версионность модели. Версионность базы в тех же рельсах обкатана по самое не балуйся.


Мы это уже как-то продумывали. Придется немного извратиться. С каждым полем придется сопоставить уникальных идентификатор (гуид, например). Но проблема решаемая.

В рельсах для этого используют идею рукописных скрптов миграции которые прогоняются при смене версии БД последовательно.

Короче, это и есть дизайн.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: [Голосование] Почему я не использую Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.10 21:25
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Во-вторых, саппортеры как правило саппортят сразу несколько проектов и если нужно что-то пофиксить, то любой дополнительный слой абстракции вносит дополнительную сложность в поддержке. Чтобы разобраться в источнике ошибки, придется все эти абстракции восстанавливать из кода, а если проектов много и нужно регулярно переключаться от прокта к проекту, то удержать всю картину в голове будет очень непросто. И если ошибку в коде из библиотеки еще худо-бедно можно локализовать, то локализация ошибки в коде сгенерированном макросом обернется сущим адом.


Значит саппортеры на рсдн не ходят?

L>Кстати, я пару лет назад спрашивал, есть ли возможность каким-либо способом отследить по стэктрейсу exception-а какой макрос поучавствовал в генерации того или иного участка кода. На тот момент такой возможности не было. Что-нить изменилось за это время?


А что мешает сгенерировать в макросе:
try { ... } catch { e => throw MacroException("macro_name", e)  }

где ... — это весь сгенерированный макросом код?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: [Голосование] Почему я не использую Nemerle
От: Lloyd Россия  
Дата: 06.04.10 21:46
Оценка:
Здравствуйте, VladD2, Вы писали:

L>>Во-вторых, саппортеры как правило саппортят сразу несколько проектов и если нужно что-то пофиксить, то любой дополнительный слой абстракции вносит дополнительную сложность в поддержке. Чтобы разобраться в источнике ошибки, придется все эти абстракции восстанавливать из кода, а если проектов много и нужно регулярно переключаться от прокта к проекту, то удержать всю картину в голове будет очень непросто. И если ошибку в коде из библиотеки еще худо-бедно можно локализовать, то локализация ошибки в коде сгенерированном макросом обернется сущим адом.


VD>Значит саппортеры на рсдн не ходят?


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

L>>Кстати, я пару лет назад спрашивал, есть ли возможность каким-либо способом отследить по стэктрейсу exception-а какой макрос поучавствовал в генерации того или иного участка кода. На тот момент такой возможности не было. Что-нить изменилось за это время?


VD>А что мешает сгенерировать в макросе:

VD>
VD>try { ... } catch { e => throw MacroException("macro_name", e)  }
VD>

VD>где ... — это весь сгенерированный макросом код?

Представь ситуацию, получил ты ошибку со стактрейсом:

[ArgumentNullException]
Enumerable.First()
Program.Main()


Открываешь исходник, никакого вызова Enumerable.First в Main нет. Открываешь рефлектором бинарник, вызов есть.
Вероятно, вызов был сгенерен макросом.
Как понять, какой именно макрос постарался?
Re: [Голосование] Почему я не использую Nemerle
От: matumba  
Дата: 06.04.10 21:49
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>

VD>Почему я боюсь/не хочу/не могу использовать Nemerle в своей работе?


Я бы сюда ещё добавил неочевидность выгоды применения этого Немерле. Ну макросы, ну ДСЛ... писать-то их всё равно надо! Тогда какая разница с теми же функциями?
Этот "промоушн Немерла" напоминает аналогичный в стане функциональщиков: "вот, смотрите, как кратко пишется факториал!" А он нам нужен, этот факториал?
Универсальный топор, которым ты хорошо владеешь, намного лучше лобзика, пусть в некоторых задачах топор и проигрывает — потому что топор даёт 100% гарантию, что хоть через гланды, но задача будет решена. А что даёт лобзик? То же, что логотип огрызка маководам? (ощущение элитарности)
Объективный объём алгоритмов, необходимый для решения задачи, нельзя ужать языковыми средствами. Хуже того — сильно концентрированный объём мысли на единицу кода порождает как более глубокие ошибки, так и менее очевидный (менее понятный постороннему) код. Отсюда вполне логично, что в мэйнстрим не проникла маргинальная квитессенция яйцеголовой мысли (лиспы, смоллтоки, окамлы, прологи и т.п.).
Здесь я хочу подчеркнуть неприменимость Немерла именно к мэйнстриму, а как язык для научных изысканий и обкаток — вполне.
Re[7]: [Голосование] Почему я не использую Nemerle
От: Воронков Василий Россия  
Дата: 06.04.10 21:54
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Я правильно понял, что основное время у тебя уходит на рисование мышкой?

VD>Сори. Не мог не стролить.

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

ВВ>>Речь была о том, что в случае Немерле все эти "фреймворки" могут заменить самые обычные библиотеки благодаря мощности языка. С этим я не спорю. Но есть одна проблема — эти библиотеки не написаны.


VD>Ага. Может чем лясы точить почем зря поможешь что-нить подобное наклепать?

VD>Вот тут уже два товарище параллельно предложили залудить Немерл на Рельсах:
VD>http://rsdn.ru/forum/dotnet/3764459.1.aspx
Автор: Ziaw
Дата: 06.04.10

VD>http://rsdn.ru/forum/dotnet/3764530.1.aspx
Автор: VladD2
Дата: 06.04.10

VD>Присоединяйся. Будешь третьим. Три — это уже команда. Ты орел вроде опытный. Глядишь у вас выйдет что-то очень талантливое. За одно на практике поймешь, что с помощью более мощного языка можно получить более качественное решение.

Хех, а мне казалось, это я первый про Рельсы заговорил

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

ВВ>>Я вообще-то говорю не за всех, а за себя. Под "собой" опять же я имею в виду не себя лично, а скажем так, набор причин, по которым затруднительно внедрить Немерле в рабочий процесс так, как он организован в моей компании.

VD>Ты прямо капитан очевидность! Ежу понятно, что если бы не было проблем то давно кто-нить внедрил бы. В прочем кто-то и внедрил. Просто мало пока.

Если я капитан очевидность, то как назвать человека, которому эти "очевидности" приходится явно проговаривать? Причем опять ты где-то там ниже пишешь типа "согласись, это твоя ситуация, так у не всех". Да, блин, так не у всех. Так у некоторых. Я не за всех говорю.
Ну вот, можешь считать, что я уже дважды капитан очевидность.

VD>А вот тут как раз и есть парадокс. Чтобы появлось яйцо нужна курица, а та из яиц обычно появляется.

VD>Кстати, Немерл на Рельсах проканает за килер-аппу?

Собственно, я с этого и начал. Да, проканает. Особенно если будет — пусть не реклама, но вменяемая документация и примеры.

ВВ>> Не потому что я хочу "на все готовое", а потому что в противном случае такое решение — один голый мощный язык — никому продать не получится.

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

Что за "хитрые" языки такие? А для "глупых" языков встроенные средства есть?

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

VD>Это и есть путь Немерле. Действительно, если использовать Немерл как улучшеный шарп, то выигрыш будет не столь существенным.

Среднестатический программист не будет свои фреймворки изобретать, ему нужны готовые. Даже если некий гуру их уже написал, то когда он уволится — что делать? Обучать этим фреймворкам новичков, которые к стандартному формо-клепательству привыкли? Да и кто поддерживать все это будет, баги править?

ВВ>>Ты там ниже — напишу уж сразу здесь — намекаешь, что от того WWF можно отказаться и сделать аналогичный движок на Немерле. Можно. Я тебе больше скажу — WPF 3.5 это злоеб полное говно. Но это buzzword, модный. И он уже есть, написанный. И есть люди, которые умеют с ним работать. Опубликовал вакансию — получил человека. А Немерле — это некая гипотетическая правильная воркфлоу библиотека, которая всем хороша, кроме одного — ее еще надо написать.

VD>Не, ну, или шашечки, или ехать. Или базводры или увеличение производительности труда.

Сначала проект надо получить, а потом уже "производительность труда". Не будет выигранного проекта, никакой производительности не будет вообще.

ВВ>>MOSS 2010 — ты будешь смеятся, но отношение к нему у меня еще хуже, чем к вышеперечисленным двум.

VD>Буду если расскажешь, что это такое.

Шарепоинт.

ВВ>>Я представитель вполне конкретного направления

VD>На этих словах мне стало страшно

Казалось бы, говорим о Немерле

ВВ>>в современном отечественном АйТи. Я его хорошо знаю и описываю тебе специфику. Все. Не больше и не меньше.

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

Угу,
а) Капитан Очевидность
б) А я тебе тут и описываю умный подход. Секрет умного подхода заключается в том, что для того, чтобы извлечь выгоду из проекта, надо этот проект сначала получить.

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

ВВ>>Можешь пример привести такой задачи?
VD>Да тот же РШарп. Думаешь почему я переключил свое внимание на Немерле?

Видимо, потому что ты о нем узнал.
Вообще на задачи типа РШарпа, если б ее делали мы (tm), было бы потрачено просто чудовищная много времени на требования/дизайн. И мне кажется, что это правильно. Ибо дизайн в таких проектах очень важен. Кривые и принятые на ходу решения потом слишком дорого обойдутся.
Наконец, ну да, РШарп прям образцовый пример проекта, который надо делать на Немерле. Остается лишь вопрос, часто ли мы пишем РШарп-ы.

ВВ>>А причем тут опять язык? Ты полагаешь я парсер не писал? Основная задача — придумать качественную грамматику. Все остальное — дело техники.

VD>Думаю, что ты его серьезно не поддерживал и не развивал. Потому как если бы поддерживал, то понял бы, что одно дело иметь дело с формальной спецификацией, а другое лазить по горе кода написанного в стиле рекурсивного спуска. Вот в Немерле 2.0 мы планируем уйти от рукопашного кода. Это нужно по нескольким причинам. Одна из них — это невозможность гарантировать, что где-то не ошибся.

Началось все с разговора о *генерируемом* парсере. Причем я не вижу, чем ваш подход *кардинально* отличается от того же Айрони. Всегда, когда я писал генерируемые парсеры, главная задача — создание качественной грамматики. Ваш ПЕГ-парсер эту задачу никак не меняет.
Теперь я так понимаю, мы переключились на некий загадочный транслятор, который что-то делает с полученным АСТ. И о том, как сложно его писать в императивном стиле. Или о чем-то другом речь? Да, сложно. Нет, писал и поддерживал. Задача вполне решаемая. И не такая уж и сложная.

Сложная задача — это оценить трудозатраты на интеграцию системы Х и системы У, когда о них известны только их названия. Причем с высокой степень точности.
Или склеить данные из AD и САП-а, когда САП ID в AD нет, имена в AD латиницей, в САПе кириллицей, а Identity Server будут внедрять еще через пару лет.

По сравнению с этим ваши парсеры — это просто фигня.
Re[4]: [Голосование] Почему я не использую Nemerle
От: rm822 Россия  
Дата: 06.04.10 22:39
Оценка:
Попробую перевести то что вы написали на язык понятный владу
Разработка — в оснвном умственная деятельность. Вы тратите 90% времени на раздумья и обсуждение и только 10% времени на запись результата.

PS:Конечно в 90% входит и чтение кода, но читаемость кода слабо зависит от языка.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: [Голосование] Почему я не использую Nemerle
От: IT Россия linq2db.com
Дата: 06.04.10 23:15
Оценка: +1
Здравствуйте, Воронков Василий, Вы писали:

ВВ>А тот факт, что проекты пишутся на "фреймворках" приводит к тому, что и средний программист тоже по факту является не программистом C#, VB.NET или чего-то еще, а программистом ASP.NET, Windows Forms, WPF и так далее. Что как бы накладывает неизбежный отпечаток. И тут становится важнее даже не столько мощность языка, сколько хорошая поддержка визуального дизайнера.


Визуальный дизайнер по большому счёту нужен только в WinForms и только по одной причине — для пристрелки пикселов. В том же WPF визуальный редактор сразу отключается по-умолчанию за ненадобностью. ASP.NET дизайнер больше вредит, чем помогает из-за своего видиния того, каким должен быть сгенерированный HTML. Ещё дизайнеры нужны для начинающих в качестве обучающего средства. Другое дело, что некоторые из этого состояния потом никогда не выходят. Но в целом, я согласен, что поддержка дизайнеров в языке должна быть. Хотя бы для тех же начинающих.

Что же касается библиотек вообще, то обычные языки способны создавать только библиотеки функций. Немерле позволяет создавать библиотеки паттернов. Это принципиальная разница. Например, в том же WPF проблема объявления dependency property не решена никак. На немерле это можно сделать один раз ввиде макроса и забыть.
Если нам не помогут, то мы тоже никого не пощадим.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.