Re[39]: Являются ли макросы свидетельством недостаточной выр
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.08.07 17:41
Оценка: 87 (2) +1
Здравствуйте, EvilChild, Вы писали:

AVK>>enumerator pattern это несколько большее, нежели просто реализация IEnumerable/IEnumerable<T>

EC>Насколько мне известно для foreach необходима и достаточна реализация одного из этих интерфейсов.
EC>Или что-то ещё в этот паттерн включается?

Что то еще. Я не знаю про макрос Nemerle, но в случае C# имеем:

A type C is said to be a collection type if it implements the System.Collections.IEnumerable interface or implements the collection pattern by meeting all of the following criteria:
• C contains a public instance method with the signature GetEnumerator() that returns a struct-type, class-type, or interface-type, which is called E in the following text.
• E contains a public instance method with the signature MoveNext() and the return type bool.
• E contains a public instance property named Current that permits reading the current value. The type of this property is said to be the element type of the collection type.
A type that implements IEnumerable is also a collection type, even if it doesn't satisfy the conditions above.

... << RSDN@Home 1.2.0 alpha rev. 714 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[42]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>С таких. Во-первых CASE может возвращать разнотипные значения в зависимости от условия,


Что-то такого не встречал. Можно ссылочку на описание где об этом говорится? Может быть там все же приведение типво?

AVK> во-вторых типы параметров указываются только в момент выполнения запросов.


Какие еще параметры?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[41]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, Andrei F., Вы писали:

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


Разница есть для пользователей. Да и стандартного АПИ мало. Нужн чтобы сами форматы были описаны. Описать их в ХМЛ проще простого. Описать бинарник = прибить его формат гвоздями к полу.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[46]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

VD>>И првда. Ведь запустить при развертывании генератор кода и потом компилятор C# — это в порядке вещей. А запустить скажем компилятор Немерле или интерпретатор Лиспа — это фу бяка ату эту идею.


AVK>Да запустить то не проблема. Проблема в том, что бизнес-сущности на момент деплоймента уже скомпилированы. И чем при таком раскладе помогут макросы мне пока неясно. Упростят код генерируемых проксей?


Дык макросам фиолетово скомпилированы ли типы которые эти макросы анализируют или просто находятся в виде исходников. Для них это прозрачно.

AVK>Так они и так примитивны как 3 копейки. Что то еще?


Понимаю. Видимо примитивные системы очень тяжелы в разработке, раз вы их так долго пишите...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[48]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, mkizub, Вы писали:

M>Он у меня давно есть, и работает на славу.

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

А. Ясно. Тогда когда будешь случайно смореть это сообщение, то не расстраивайся от того факта, что твоя реализация в подметки немерловой не годится.

И вообще, не расстраивайся. А то ты похоже воспринимаешь любую критику твоих идей как личные оскорбления.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[37]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, EvilChild, Вы писали:

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


VD>>Мне кажется этот код очевиден.

EC>Он более менее понятен, даже учитывая, что я не знаю Nemerle, но никак не очевиден.
EC>Видимо у меня парадигматический сдвиг ещё не произошёл

Вообще-то это была ирония, если кто не заметил...

VD>>На саомо деле ты не знашь что делает код отвечающий за реализацию yield return. Это гора С++-кода которую ты скорее всего даже не сможешь понять если увидишь. Но тебе спокойно так как индус писавший ее работает в МС.

EC>Это тупо код на C# (хотя во что декомпилируешь),

Я вообще-то вел речь о коде компилятора который пораждает код этого паттерна.

VD>>В прочем, когда люди пишут на С++ или на Шарпе с применением небезопасного кода или интеропа, то с их кодом может произойти вообще все что угодно, так как от проходов по памяти их мало что защищает. Но это не останавливает почти никого.

EC>Работа с памятью это проблема из совершенно другой плоскости.

То есть в макросах страшно само слово "макрос", а не какие-то там проблемы которые вызываются макросами?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[37]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

VD>>Мне кажется этот код очевиден.


ANS>"Очевидный" это когда пара строчек. А когда три экрана текста, которые нельзя охватить взглядом, то слово "очевидный" уже не в кассу.


Нда, часть мозга отвечающая за юмор (и соотвествнно за восприятие иронии) у многих программистов атрафировалсь на прочь.

