Re[2]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 14:27
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Например, потому что под .NET (C#) нет ни одной доступной вменяемой библиотеки. Во всяком случае, я не нашел. Все, что есть — УГ

Есть отличный ПЕГ для немерле.

T>А регэкспы всегда под рукой, работают мегабыстро, и все возможные грабли уже давно втоптаны в землю.

На RSDN одно время была DoS уязвимость из-за того что "мегабыстрые регексы у которых все грабли втоптаны в землю" начинали дико тормозить при раскраске одного из сообщений.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: почему вы используете регулярные выражения?
От: mrTwister Россия  
Дата: 10.01.11 14:36
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


T>>Например, потому что под .NET (C#) нет ни одной доступной вменяемой библиотеки. Во всяком случае, я не нашел. Все, что есть — УГ

WH>Есть отличный ПЕГ для немерле.
А у Абрамовича есть отличный футбольный клуб. Я за него тоже рад!

T>>А регэкспы всегда под рукой, работают мегабыстро, и все возможные грабли уже давно втоптаны в землю.

WH> На RSDN одно время была DoS уязвимость из-за того что "мегабыстрые регексы у которых все грабли втоптаны в землю" начинали дико тормозить при раскраске одного из сообщений.
И что?
лэт ми спик фром май харт
Re[3]: почему вы используете регулярные выражения?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.01.11 14:38
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

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


T>>Например, потому что под .NET (C#) нет ни одной доступной вменяемой библиотеки. Во всяком случае, я не нашел. Все, что есть — УГ

WH>Есть отличный ПЕГ для немерле.

И как его вызвать из C#?

T>>А регэкспы всегда под рукой, работают мегабыстро, и все возможные грабли уже давно втоптаны в землю.

WH> На RSDN одно время была DoS уязвимость из-за того что "мегабыстрые регексы у которых все грабли втоптаны в землю" начинали дико тормозить при раскраске одного из сообщений.

Чёрт. Подробнее. Я хочу понять, _как_ можно так писать, чтобы раскрашивать сообщения регэкспами. А то моя фантазия ничего кроме пересушенной MJ не предлагает.
The God is real, unless declared integer.
Re[4]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 15:33
Оценка:
Здравствуйте, netch80, Вы писали:

WH>>Есть отличный ПЕГ для немерле.

N>И как его вызвать из C#?
Также как и из любого другого .НЕТ языка.
Собрал ДЛЛку на немерле и пользуйся сколько угодно.
А если учесть что немерле научился компилировать C#...

N>Чёрт. Подробнее. Я хочу понять, _как_ можно так писать, чтобы раскрашивать сообщения регэкспами. А то моя фантазия ничего кроме пересушенной MJ не предлагает.

По сути проблемы сказать нечего?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 15:33
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>А у Абрамовича есть отличный футбольный клуб. Я за него тоже рад!

Завидно да?

T>И что?

И то что ты врешь или как минимум заблуждаешься на счет скорости и отсутствия граблей.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: почему вы используете регулярные выражения?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.01.11 15:39
Оценка: -2
Здравствуйте, WolfHound, Вы писали:

N>>Чёрт. Подробнее. Я хочу понять, _как_ можно так писать, чтобы раскрашивать сообщения регэкспами. А то моя фантазия ничего кроме пересушенной MJ не предлагает.

WH>По сути проблемы сказать нечего?

По сути я уже сказал — если применять инструмент не по назначению, можно много интересного получить. Но бесполезного.
The God is real, unless declared integer.
Re[6]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 15:41
Оценка:
Здравствуйте, netch80, Вы писали:

N>По сути я уже сказал — если применять инструмент не по назначению, можно много интересного получить. Но бесполезного.

Что значит не по назначению?
А что за назначения у регексов как не текст разбирать?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: почему вы используете регулярные выражения?
От: mrTwister Россия  
Дата: 10.01.11 15:45
Оценка: -1
Здравствуйте, WolfHound, Вы писали:

T>>И что?

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

WH>отсутствия граблей.

Я ничего не говорил про отсутствие граблей. Я говорил, что на них уже наступили очень много раз и это преимущество.
лэт ми спик фром май харт
Re[6]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 16:25
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Ну это общеизвестный факт, что фигню можно написать, используя любую технологию.

Факт в том что на регексах не фигню написать нельзя.
Ну разве что что-то очень простое и маленькое.

T>Я ничего не говорил про отсутствие граблей. Я говорил, что на них уже наступили очень много раз и это преимущество.

Грабли нужно не документировать, а исправлять.
А у регексов грабли бай дизайн и не лечаться.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: почему вы используете регулярные выражения?
От: mrTwister Россия  
Дата: 10.01.11 17:15
Оценка:
Здравствуйте, WolfHound, Вы писали:

T>>Ну это общеизвестный факт, что фигню можно написать, используя любую технологию.

WH>Факт в том что на регексах не фигню написать нельзя.
WH>Ну разве что что-то очень простое и маленькое.
Это ты загнул.

T>>Я ничего не говорил про отсутствие граблей. Я говорил, что на них уже наступили очень много раз и это преимущество.

WH>Грабли нужно не документировать, а исправлять.
WH>А у регексов грабли бай дизайн и не лечаться.
Документированные неисправленные грабли лучше, чем недокументированные неисправленные.
лэт ми спик фром май харт
Re[8]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 17:23
Оценка: 1 (1)
Здравствуйте, mrTwister, Вы писали:

WH>>Ну разве что что-то очень простое и маленькое.

T>Это ты загнул.
Скорость работы не предсказуемая. Читаемость нулевая.

T>Документированные неисправленные грабли лучше, чем недокументированные неисправленные.

1)С чего ты взял что все грабли регексов документированы?
2)Грабли регексов принципиально не исправимы. Что ты не делай но они всеравно будут.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: почему вы используете регулярные выражения?
От: mrTwister Россия  
Дата: 10.01.11 19:17
Оценка: -1 :))
Здравствуйте, WolfHound, Вы писали:

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


