Здравствуйте, nikov, Вы писали:
N>Здравствуйте, VladD2, Вы писали:
VD>>Проблема в том, что Хейльсерг, и многие за предеалми МС пока что сильно боятся этого.
N>Да, я когда по коридору прохожу, часто вижу, как он запрётся у себя в кабинете, забьётся в угол, и дрожит-дрожит. Боится...
Ну а ты зайди, успокой, коньячку налей. Расскажи, что не нужен С# — пора переходить на Nemerle
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[11]: есть возможность выступить перед американскими ИТинв
Здравствуйте, nikov, Вы писали:
N>Да, я когда по коридору прохожу, часто вижу, как он запрётся у себя в кабинете, забьётся в угол, и дрожит-дрожит. Боится...
Чтобы бояться чего-то не обязательно в угол забиваться. Достаточно на все вопросы и предложения отвечать "too big a gun".
В прочем, это он отвечал 5 лет назад. Давай, спроси его еще раз что он думает расширяемых языках сегодня.
Ты ему немерл показывал? А то он в прошлый раз "не смог найти документации на сайте".
Еще можно рассказать про Н2. Мы сейчас ищем на этот проект деньги. Может перелом сознания уже произошел и МС поможет нам в наших смелых планах.
Думаю ты со мной согласишься, что Н2 штука весьма перспективная, и с ее помощью можно будет сделать ДСЛьный подход доступным для широких масс.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: есть возможность выступить перед американскими ИТинв
Здравствуйте, Сонный Программист, Вы писали:
СП>Тебе бы неплохо принять более прагматичную и деловую точку зрения, если хочешь добиться успеха. Языковед-теоретик, он сегодня далеко не уйдет.
А где она? Я знаю только одну прагматичную точку зрения которая точно верна — бабло побеждает бобро.
В общем, давай конструктивнее. Есть конкретные предложения?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: есть возможность выступить перед американскими ИТинв
Здравствуйте, Сонный Программист, Вы писали:
СП>Почитал я тут немного ветку. Никогда не слышал о такое языке, но понял, ...
Сам я Пастернака не читал, но как и весь советский народ не одобряю его творчество...
СП>1. Новый язык для платформы .NET не нужен. Хватило еще цирка с VB, до сих пор два клана друг друга ненавидят. Должен быть один и стандартный язык, который понимают и любят все.
Для справки. VB старше дотнета и шарпа. C# сам по себе "новый" язык — клон Java. Ничего принципиально нового в нем, по сравнению с VB не было.
СП>2. Большинство людей на работе заняты работой, то есть, для них важен не язык, а средство технической реализации целиком, включая и язык, и библиотечную поддержку.
Полностью согласен с данным утверждением. Но почему из него следует, что не нужен хороший язык, а хорошие библиотеки нужны?
Пойми, немерл предлагает сделать язык библиотекой. Добавляешь в проект библиотеку и получаешь в свое распоряжение новый DSL.
СП>3. Большинство скажет: "Зачем нам новый язык, если и так все работает?". Будут правы, потому что большинство людей с C# очень продуктивны, а это есть единственная полезная метрика.
Опять же согласен. Большинство — это толпа. А у толпы крайне скудный интеллект. Чтобы продвинуть новые идеи в массы нужно очень много сил и бабла. Потому и придумали маркетинг. Вот только на нужности или не нужности это никак не отражается.
СП>4. Язык с таким дурацким названием не взлетит. Переименуй во что-нибудь попроще, вроде N#, тогда люди задумаются.
Ценная мысль. Следующая версия будет иметь имя N2 (или что-то воде того).
СП>А в целом ты занят ненужным делом. Извини, но это — правда.
В целом ты явно наш "клиент". Позволь посоветовать тебе не пробовать писать на этом странном языке с дурацким названием, потому как, если пройти первый момент, то потом его будет очень сложно бросить. Будет реальная ломка. Так что оставайся с толпой, а мы все же попробуем что-то сделать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: есть возможность выступить перед американскими ИТинв
Здравствуйте, Аноним, Вы писали:
А>Часто встречался, что нужен внутренний ДСЛ, но ни разу что нужен именно компилятор. Интерпретатор во многих случаях лучше. А>Будет ли возможность сделать интерпретатор с отладчиком встраиваемый?
Если нужен DSL, то делать компилятор или интерпретатор — это оверкил.
Если нужен DSL, то нужно и делать DSL.
Nemerle позволяет делать внутренний DSL. N2 будет позволять делать как внутренние DSL-и, так и внешние. Причем делать настолько просто насколько это возможно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: есть возможность выступить перед американскими ИТинв
Здравствуйте, Аноним, Вы писали:
А>Встраеваемая? А>т.е. Мне надо расширить приложение некоторым языком. На языке пишет пользователь. Будет ли компонента которую можно будет просто вставить в приложение и заработает ДСЛ, с отладкой и автокомплитом?
В ближайших планах поддержка MS VS. Это позволит использовать бесплатную ее версию где угодно. В том числе и в своих приложениях. В будущем появится поддержка Eclipse и т.п. Она изначально бесплатна.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: есть возможность выступить перед американскими ИТинв
Здравствуйте, VladD2, Вы писали:
VD>В ближайших планах поддержка MS VS. Это позволит использовать бесплатную ее версию где угодно. В том числе и в своих приложениях. В будущем появится поддержка Eclipse и т.п. Она изначально бесплатна.
Как я понял он хочет встроить IDE в свое приложение. Без всяких VS и Eclipse.
Это тоже будет можно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[19]: есть возможность выступить перед американскими ИТинв
От:
Аноним
Дата:
09.04.12 11:43
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>В ближайших планах поддержка MS VS. Это позволит использовать бесплатную ее версию где угодно. В том числе и в своих приложениях. В будущем появится поддержка Eclipse и т.п. Она изначально бесплатна.
Ты не понял.Я имею компоненту вставляемую в программу. Пусть с минимумом возможностей, зато вставляемую быстро с настраеваемым синтаксисом
Re[17]: есть возможность выступить перед американскими ИТинв
Здравствуйте, VladD2, Вы писали:
VD>Если нужен DSL, то делать компилятор или интерпретатор — это оверкил.
Это не оверкил. Ты всегда делаешь компилятор нового языка.
Пусть и на основе существующего.
VD>Nemerle позволяет делать внутренний DSL. N2 будет позволять делать как внутренние DSL-и, так и внешние. Причем делать настолько просто насколько это возможно.
Ну да. Будет позволять делать компиляторы очень просто за счет ДСЛ и библиотеки языков.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: есть возможность выступить перед американскими ИТинв
VD>Nemerle позволяет делать внутренний DSL. N2 будет позволять делать как внутренние DSL-и, так и внешние. Причем делать настолько просто насколько это возможно.
Возражу: тот вариант, который вижу в описании синтаксиса N2 и в примерах N-парсер с большой натяжкой можно назвать простым.
Когда очевидно связанная логика (syntax и его обработчик) разделена и разнесена, а код парсера имеет грязный вид ввиду постоянных повторов одинаковых тегов, преимущество с чем либо, по крайней мере на глаз, вообще не очевидно.
Re[18]: есть возможность выступить перед американскими ИТинв
Здравствуйте, _Claus_, Вы писали:
_C_>Возражу: тот вариант, который вижу в описании синтаксиса N2 и в примерах N-парсер с большой натяжкой можно назвать простым.
Покажи у кого проще.
_C_>Когда очевидно связанная логика (syntax и его обработчик) разделена и разнесена,
Ага. Имеет. Один (синтаксис) ко многим (типизациям синтаксиса).
_C_>а код парсера имеет грязный вид ввиду постоянных повторов одинаковых тегов, преимущество с чем либо, по крайней мере на глаз, вообще не очевидно.
Чего?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[19]: есть возможность выступить перед американскими ИТинв
От:
Аноним
Дата:
09.04.12 12:37
Оценка:
Здравствуйте, WolfHound, Вы писали:
Спец редакторы.
В Н2 легко могут быть описаны формы в виде wpf,будет ли добавлена возможность привязки к куску кода визуального редактора.
Например при выборе строчки в контекстном меню появляется редактор формы, если это код текста редактора формы и т д.
Будет эффктивно для создания работы с БД. Хотя там много подводных камней. Например было бы хорошо редактировать текст разбитый на файлы единым куском в визуальном редакторе в случае БД и т д
Re[19]: есть возможность выступить перед американскими ИТинв
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, _Claus_, Вы писали:
_C_>>Возражу: тот вариант, который вижу в описании синтаксиса N2 и в примерах N-парсер с большой натяжкой можно назвать простым. WH>Покажи у кого проще.
python pyparsing, boo parser, .. которых не знаю
_C_>>Когда очевидно связанная логика (syntax и его обработчик) разделена и разнесена, WH>Ага. Имеет. Один (синтаксис) ко многим (типизациям синтаксиса).
Как по мне — это искусственное усложнение. головняк прикладному программисту. Почему не связать-слить по умолчанию стандартные компоненты парсера
со стандартным AST? это устроит всех на 95%. оставшиеся 5 — добавлять, переопределять. Тогда ежу будет понятно, в 20 раз объем работы уменьшить — не мелочь какая-то.
_C_>>а код парсера имеет грязный вид ввиду постоянных повторов одинаковых тегов, преимущество с чем либо, по крайней мере на глаз, вообще не очевидно. WH>Чего?
вот это должно занимать в 4 раза меньше кода(символов). могу написать, но это очевидно. неочевидно другое, почему N2 парсер требует такого словоблудия.
по моему, метапрограммирование придумано именно для избавления от него
{
using IncParser;
using NumParser;
any = ['\u0000'..'\uFFFF'];
s : void = ' '*;
[StartRule, Ast(expr)]
start : Ast = s expr !any;
[StartRule, Ast()]
expr : Ast;
[Ast(l, expr, r)] rounds is expr = '('s expr ')'s;
[Ast(l, expr, r)] seq is expr = '{'s expr* '}'s;
[Ast(num)] num is expr = number s;
[Ast(op, expr)] neg is expr = '-'s expr : 100;
[Ast(op, expr)] prefixDec is expr = "--"s expr : 200;
[Ast(expr, op)] postfixDec is expr = expr : 200 "--"s;
[Ast(l, op, r)] add is expr = expr : 10 '+'s expr : 10;
[Ast(l, op, r)] sub is expr = expr : 10 '-'s expr : 10;
[Ast(l, op, r)] mul is expr = expr : 20 '*'s expr : 20;
[Ast(l, op, r)] div is expr = expr : 20 '/'s expr : 20;
[Ast(l, op, r)] mod is expr = expr : 20 '%'s expr : 20;
[Ast(l, op, r)] pow is expr = expr : 31 '^'s expr : 30;
}
)]
Re[20]: есть возможность выступить перед американскими ИТинв
Здравствуйте, _Claus_, Вы писали:
WH>>Покажи у кого проще. _C_>python pyparsing, boo parser, .. которых не знаю
Хренасе! Это ты называешь проще?
Вот это вот полнейшая порнография. А выделенное просто феерия.
plus = Literal( "+" )
minus = Literal( "-" )
mult = Literal( "*" )
div = Literal( "/" )
lpar = Literal( "(" ).suppress()
rpar = Literal( ")" ).suppress()
addop = plus | minus
multop = mult | div
expop = Literal( "^" )
assign = Literal( "=" )
expr = Forward()
atom = ( ( e | floatnumber | integer | ident ).setParseAction(pushFirst) |
( lpar + expr.suppress() + rpar )
)
factor = Forward()factor << atom + ZeroOrMore( ( expop + factor ).setParseAction( pushFirst ) )
term = factor + ZeroOrMore( ( multop + factor ).setParseAction( pushFirst ) )
expr << term + ZeroOrMore( ( addop + term ).setParseAction( pushFirst ) )
bnf = Optional((ident + assign).setParseAction(assignVar)) + expr
pattern = bnf + StringEnd()
Что тут начнется когда будут добавлены еще несколько операторов с разными приоритетами...
_C_>Как по мне — это искусственное усложнение. головняк прикладному программисту. Почему не связать-слить по умолчанию стандартные компоненты парсера _C_> со стандартным AST? это устроит всех на 95%. оставшиеся 5 — добавлять, переопределять. Тогда ежу будет понятно, в 20 раз объем работы уменьшить — не мелочь какая-то.
Чего?
_C_>вот это должно занимать в 4 раза меньше кода(символов). могу написать, но это очевидно. неочевидно другое, почему N2 парсер требует такого словоблудия. _C_>по моему, метапрограммирование придумано именно для избавления от него
Что тут можно в 4 раза уменьшить.
Не понимаю.
Покажи код.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[20]: есть возможность выступить перед американскими ИТинв
Здравствуйте, WolfHound, Вы писали:
WH>Как я понял он хочет встроить IDE в свое приложение. Без всяких VS и Eclipse. WH>Это тоже будет можно.
А зачем встраивать IDE? И вообще, как ты это себе видишь?
Обычно IDE открывается рядом с основным приложением (как в МС Офис). МС для этого предлагает VBA и VSIP (за деньги). Но того же самого можно достигнуть и используя бесплатные версии студии.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: есть возможность выступить перед американскими ИТинв
WH>Что тут начнется когда будут добавлены еще несколько операторов с разными приоритетами...
за pyparsing молчишь?
в приведенном фрагменте сложность сравнимая. пусть даже N выигрывает. но это явно описание со старого парсера. примеры в Boo.Meta.Extension нового должны быть.
короче, если отстают, то догонят при желании.
_C_>>Как по мне — это искусственное усложнение. головняк прикладному программисту. Почему не связать-слить по умолчанию стандартные компоненты парсера _C_>> со стандартным AST? это устроит всех на 95%. оставшиеся 5 — добавлять, переопределять. Тогда ежу будет понятно, в 20 раз объем работы уменьшить — не мелочь какая-то. WH>Чего?
А?
_C_>>вот это должно занимать в 4 раза меньше кода(символов). могу написать, но это очевидно. неочевидно другое, почему N2 парсер требует такого словоблудия. _C_>>по моему, метапрограммирование придумано именно для избавления от него WH>Что тут можно в 4 раза уменьшить. WH>Не понимаю. WH>Покажи код.
any = ['\u0000'..'\uFFFF'];
s : void = ' '*;
start = expr;
expr:
s expr s
'('expr ')'
'{'expr* '}'
num = number
prefixDec : 200 = "--"s expr
prefixAst(args)
postfixDec : 200 = expr "--"
postfixAst(args)
add: 10 = expr '+' expr
..
pow! : 30 = expr '^' expr //pow! правоассоциативная, !opx - левоассоцативная
и вот это должно развернуться в ясные классы парсера , которые могут заменяться, расширяться.
напр. оттуда генерируется что-то типа
class prefixDec: ParseType
Parse(arg: AstNode)
postfixAst(arg)
которое я могу переопределить/заменить в готовом парсере. а создавать парсеры и обслуживающую логику, как вы сейчас пишите, такого добра хватает.
+- мелочи. а уж через пять лет это точно будет слабовато.
Re[20]: есть возможность выступить перед американскими ИТинв
Здравствуйте, Аноним, Вы писали:
А>Ты не понял.Я имею компоненту вставляемую в программу. Пусть с минимумом возможностей, зато вставляемую быстро с настраеваемым синтаксисом
А чем не устраивает аналог VBA в MS Office? Мне кажется это удобнее.
Сам язык, естественно, можно будет использовать откуда угодна. Будет компонент-компилятор и т.п.
Делать за свой GUI... не уверен, что в этом имеет смысл. Это, конечно, возможно. Но стоит ли овчика выделки?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: есть возможность выступить перед американскими ИТинв
Здравствуйте, WolfHound, Вы писали:
VD>>Если нужен DSL, то делать компилятор или интерпретатор — это оверкил. WH>Это не оверкил. Ты всегда делаешь компилятор нового языка. WH>Пусть и на основе существующего.
Ты увлекся абстракцией. Я объясняю человеку разницу по сравнению с "традиционным подходом" в котором "создать компилятор" означает "взять на себя все проблемы связанные с этим".
VD>>Nemerle позволяет делать внутренний DSL. N2 будет позволять делать как внутренние DSL-и, так и внешние. Причем делать настолько просто насколько это возможно. WH>Ну да. Будет позволять делать компиляторы очень просто за счет ДСЛ и библиотеки языков.
Это не "просто". Это ноу-хау. Как сделать простым то, что раньше было оверкилом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.