Попробуй прочесть текст за кодом... Если не поможет, то попробуй почитать "12 стульев". Особенно часть про встречу с любителями шахмат.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[37]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Большинство Java-программистов стараются использовать такие библиотеки как можно меньше, так как ошибки в них находить и исправлять на порядок сложнее, чем в обычном коде.


Ошибки — это конечно. Рантайм есть рантайм. Но вот используют их часто, так как слишком большие бенефиты. Кибернэйты, струтсы, спринги и т.п. — это все проявление "магии".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[40]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Вот только это все достаточно просто отлаживается многочисленными существующими инструментами. А вот для макросов у нас отладчиков пока нормальных нет.


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

В любом, случае пробема отладки решаема.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[43]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, mkizub, Вы писали:

M>Единственный альтернативный вариант, который мне приходит в голову — это иметь специальный императивный язык для трансформации AST кода, и отлаживать программы написанные на этом языке. Макросы a-la Nemerle тут не подойдут, поскольку он предоставляет декларативный язык (псевдо-цитирование). В декларативном языке точку останова не поставить. А императивный язык трансформации будет сложен для чтения и понимания для нетривиальных трансформаций. Фактически, он будет мало отличаться от generic-perpose императивных языков, а конструирование вручную AST дерева — это очень тяжело.


В декларативных конструкциях и отлаживать нечего. Квази-циртирование — это способ сформироать АСТ. Слово "квази" говорит о том, что кроме цитат могут содержаться и перменные. Сложный код формируется путем последовательного преобразования цитат. Делать это можно как в функциональном стиле, так и в императивном (АСТ — это по сути просто список).

M>Я пробовал писать плагины к Эклипсе, и мне их отладка понравилась.


Вот так же отлаживаются и макросы Немерле.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[42]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Угу. Во время компиляции.


Ага.

C>Я пробовал Nemerle'евые макросы отлаживать — нет, спасибо.


А в чем проблема? Я вот во всю отлаживаю.

Проблемы конечно есть, но не с отладкой макросов. Проблема в отладке сгенерированного кода. Пока что текстовое представление для него сгенерить можно далеко (очень далеко) не всегда. Без этого проблемы могут возникнуть не толко с отладкой сгенерированного кода, но даже с его компиляцией. Компилятор будет орать непонятные вещи указывая на вызов макроса, а что за ошибка понять нельзя. Но это тоже дело времени. Сделаем грамотную генерацию текста для генерируемого макросами кода и все будет ОК.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[33]: Generic programming
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>так вот, описание констант или темплейтов в C++ тоже можно считать средставми макроподстановки и генерации кода. тем не менее это средства, которые сингтегрированы в сам язык, и никто их не отделяет от "обычной" порграммы.


Шаблоны С++ не позволяют программировать генерацию. Они просто позволяют подставить праметры. Разумется, что это справедливо, если мы не ведем речь о метапрограммировании на шаблонах в стиле Александреску (с испоьзованием побочных эффектов при частичной специализации и рекурсивных шаблонах).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[32]: Generic programming
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.08.07 22:08
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

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

BZ> рднако опттимизировать скорость кода следует только в том случае, когда...

Это все лирика. Для решения конкретных задач она непригодна. Я не из тех кто будет заниматься глупыми предварительными оптимизациями. Поверь, задача того трбовала.

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


Это прописные истины. Я с ними не спорю. Вот только они не отменяют того факта, что на Хаскеле получаетя другое решение. С другими характеристиками и с другими последствиями.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[43]: Являются ли макросы свидетельством недостаточной выр
От: Cyberax Марс  
Дата: 14.08.07 22:20
Оценка:
Здравствуйте, VladD2, Вы писали:

C>>Я пробовал Nemerle'евые макросы отлаживать — нет, спасибо.

VD>А в чем проблема? Я вот во всю отлаживаю.
Неудобно. Особенно, если в макросах много логики.

VD>Проблемы конечно есть, но не с отладкой макросов. Проблема в отладке сгенерированного кода. Пока что текстовое представление для него сгенерить можно далеко (очень далеко) не всегда. Без этого проблемы могут возникнуть не толко с отладкой сгенерированного кода, но даже с его компиляцией. Компилятор будет орать непонятные вещи указывая на вызов макроса, а что за ошибка понять нельзя. Но это тоже дело времени. Сделаем грамотную генерацию текста для генерируемого макросами кода и все будет ОК.