WH>>>Ну разве что что-то очень простое и маленькое.

T>>Это ты загнул.
WH>Скорость работы не предсказуемая. Читаемость нулевая.
А чем предсказуемость скорости работы PEG лучше, чем у регэкспов? У последних хотя бы есть солидный опыт применения.

T>>Документированные неисправленные грабли лучше, чем недокументированные неисправленные.

WH>1)С чего ты взял что все грабли регексов документированы?
С того, что им 100 лет в обед.

WH>2)Грабли регексов принципиально не исправимы. Что ты не делай но они всеравно будут.

Ну и фиг с ними. Задачи, на которых эти грабли играют существенную роль встречаются не так часто и есть старые проверенные специализированные утилиты для их решения.
лэт ми спик фром май харт
Re[5]: почему вы используете регулярные выражения?
От: olegkr  
Дата: 10.01.11 20:42
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>Собрал ДЛЛку на немерле и пользуйся сколько угодно.

Собери, выложи пример использования из C#
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re[6]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 22:26
Оценка:
Здравствуйте, olegkr, Вы писали:

O>Собери, выложи пример использования из C#

Пишем парсер на немерле.
Подключаем к проекту на C#.
Используем.

Ты что никогда не видел как используют класс описанный в другой ДЛЛ?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 22:26
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>А чем предсказуемость скорости работы PEG лучше, чем у регэкспов? У последних хотя бы есть солидный опыт применения.

Хотябы тем что откаты ограничены.

T>С того, что им 100 лет в обед.



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

И как же ты собираешься этими утилитами чинить фундаментально не устранимые тормоза?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: почему вы используете регулярные выражения?
От: olegkr  
Дата: 10.01.11 22:33
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Пишем парсер на немерле.

Получаем по морде от манагера, ибо "это не в нашем командном духе, другие не смогут поддерживать этот код" и прочее. Кроме того с тем же успехом генериться код на сишарпе по пеговскому файлу. С регекспами удобно то, что они в несколько строчек используются без бубна и подпрыгивания.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re[8]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 22:51
Оценка:
Здравствуйте, olegkr, Вы писали:

WH>>Пишем парсер на немерле.

O>Получаем по морде от манагера, ибо "это не в нашем командном духе, другие не смогут поддерживать этот код" и прочее.
Меня просто убивает это аргумент.
Он означает что манагер держит разработчиков за тупых обезьян.
Которые простейший код понять не могут.
Тебе может и всеравно но я не собираюсь заниматься monkey driven development'ом.

O>Кроме того с тем же успехом генериться код на сишарпе по пеговскому файлу.

Далеко не с темже.
1)Нет интеграции в студию.
2)Хреновые сообщения об ошибках.

O>С регекспами удобно то, что они в несколько строчек используются без бубна и подпрыгивания.

И получаем тормоза во всех случаях кроме совсем тривиальных.
А если вдруг в грамматике появляется рекурсия то регексы просто сразу идут в печку.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: почему вы используете регулярные выражения?
От: olegkr  
Дата: 10.01.11 23:02
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Тебе может и всеравно но я не собираюсь заниматься monkey driven development'ом.

Поздравляю!

WH>1)Нет интеграции в студию.

WH>2)Хреновые сообщения об ошибках.
По сравнению с тем, что код написан на немерле — это мелочи.

WH>И получаем тормоза во всех случаях кроме совсем тривиальных.

WH>А если вдруг в грамматике появляется рекурсия то регексы просто сразу идут в печку.
Когда это актуально можно и по пегу сишарп сгенерить. Обычно неактуально, вот пег и не используется.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re[9]: почему вы используете регулярные выражения?
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 10.01.11 23:23
Оценка:
WH>2)Хреновые сообщения об ошибках.

почему?
Re[10]: почему вы используете регулярные выражения?
От: WolfHound  
Дата: 10.01.11 23:55
Оценка: +1
Здравствуйте, DarkGray, Вы писали:

WH>>2)Хреновые сообщения об ошибках.

DG>почему?
По тому что текстовый препроцессор не может давать хорошие сообщения об ошибках.
Просто по тому что не понямает того что написано в обработчиках.
В случае с Nemerle.Peg у меня есть полная информация о типах и могу проверить сигнатуру побработчика и выдать вменяемое сообщение об ошибке.
Вот например я поменял у одного из обработчиков сигнатуру.
Поставил string вместо int:
CalcParser.n(130,41):Error: The parameter "se" has wrong type string (need type int).
CalcParser.n(105,5):Error: You need define method-handler with signature: parenthesesExpr(_ : Nemerle.Peg.NToken, _ : int, _ : Nemerle.Peg.NToken) : int

Что тебе на это текстовый препроцессор скажет?
Правильно ничего.
Но потом тебе придется смотреть на сгенерированный код и пытаться понять что там не так.

А в моем случае прямо в IDE во время редактирования ошибки подсвечиваются.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.