Здравствуйте, WinniePoh, Вы писали:
IT>> Так вот если её решить один раз для Nemerle (я не знаю как, не спрашивайте ),
WP> Господи, да чего тут не знать. Тривиально. XML-ных отображений графических языков — полно. Сделать макру, разворачивающую XML в код — тривиально. Я такое для Glade и Common Lisp делал, часов 6-8 где-то потратил на всё, с отладкой и пивом.
Сделай. Заодно и интеллисенс с автокомплитом прикрути. Пиво с меня.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Vermicious Knid, Вы писали:
VK>Твои сравнения просто смешны.
Это и было целью. Там даже смайлик стоял.
VK>Если тебе не нравится что-то конкретное — обсуди это с разработчиками языка.
Что-то конкретное не нравится -- ажиотаж, который здесь вокруг Nemerle возник. Видишь ли, я не физик, я лирик, поэтому руководствуюсь впечатлениями. А впечатления от Nemerle очень неоднозначные, скорее даже негативные (может быть из-за поднятой здесь шумихи). И своим впечатлениям я привык доверять.
Поэтому конкретно с разработчиками мне осуждать не чего. А вот поиронизировать над некоторыми местными сообщениями считаю не грех.
VK>Если тебе не нравится все, тогда напиши лучше.
Пишу, знаешь ли. Только не в области языкостроения.
VK>Если не можешь написать лучше или сказать что-то конструктивное
Извини за нескромность, но много ли в данной теме конструктива? Кроме восторженных ахов и охов вокруг маленьких фрагментов кода особо ничего и нет. Даже критику (которую я пытался сделать) и то долго всерьез не принимали, хотя и признали в конце-концов, что не мешало бы чего-нибудь в языке подправить. ИМХО, здесь не столько конструктив нужен, сколько трезвый взгляд на происходящее.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[18]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Sinclair, Вы писали:
S>Не, Влад, так — не круто. Приложения должны поддаваться локализации; а это означает переменный порядок "вставленных" слов во фразе. Неслучайно в Delphi/Builder был применен вариант сишного формата, в котором можно было указывать аргументы не в порядке следования. И неслучайно в дотнете единственный необходимый параметр формата — это номер аргумента.
Для локализации можно построить словарь string name -> string value, а саму строку вынести и затем производить замену в ней имён на значения по словарю. При недостатке или переизбытке аргументов в локализованной строке можем по желанию кидать эксепшн, писать варнинг в лог, или пропускать как есть. При этом задействуем возможность макросов Nemerle взять имена из области видимости.
Re[12]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Oyster, Вы писали:
V>>Блин, столько писать... Да проще уже "по-честному" это проперти нарисовать. Можно подумать, что это — принципиально.
O>Не принципиально. Но проще ли? Сравниваем:
В данном случае я согласен с vdimas. Макро для объявления пропертей хотя выглядит и логично, но довольно громоздко и коряво.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[28]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, eao197, Вы писали:
E>Я придерживаюсь мнения, что результаты генерации вообще в VCS попадать не должны. Там должны быть только исходники, из которых производится генерация. Например, для yacc-а под контроль версий нужно укладывать .y-файлы, но вот полученные из них .c-файлы помещать под контроль версий смысла нет.
Всё так. Осталось только это растолковать интеграции VSS с VS.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[29]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, IT, Вы писали:
IT>В данном случае я согласен с vdimas. Макро для объявления пропертей хотя выглядит и логично, но довольно громоздко и коряво.
Как ни странно тоже соглашусь. Многие стандартные макросы мне совсем не нравятся. Record и Accessor в частности. Ничего кстати принципиально не мешало реализовать их совсем по другому.
Re[13]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, IT, Вы писали:
IT>В данном случае я согласен с vdimas. Макро для объявления пропертей хотя выглядит и логично, но довольно громоздко и коряво.
Да, пожалуй тут синтаксический макрос смотрелся бы веселее.
Re[13]: Снова о Nemerle или профанация не пройдет :)
WP> Популярность от качеств технологии не зависит вообще. Популярность — это как мода, трудноанализируемая и иррациональная гадость. Серьёзным людям на популярность наплевать, а обыватели выбирают себе в популярных только тех, кого им хорошо пиарят. Так что мне просто противно когда ту или иную технологию начинают оценивать с позиций популярности. Это ведь ровно то же самое, что опустить себя на уровень серых обывателей, низших слоёв общества. Не боязно вам испачкаться, начиная такие сомнительные штудии о вкусах и предпочтениях серых масс?
а кто ж такие серьезные люди и обыватели?
при выборе платформы для реального большого проекта популярность имеет довольно большое значение. а серый обыватель или не серый и его слой общества никакого значения не имеет.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[27]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Вот представь себе библиотеку для работы, скажем, с серийным портом всю написанную на макросах. По суть вместо некого КОМ-порт АПИ у нас будет специальный язык под это дело, причем еще не факт что удачного спроектированный. И таких библиотек на большом проекте могут быть десятки. Причем в 90 случаях из 100 эти макросы не будут предлагать ничего по сравнению с обычным АПИ кроме другой формы записи.
Я правильно понимаю, что речь идет о плохо написанной хорошей библиотеке?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[19]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Кодёнок, Вы писали: Кё>Для локализации можно построить словарь string name -> string value, а саму строку вынести и затем производить замену в ней имён на значения по словарю. При недостатке или переизбытке аргументов в локализованной строке можем по желанию кидать эксепшн, писать варнинг в лог, или пропускать как есть. При этом задействуем возможность макросов Nemerle взять имена из области видимости.
Брр. То ли ты слишком быстро пишешь, то ли я медленно читаю. Ниче не понял, ни про словарь, ни про макросы из области видимости.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, WinniePoh, Вы писали:
WP> Вы меня пугаете. Какое такое всё? Это за пару семестров вдалбливается тривиально. А если человек уже отучился, мозги натренировал, то за пару месяцев.
Парадигму на пустом месте не впихнешь. Человек — не машина, ему надо за что-то зацепиться. Заучить конспекты лекций за два семестра — можно. Понять программирование можно исключительно при помощи практики. Иначе мы получим бодхисатву, "которому не надо программировать для воплощения своих идей". А проку от такого бодхисатвы с его Внутренним Неисчерпаемым Адресным Пространством ровно нуль, т.к. внешних проявлений у него не наблюдается. WP> Время надо было раньше тратить. Когда оно было.
А когда оно было? Нет, теперь мне конечно кажется, что во время учебы я неприлично много отдыхал... Тем не менее, вряд ли можно было существенно увеличить эффективность проведения того времени без значительных потерь для других аспектов моей личности. К примеру, теперь я читаю около десятка художественных книг в год. В студенчестве — около 100. WP> Как уже тут обсуждалось, работающий студент — пропавший для общества студент. Отработанный материал. Социальный труп...
Ну, студенту рано или поздно все-таки придется начать работать. Ибо иначе мы опять получаем много-много эффективно усвоенных знаний на входе и полный нуль на выходе. WP> Перевернут. Всё это вместе убьёт индусов. Кодирование станет настолько простым и автоматизируемым делом, что недоучки из программирования вылетят, улицы подметать пойдут или бигмаками торговать. И это будет радость великая!
Забавно. Я лично в это не верю, т.к. исторический опыт показывает обратный эффект. Упрощение программирования впустит на этот рынок тех, кто до сих пор не может освоить даже настройку радиоприемника. Тот миллион индусов, которые сейчас пишут код для нашего с вами развлечения, станут мега-архитекторами в командах их умственно отсталых, и будут по вечерам рассказывать страшные истории, как в 2005 они писали исходные тексты на неподъемно страшно сложном VB.NET!
Если народ уже теперь жалуется на то, что дотнет, дельфи и ВБ недостаточно сложны для отсечения недоумков, то что же начнется, когда программирование станет еще более простым и автоматизируемым делом?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[29]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, IT, Вы писали:
IT>Всё так. Осталось только это растолковать интеграции VSS с VS.
можно один раз добавить эти файлы в VSS, затем удалить, но не делать purge
тогда, при следующей попытке добавить эти файлы под VSS, будет выдаваться сообщение, что удаленные файлы с такими же именами уже есть — хотите ли вы использовать старые файлы? (yes/no/cancel). На сообщение просто отвечаешь cancel. Это чуть удобнее, чем каждый раз при чек-ине снимать выделение с этих файлов.
А в 6 студии, если мне не изменяет склероз, можно было просто сказать — "вот эти файлы — не трогать!". Эх, усовершенствовали.....
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[9]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Sinclair, Вы писали:
S>Если народ уже теперь жалуется на то, что дотнет, дельфи и ВБ недостаточно сложны для отсечения недоумков, то что же начнется, когда программирование станет еще более простым и автоматизируемым делом?
Я бы сказал — более автоматизируемым, но и намного более сложным.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[18]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, little_alex, Вы писали:
WP>> Когда это нужно — есть тот же самый Хиндли-Милнер, который работает и для Лиспа. Есть несколько реализаций, да и своя пишется на коленке за пол часа.
_>А ссылку на рабочую библиотеку для CL можно?
Здравствуйте, IT, Вы писали:
WP>> Господи, да чего тут не знать. Тривиально. XML-ных отображений графических языков — полно. Сделать макру, разворачивающую XML в код — тривиально. Я такое для Glade и Common Lisp делал, часов 6-8 где-то потратил на всё, с отладкой и пивом.
IT>Сделай. Заодно и интеллисенс с автокомплитом прикрути. Пиво с меня.
Не понял — какой такой автокомплит для графического языка?
Re[19]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, genre, Вы писали:
G>при выборе платформы для реального большого проекта популярность имеет довольно большое значение. а серый обыватель или не серый и его слой общества никакого значения не имеет.
Имеет. Дворник лихо пользуется метлой, но для большого проекта разработки межконтинентальной баллистической ракеты надо набрать много разных крутых специалистов, а не сто тысяч дворников с популярной и такой простой и интуитивно понятной метлой.
А то, что дворника найти проще и что он дешевле — так это в вас, батенька, жадность играет. Ищете не там, где потеряли, а там, где светлее. Что никак нельзя назвать разумным поведением.
Как, продолжим аналогии, или попробуем совместно рассчитать расходы и риски на примере какого либо типичного индустриального софтового проекта?
Re[28]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Vermicious Knid, Вы писали:
VD>>К чему бы это? Глюк?
VK>Думаю да, я добавил этот самый partial modifier и вообще произошел ICE.
Да, я тоже заметил это.
Кстати, иногда попытка распечатать генерируемый код из тела макроса приводит к тому, что код печатается два раза.
Возможно это как-то связанно. Например, макрос ошибочно вызывается повторно в процессе обработки ошибки, что приводит к повторной генерации тела класса.
Кстати, пока баг не поправлен... А нельзя ли как-то определять, что класс с таким именем уже добавлен и, просто не генерировать класс повторно, а обходиться банальной выдачей предупреждения? (в смысле уже сейчас)
VK>Отправлю-ка я баг-репорт.
Поделись, плиз, как это делается (баг-репорты отправляются). А то я тоже тут уже на парочку багов наткнулся. Незначительных, но все же...
ЗЫ
И еще одно. В рпоцессе возни с макросами я пришел к выводу, что самой большой прооблемой при их написании/отладке является то, что мы не видим генерируемого АСТ. С выражениями все просто, они прекрасно преобразуются в строку и печатаются банальным Console.WriteLine() из тела макроса. А вот с чем-то по сложнее (дкларациями и типами) это не прокатывает. Их ToString() выдает имя класса. Это явная недоработка.
Ну, и хотелось бы иметь возможность распечатать весь сгенерированный код или выборочные его куски (например, класс по имени).
Я занаю, что в компиляторе есть какая-то там диагностика, но это неудобно. Надо иметь возможность программной (т.е. из макросов) печати отдельных ветвей АСТ.
Посему надо бы послать им запрос на доработку с тем, чтобы все ветви АСТ при выводе их в строку (или вызове некого хитрог метода) выдавали бы код на Нэмерле.
Так же нужны средства поиска честаей АСТ. В R# мы для этого реализовали призабавшейшую ведь. Мы реализовали поддржку XPath для поиска по АСТ. Причем сделать это довольно просто. Для этого унжно всего лишь реализовать XPathNavigator умеющий работать с АСТ-объектами. Реализацию можно поглядеть в коде R#.
Думаю, что это еще больше усилио бы мощь неэмерла, ведь его паттерн-матчинг хотя и хорош, но не может делать сложных вложенных запросов, а на XPath — это элементарно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, VladGalkin, Вы писали:
VG>Здравствуйте, Vermicious Knid, Вы писали:
VK>>Думаю да, я добавил этот самый partial modifier и вообще произошел ICE. Отправлю-ка я баг-репорт.
VG>Не факт, что глюк. Команда Nemerle пишет в Macro Tutorial про Stages of TypeBuilder, и хитрое свойство TypeBuilder.CannotFinalize, VG>неправильная установка которого может привести к ICE.
Вопросы реализации не должны волновать пользователей. Факт в том, что банальная печатка в коде находящемся рядом с вызовом этого макроса (то есть даже не связанном с макросом) приводит к дебильнейшому сообщению об ошибке. Это приводит к тому, что лично я не решусь применять макросы в рельной работе если они будут приводить к таким результатам.
Так что если это не баг, а фича, то — это еще хуже. Так как такие багофичи — это системная проблема.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.