Мне в макросах не нравится то, что мы отлаживаем не саму программу, а ее язык. Мне кажется, что нужны какие-то более глубокие средства интеграции с IDE. SymADE — это движение в этом направлении. Еще вспоминается Smalltalk'овские IDE.
Sapienti sat!
Re[42]: Являются ли макросы свидетельством недостаточной выр
От: Andrei F.  
Дата: 15.08.07 02:26
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Разница есть для пользователей. Да и стандартного АПИ мало. Нужн чтобы сами форматы были описаны. Описать их в ХМЛ проще простого.


Для пользователей, насколько я понимаю, будет иметь значение только скорость работы и объем занятых данных. Или ты что-то другое имел в виду?

VD>Описать бинарник = прибить его формат гвоздями к полу.


Обоснуй.
Re[38]: Являются ли макросы свидетельством недостаточной выр
От: EvilChild Ниоткуда  
Дата: 15.08.07 04:53
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Вообще-то это была ирония, если кто не заметил...

Ты в таких сложных местах комментарии (смайлы) добавляй,
потому как людям не использующим макросы такой юмор ещё не понятен
now playing: Marc Antona — Love Factor
Re[43]: Являются ли макросы свидетельством недостаточной выр
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.08.07 10:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что-то такого не встречал. Можно ссылочку на описание где об этом говорится? Может быть там все же приведение типво?


Тут я немножко наврал. Кое какие ограничения на типы в result expression имеются и описаны в п. 9.3 стандарта SQL'92.

AVK>> во-вторых типы параметров указываются только в момент выполнения запросов.


VD>Какие еще параметры?


Параметры запроса. Типы их нигде в самом запросе не декларируются (за исключением хранимок).
... << RSDN@Home 1.2.0 alpha rev. 716>>
AVK Blog
Re[47]: Являются ли макросы свидетельством недостаточной выр
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.08.07 10:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Дык макросам фиолетово скомпилированы ли типы которые эти макросы анализируют или просто находятся в виде исходников. Для них это прозрачно.


Зачем мне для анализа скомпилированных типов макросы? И где эти макросы надо применять, если на момент деплоймента никаких исходников нет вобще?

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


А кто тебе сказал, что у нас проблемы с проксями? Их код черт знает сколько времени не трогался вобще.
... << RSDN@Home 1.2.0 alpha rev. 716>>
AVK Blog
Re[44]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.08.07 12:02
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Тут я немножко наврал. Кое какие ограничения на типы в result expression имеются и описаны в п. 9.3 стандарта SQL'92.


У тебя он явно под рукой. Приведи, плиз, цитату.

AVK>>> во-вторых типы параметров указываются только в момент выполнения запросов.


VD>>Какие еще параметры?


AVK>Параметры запроса. Типы их нигде в самом запросе не декларируются (за исключением хранимок).


А ничего, что, скажем в C# в вызовах методов (и в LINQ-запросах) тоже не описываются типы параметров (да и возвращаемого значения тоже, начиная с 3.0)?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[43]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.08.07 12:02
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Для пользователей, насколько я понимаю, будет иметь значение только скорость работы и объем занятых данных. Или ты что-то другое имел в виду?


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

VD>>Описать бинарник = прибить его формат гвоздями к полу.


AF>Обоснуй.


Ты видил спецификации для воровского формата (бинарного)? Не STG, а того что в него пишет Ворд... Нет? Знаешь почему? Потому, что формат этот довольно гнусен и постоянно менялся МС-ом. Им проще было недокументировать данный формат оставляя отвественность за ручную модификацию (или чтение) данного формата на тех хакерах, что сами с ним смогли разобраться (и написали книжки посвященные этому). В вордоском документе запись идет не последовательно и отдельными блоками. Так проще реализовать быстрое сохранение. В купе с тем, что в отдельных блоках данные там хранятся в формате с прямой адресацией (не сериализованные) — это нехило усложняет создание собственных ридеров и райтеров для такого формата. А с ХМЛ проблем нет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.