Здравствуйте, eao197, Вы писали:
ANS>>Я не знаю как ты считал строчки кода, но в любом случае, это лучше чем тот кусок спагетти, что привёл ты.
E>+1
E>Андрей, а ты мог бы этот же пример на Smalltalk написать? Хоть это и оффтопик в данной ветке, но лично мне очень интересно чистое ОО решение увидеть.
Он и так кон повторить не смог. Если он его так же повторит на Смолтоке то ты в очередной раз сможень порадоваться очередной профанации.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Andrei N.Sobchuck, Вы писали:
VK>>Ну тогда это будет уже абсолютно несправедливо по отношению к C#. На этом примере он полностью сольет Nemerle, даже никакие ухищрения не помогут.
ANS>???. один класс с C#2 итератором полностью сольёт?
Эту задачу даже решать не надо. Она уже решена.
E>Причем интересно как с парсингом XML-я (может быть даже в compile-time), так и создание специализированного DSL на макросах специально для этой задачи.
А какой смысл в данном случае в ХМЛ-е? Хотя конечно можно и ХМЛ читать. Но тут уже писать код прийдется.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, VladD2, Вы писали:
VD>Кстати, а кто мешает используя один макрос создать еще одни оберточный? Ну, мало ли пересеклись у нас имена. Ну, создам обертку для чужого макроса.
А разве нельзя просто полностью квалифицировать имя макроса? Или там такие фичи не прокатывают?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[26]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, eao197, Вы писали:
E>Зашибись. Клиент покупает навороченную либу у одного поставщика за N килобаксов, затем у другого за M килобаксов. А затем еще тратит свое время на написание оберток для конфликтующих макросов. И следит за тем, чтобы LifeStyle не заканчивались. Хотя единственное желание у клиента, потратившего N+M собственных денежков, чтобы траха вообще не было.
Если траха не будет, то и LifeStyle не нужны.
Вообще мне кажется что ты преувеличиваешь проблему. Т.е. она конечно есть, но напрямую с макросами не связана и существует в той или иной степени во всех известных мне языках программирования. Да и в принципе трудоемкость при написании макроса-враппера ненамного больше чем при написании, скажем, тайп-алиаса в си-шарпе. К тому же насколько часто это придется делать? Вероятность того, что ты купишь две библиотеки в которых будут тысячи макросов и все они будут пересекаться ничтожна мала — не уверен, что это можно выразить в математической форме, но мне кажется, что вероятность того, что два гуида подряд одинаковые сгенерятся и то выше
Здесь мне кажется есть другой момент — если-таки продолжать гнуть линию партии — как раз касающийся этой самой "тысячи" макросов. Так как появится возможность оформлять функционал в виде макросов, и ей, скажем, начнут активно пользоваться, то перед изучением новых библиотек для сотрудников надо будет проводить специальные психо-трейнинги и убрать на это время из офиса все колюще-режущие предметы. Вот представь себе библиотеку для работы, скажем, с серийным портом всю написанную на макросах. По суть вместо некого КОМ-порт АПИ у нас будет специальный язык под это дело, причем еще не факт что удачного спроектированный. И таких библиотек на большом проекте могут быть десятки. Причем в 90 случаях из 100 эти макросы не будут предлагать ничего по сравнению с обычным АПИ кроме другой формы записи.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[21]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Воронков Василий, Вы писали:
VD>>3. ХСЛТ не полноценный ЯП и если что-то нужно посчитать и т.п., то прийдется делат вставке на другом ЯП, что усложняет процесс.
ВВ>А XSLT + XPath?
XSLT без XPath и не бывает. Я не понял о чем ты.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, Programmierer AG, Вы писали:
PA>Стандарт насчитывает порядка 700 страниц на английском языке. Воды, понятное дело, в стандарте нет.
Это не так. Как раз часть стандатра относящаяся к описанию самого языка в С++ даже меньше (и значительно) чем в C#. Другое дело, что описывается далеко не все. И слишком часто встречаются неопределенные вещи.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, eao197, Вы писали:
E>Еще одна мысль по поводу compile-time генерации vs precompile-time. В случае precompile-time можно нагенерировать обычный класс с комментариями. Он может быть обработан инструментом типа javadoc и программисту будет предоставлена документация о том, что в TestClass кроме prop1 и prop2 будут еще геттеры-сеттеры. А вот такой DSL как документировать?
Ерунда какя-то. Как это обрабатывать сгенерированный класс javadoc-ами? А что на нем будет обрабатываться? Если только вручную что-то написать на сгенерированном коде, так это же идиотизм. Разумно было бы включить раздел документации в сам формат модели. Тогда ее можно было куда нужно генерировать без проблем.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Снова о Nemerle или профанация не пройдет :)
А можно ли как-то в генерируемом классе использовать другие макросы?
Ведь реализация свойств по полям уже реализована в макросе Nemerle.Utility.Accessor. А реализация конструктора для всех полей в макросе Record.
Так что если бы эти макросы можно было бы задействовать, то осталось бы только сформировать класс и список полей. Если при этом вынести в универсальный модуль такую байду как выскребание описания свойств, то код такого макроса был бы совсем небольшим и весьма понятным.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, VladD2, Вы писали:
ВВ>>А XSLT + XPath? VD>XSLT без XPath и не бывает. Я не понял о чем ты.
О том, что XSLT неполноценный ЯП. Вся арифметика там вроде есть да и вообще базовый АПИ по возможностям сравним с простенькими виртуалками типа vbcrt к тому же легко расширяется.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[22]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, VladD2, Вы писали:
ВВ>>Ей-богу это уже религия какая-то. Честно говоря, не вижу особой разницы между: VD>Это пак пара веток. А когда вместо веток люди начнут видеть кашу, то уже будет поздно.
Вот объясни мне, почему ты начинаешь видеть в этом кашу? Почему код с сишным синтаксисом в кашу не превращается? Да, в ХМЛ есть небольшой синтаксический оверхед. В бейсике тоже есть, ты тоже в его коде видишь кашу?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[34]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, VladD2, Вы писали:
WP>> Лучшая IDE это Unix. А IDEA — игрушка. Бесполезная.
VD>Фанаты идут лесом. (это дивиз такой)
Керниган и Пайк это тоже фанаты, да?
VD>Кстати, можно узнать, что ты сделал выдающегося в своей жизни, чтобы называть игрушками плоды чужого труда?
Мы с вами на брудершафт разве пили, ув. тов. модератор?
Не важно что сделал я, важно то, что сделали они. Они сделали игрушки. Игрушки — это полезно, игрушки развивают хватательные и прочие навыки у маленьких деток, но после определённого возраста игрушки, как бы, сменить следовало бы, на более сложные...
Re[8]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, VladD2, Вы писали:
VD>Вот только МС предлагает не совсем средство для создания DSL. Рельно они предлагают под этой вывиской средство для создания визуальных дизайнеров. Причем реально автоматизируют только их создание. Все что связано с самим языком и механизом его интерпретации/компиляции/трансформации они или вообще опускют, или предлагают очень поверхносные решения.
Даже это можно обозвать словом DSL.
VD>К тому же МС предлагает средство для создания так называемых внешних DSL.
VD>В Нэмерел же предлагает практически законченную концепцию создания внутренних DSL.
Не законченную. Нет главного (как и в Лиспе) — языка описания языков. Пока ещё приходится писать DSL-ы на слишком низком уровне...
VD>Думаю, что возможно, что в паре с Нэмерел DSL Tools может оказаться куда более мощьным оружием. Так что они не противопоставлют друг-друга, а скорее дополняют.
Дык. Идеология LOP к тому и сводится, что всё, что есть, друг друга дополняет. Пусть расцветут все цветы, и всё такое...
Я тут посмотрел на DSL-и, реализованные поверх F# — очень интересно. Если даже с динамическим метапрограммированием такая мощща доступна, то уж со статическим тем более можно многое заполучить почти на халяву. Даже подумываю, уж не прикрутить ли мне к F# фичи, аналогичные MetaOCaml-у... Исходники уже доступны, toplevel там есть полноценный, так что почему бы и нет?
Re[7]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, VladD2, Вы писали:
WP>> Но макры это не такое уж однозначное зло. Это мощный инструмент, но в шаловливых ручонках мощный инструмент это страшно. Мощный инструмент нужен мощному человеку, а в шаловливые индийские ручонки надо давать ограниченную со всех сторон Java.
VD>Макросы являеются злом только в С/С++. Точно так же именно в этих языках злом можно называть метапрограммирование на шаблонах.
Я бы не назвал Boost злом. Boost это вообще единственное хорошее, доброе и светлое, что есть в мрачном царстве C++.
VD> И это так не из-за какой-то мифической мегасилы макросов или шаблонов. Это следствие того, что в этих макросах нельзя добиться хорошей читабельности и полноценной диагностики ошибок.
Точнее сказать — нельзя добится полноценной типизации и самодокументированности.
VD> Так вот макросы Нэмерла избавлены от оных недостатков. И они просто являются мощным инструментом к злу не относящемуся.
Увы, не избавленны. Только что проверки ради создал работающую, но абсолютно нечитабельную и отладке не подлежащую макру. Показать?
Re[5]: Снова о Nemerle или профанация не пройдет :)
Здравствуйте, VladD2, Вы писали:
WP>> Разработчики C# и без того совсем не глупые люди. И что такое Лисп, и что есть Haskell они знают получше многих прочих.
VD>Несомненно. Но у них есть страх сделать что-то плохое. И языки вроде Нэмерла могут снять такой страх.
Оказалось, они про Nemerle и не слышали. Это уже исправленно. Теперь они радуются.
Re[34]: Снова о Nemerle или профанация не пройдет :)