Здравствуйте, Ziaw, Вы писали:
VD>>Опять я? Я еще должен "Язык Немерле" дописать.
Z>Я думаю тут лучше всего напишет создатель этого компилятора, hardcase, ау.
Я предлагал. Но результат тот же что и с создателем НРельсов .
Может напишите по статейки об своих продуктах? Тогда глядишь и вопрос нотобилити сам собой снимется.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Honeyman, Вы писали:
H>По истечении первых десяти лет XXI-го века, при существовании и всё бо?льшем распространении LLVM и,
LLVM бесполезное фуфло созданное для низкоуровневых языков типа С/С++.
Там даже нормальную поддержку GC сделать не могут. Shadow stack это не нормальная поддержка. Она сразу означает тормоза.
H>скажем, Parsec
Ой не смеши мои тапочки.
Комбинаторные парсеры не применимы для создания языков для широкого использования.
H>(даже не говоря уже про очевидный Lisp),
Что лисп?
В лиспе уже есть синтакс?
Или статическая типизация с выводом типов?
H>на 27-ой год существования SICP (который с той поры побывал официальным учебником в MIT)
Это вообще не в тему.
H>и на 34-ый (и на третье издание) — Dragon Book-а,
Ох. У меня иногда чешутся руки написать статью с весьма тролящим названием "dragon book considered harmful".
Я еще не разбирался с тем что там написано по поводу кодогенерации но все что там есть по поводу разбора текстов абсолютно не адекватно.
На досуге выясни как люди компиляторы для широкого использования пишут... а я тебе скажу: Генерируют лексер, а дальше в рукопашную.
И даже терминология там кривая. Синтакс с семантикой путают.
H>я вовсе не склонен считать создание собственного ЯП с компилятором или, тем более, хотя бы с интерпретатором (а уж тем более компилятора или интерпретатора к имеющемуся языку), чем-то безумно сложным и неприподъёмным.
А ты сколько компиляторов написал?
А сколько видел языков с поддержкой ИДЕ на уровне не ниже немерла?
Что? Кроме C# и Java ничего в голову не приходит?
H>(после одного из них мне, например, противно писать на чистом C как на очень опасном, ненадёжном и неудобном языке, при том что этот язык был ровно на уровне C по уровню абстракции),
Ссылку в студию!
H>Так что... если считать "законченные и рабочие компиляторы" notable по умолчанию... вот вам задачка, Berp — он как, notable для википедии? Где-нибудь в середине первой страницы результатов гугла вы его найдёте
Если ты про https://github.com/bjpop/berp/wiki/using-berp
То почему бы и нет?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>LLVM бесполезное фуфло созданное для низкоуровневых языков типа С/С++.
Жаль, создатели LLVM-бэкенда к Haskell этого не знают. И это не учитывая того, что тот же GHC транслирует высокоуровневый язык Haskell в низкоуровневый язык C, который, кхм...
H>>скажем, Parsec WH>Ой не смеши мои тапочки. WH>Комбинаторные парсеры не применимы для создания языков для широкого использования.
Да я особо и не спорю. Впрочем, для написания Scheme его вполне хватит. За 48 часов, хе-хе. А надо функциональнее — так есть механизмы и функциональнее, типа того же yacc^WHappy.
H>>(даже не говоря уже про очевидный Lisp), WH>Что лисп? WH>В лиспе уже есть синтакс? WH>Или статическая типизация с выводом типов?
А лисп — это хороший пример стирания граней между окружением, языком, программой и данными. Начиная с какого-то уровня, любую программу на лиспе можно считать новым языком. Разве нет ?
H>>я вовсе не склонен считать создание собственного ЯП с компилятором или, тем более, хотя бы с интерпретатором (а уж тем более компилятора или интерпретатора к имеющемуся языку), чем-то безумно сложным и неприподъёмным. WH>А ты сколько компиляторов написал? WH>А сколько видел языков с поддержкой ИДЕ на уровне не ниже немерла? WH>Что? Кроме C# и Java ничего в голову не приходит?
"Сперва добейся", угу ?
А поддержка IDE — это вообще... интересный... аргумент. Для человека, который перешёл с редактора в Far Manager-е на Emacs.
H>>(после одного из них мне, например, противно писать на чистом C как на очень опасном, ненадёжном и неудобном языке, при том что этот язык был ровно на уровне C по уровню абстракции), WH>Ссылку в студию!
Я же вроде приводил их в пример как not notable... в общем, в интернете я доступных описаний этого языка так и не нашёл. Уж больно стар, уж больно закрыт и нишев. Впрочем, он поддерживал модульность, был statically/strongly typed, type-safe и memory-safe, и (вкупе с окружением) задолго до того же Erlang-а позволял динамическое обновление кода (на уровне целого модуля). Я думаю, этого достаточно, чтобы оценить причины, по которым C для переходящего на него с этого языка выглядит слегка устарелым. А уж мелочей-то сколько было, типа явного управления побитовым выравниванием в структурах, строго типизированных enum-ов и числовых диапазонов (которые могли служить индексом для массива, тем самым добавляя ему memory safety — сравните, например, с fcntl(), который в простейшем случаев в качестве аргументов принимает 2 любых числа), или, скажем подсказок для branch prediction, которые можно было ставить на ветки кода/условий, целые функции или просто на отдельные значения enum-ов...
H>>Так что... если считать "законченные и рабочие компиляторы" notable по умолчанию... вот вам задачка, Berp — он как, notable для википедии? Где-нибудь в середине первой страницы результатов гугла вы его найдёте WH>Если ты про https://github.com/bjpop/berp/wiki/using-berp WH>То почему бы и нет?
Потому что это пока откровенно экспериментальная поделка без каких-либо претензий. Про неё фактически никто не знает, за пределами узкого круга хаскелевского комьюнити и приближённых к ним. Возможно, перспективная, да, но пока уж больно зачаточная.
Здравствуйте, VladD2, Вы писали:
H>>"Игнорирования одного из самых популярных русскоязычных IT-журналов" не было. По ранее описанным причинам, напоминаю, было разве что "игнорирование статей одного автора в одном из самых популярных русскоязычных IT-журналов", как, предположительно, ангажированных. VD>А где же то самое правило о предположении добрых намерений?
Ну уж никак не в противоречии к правилу о наличии third-party sources.
VD>Потом я что-то не понимаю может быть? Зачем писать о чем-то, если это что-то не нравитя и не приносит денег? А раз пишут за деньги или по интересу, то значит все авторы априори ангажированы?
Потенциальная ангажированность — это так причина, по которой википедия так требует, чтобы источники были third party.
А деньги могут прийти разными способами. Обычно всё-таки журналисты пишут не за деньги лиц, заинтересованных в предмете статьи, а за деньги редакции.
VD>Почему на вопрос о Буу был дан ответ "есть книга"? Чем эта книга отличается от моих статей? Почему автор книги не ангажирован?
Представления не имею. Может, и ангажирован. Я в AfD по Boo не участвовал, и никто при мне связей между автором и разработчиками не находил.
Впрочем, мне так кажется, что этот вопрос, вместе с вопросом по notability, уже успешно закрыт
H>>Я там приводил очень живой пример с Forbes Russia/Афиша-Еда и рестораном Ragout Бумажный self-promotion, тот спам по сути — он ничем не лучше электронного, только деревья больше страдают. VD>Я не понял этих намеков. У вас есть подозрения, что мы публикуем спам?
Нет. Это опять же объяснение требования к тому, чтобы источники были third party. Вот, например, прилагать в качестве доказательства notability к статье про «ресторан Ragout» те самые статьи в форбсе от его (предположительно) создателя было бы весьма некорректно, не?
VD>И зря. Как раз 20000 упоминаний, если это не чистый спам (что, кстатит делали D-ишники в начале раскрутки D) — это хороший показатель того, что язык известен. А вот две статьи могут быть и инсперированы.
Ой, нынче SEO такие SEO... Потому в википедии на числа в гугле уже давно не смотрят.
Здравствуйте, Honeyman, Вы писали:
H>Жаль, создатели LLVM-бэкенда к Haskell этого не знают. И это не учитывая того, что тот же GHC транслирует высокоуровневый язык Haskell в низкоуровневый язык C, который, кхм...
Хорошь заниматься художественной резьбой по цитатам.
Я написал почему.
А учитывая что хаскель сам по себе тормоз то хуже ему от этого не станет.
H>Да я особо и не спорю. Впрочем, для написания Scheme его вполне хватит.
Парсер схемы я тебе без всяких тулзов за несколько часов на чем угодно (кроме "брейнфаков") напишу.
H>За 48 часов, хе-хе. А надо функциональнее — так есть механизмы и функциональнее, типа того же yacc^WHappy.
Автоматные парсеры не адекватны.
Есле нужно парсить что-то кроме поделки синтакс которой затачивался на разбор автоматным парсером.
Скажем C# ты автоматным парсером без кучи присяданий не разберешь.
А ПЕГ сожрал и не подавился. Кстати о нем в "книге дракона" ни слова.
Про парсер Пратта тоже.
H>А лисп — это хороший пример стирания граней между окружением, языком, программой и данными. Начиная с какого-то уровня, любую программу на лиспе можно считать новым языком. Разве нет ?
Любую программу на любом языке при использовании библиотек можно считать программой написанной на ДСЛ.
Вопрос лишь в качестве этого ДСЛ.
H>"Сперва добейся", угу ?
Я тебя не прошу написать ИДЕ. Я тебя прошу показать хоть одну ИДЕ сравнимую с немерловой.
H>А поддержка IDE — это вообще... интересный... аргумент. Для человека, который перешёл с редактора в Far Manager-е на Emacs.
То что тебе ИДЕ не нужна не значит что она не нужна никому.
H>Я же вроде приводил их в пример как not notable...
Ну на немерле я тебе могу много ссылок дать. Но что-то их все записали в not notable...
Так что кто тебя знает.
H>в общем, в интернете я доступных описаний этого языка так и не нашёл. Уж больно стар, уж больно закрыт и нишев. Впрочем, он поддерживал модульность, был statically/strongly typed, type-safe и memory-safe, и (вкупе с окружением) задолго до того же Erlang-а позволял динамическое обновление кода (на уровне целого модуля).
Это крайне интересно.
Как минимум для анализа того что сделано хорошо, а что нет.
Это вообще очень актуальная тема. И если все так как ты говоришь язык безусловно заслужил известность.
H>Потому что это пока откровенно экспериментальная поделка без каких-либо претензий. Про неё фактически никто не знает, за пределами узкого круга хаскелевского комьюнити и приближённых к ним. Возможно, перспективная, да, но пока уж больно зачаточная.
А не важно на самом деле.
Если это поделка то нужно вставить плашку "поделка".
Авось кого то эта поделка заинтересует и ее доведут до состояния "не поделка".
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Honeyman, Вы писали:
WH>>LLVM бесполезное фуфло созданное для низкоуровневых языков типа С/С++. H>Жаль, создатели LLVM-бэкенда к Haskell этого не знают. И это не учитывая того, что тот же GHC транслирует высокоуровневый язык Haskell в низкоуровневый язык C, который, кхм...
Дык в хаскеле исходно был написан свой GC. Уверен, что чувак его просто не писал. А вот создание GC с нуля, да еще не для ФЯ где все побочные эффекты выделены, а для общего случая — это задача на много лет. И результат при этом не гарантирован. В Моно до сих пор GC слабенький.
Потом если речь об этом, то это очередная студенческая поделка. Скорее всего использовать на практике ее будет нельзя. А до ума ее скорее всего не доведут. Задача же бакалавра защитить, а не компилятор хаскеля улучшить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Honeyman, Вы писали:
WH>>Комбинаторные парсеры не применимы для создания языков для широкого использования. H>Да я особо и не спорю. Впрочем, для написания Scheme его вполне хватит. За 48 часов, хе-хе.
Вообще-то парсер Схемы пишется часа за 2 максимум, и никакой особый построитель парсера там не нужен, ибо там достаточен LL(1) по наипростейшей грамматике. Применять комбинаторный парсер для случая, где сойдет LL(1) — это надо быть ну очень далеко от предмета. Ну и плюс использование ленивости там, где принципиально не требуются откаты — это, мягко говоря, безграмотно.
В принцип, за неделю накатать Схему целиком по готовому, разжеванному для "домохозяек" R5RS, можно на любом языке, где есть GC. Только тут ничего интересного, ибо интерпретатор можно и побыстрее написать, просто автор половину времени экспериментировал с эффективной математикой на big-integer.
H>А лисп — это хороший пример стирания граней между окружением, языком, программой и данными. Начиная с какого-то уровня, любую программу на лиспе можно считать новым языком. Разве нет ?
Нет. Про Форт, например, такую околесицу никто не несет. Хотя возможностей по метапрограммированию не меньше, а скорее наоборот.
WH>>Что? Кроме C# и Java ничего в голову не приходит? H>"Сперва добейся", угу ?
Разве у оппонента награды или грамоты? Речь о результатах труда, которые каждый может пощупать.
H>А поддержка IDE — это вообще... интересный... аргумент. Для человека, который перешёл с редактора в Far Manager-е на Emacs.
А ну да. И проекты по 10-100 тыс строк максимум. Действительно, тут аргументы не нужны.
H>Я же вроде приводил их в пример как not notable... в общем, в интернете я доступных описаний этого языка так и не нашёл. Уж больно стар, уж больно закрыт и нишев. Впрочем, он поддерживал модульность, был statically/strongly typed, type-safe и memory-safe, и (вкупе с окружением) задолго до того же Erlang-а позволял динамическое обновление кода (на уровне целого модуля). Я думаю, этого достаточно, чтобы оценить причины, по которым C для переходящего на него с этого языка выглядит слегка устарелым.
H>А уж мелочей-то сколько было, типа явного управления побитовым выравниванием в структурах
есть #pragma
H>строго типизированных enum-ов
Дык, у тебя не было возможности за последние 20 лет посмотреть на С++?
H>и числовых диапазонов (которые могли служить индексом для массива, тем самым добавляя ему memory safety — сравните, например, с fcntl(), который в простейшем случаев в качестве аргументов принимает 2 любых числа),
Вопрос про С++ в силе.
H>или, скажем подсказок для branch prediction, которые можно было ставить на ветки кода/условий, целые функции или просто на отдельные значения enum-ов...
У-у, как все запущено. Как насчет освежить познания по суперкомпиляции в современных компиляторах С++?
Здравствуйте, Honeyman, Вы писали:
H>после одного из них мне, например, противно писать на чистом C как на очень опасном, ненадёжном и неудобном языке, при том что этот язык был ровно на уровне C по уровню абстракции
А что из себя представляет этот язык, если не секрет, и почему он not notable enough?
Здравствуйте, vdimas, Вы писали:
H>>А поддержка IDE — это вообще... интересный... аргумент. Для человека, который перешёл с редактора в Far Manager-е на Emacs. V>А ну да. И проекты по 10-100 тыс строк максимум. Действительно, тут аргументы не нужны.
IDE — это хорошо, даже прекрасно, в случае, когда посвящаешь себя одному языку программирования (ну, или, в случае Nemerle/Visual Studio, одной платформе). Если же в жизни случается разнообразие, то зачастую бывает комфортнее иметь что-то лёгкое и общее (типа Emacs-а) и для Makefile-ов, и для кода на двух-трёх используемых языках, и для шаблонов для кодогенератора. К тому же, даже в случае IDE, выбор самого IDE часто неоднозначен. Так что наличие хоть какого IDE для языка — это хорошо, но, на мой взгляд, не самоцель; вот популярность его настолько, что комьюнити добавило его поддержку в самые распространённые платформы, от Vim/Emacs до MonoDevelop, Eclipse и Xcode...
H>А уж мелочей-то сколько было, типа явного управления побитовым выравниванием в структурах V>есть #pragma
Таки уже есть? Я детально С не занимался уже давно — можно там указать, что "вот этот enum в двухбайтовой структуре должен занять 4 бита, после него вот этот — 2 бита, потом пойдёт 6-битовый тип, который перейдёт границу байта, но должен, для резерва на будущее, захватить 8 битов, а последние 2 бита ничем не заняты"?
H>>строго типизированных enum-ов V>Дык, у тебя не было возможности за последние 20 лет посмотреть на С++?
H>>и числовых диапазонов (которые могли служить индексом для массива, тем самым добавляя ему memory safety — сравните, например, с fcntl(), который в простейшем случаев в качестве аргументов принимает 2 любых числа), V> V>Вопрос про С++ в силе.
Я нисколько не удивлён, что за 20 (хотя сейчас уже, похоже, ближе к 30) лет хоть что-то из этого языка потянули в другие, в тот же C++. Шаблонами в С++ это всё наверняка можно сделать, оно даже выглядеть будет не более чем на десятичный порядок более громоздко (а без шаблонов я возможности сделать массив, индексированный enum-ом или ограниченным числовым диапазоном, я что-то ни в C++0x, ни в C1X не заметил). Просто я вроде бы явно подчеркнул, что этот язык по степени абстракции находился не на уровне C++, а где-то на уровне C. Метапрограммирования там не было нувообще, а классы были в каком-то зачаточном состоянии, ими почти не пользовались (потому что и без них было хорошо — лет за 6 писанины на этой штуковине я написал, точно помню, ровно один класс, и то только для того, чтобы при любом завершении доступа к какому-то ресурсу деструктор гарантированно закрывал доступ), но, когда пользовались, то они даже вписывались в упомянутую возможность динамического обновления кода.
H>>или, скажем подсказок для branch prediction, которые можно было ставить на ветки кода/условий, целые функции или просто на отдельные значения enum-ов... V>У-у, как все запущено. Как насчет освежить познания по суперкомпиляции в современных компиляторах С++?
Ну вижу я __builtin_expect в GCC, что примерно соответствует одному из упомянутых кейсов (в компиляторе 20-30-летней давности, ага ). Только до уровня
enum error_codes {
ok <usual>,
file_not_found,
invalid_permissions,
wrong_structure <rare>
}
(синтаксис приблизительный) оно таки не дошло по функционалу, а до
switch (op){
case Forward:<usual> go_forward();
case Left, Right: turn();
case Backward:<rare> reverse()
}
(опять-таки, синтаксис приблизительный) — по наглядности и простоте. А профили — это подход к проблеме со слишком другого, эмпирического, конца.
В общем, я вижу, ряду людей на RSDN-е это интересно. Как-нибудь постараюсь, поищу источники, может, статья в википедии и получится. Язык интересный, да, но, будучи внутренним языком крупного разработчика для telco-индустрии, он особо в СМИ не попадал. Поэтому проблемы будут не только в доказательстве notability, но и просто в подтверждении материала хоть какими-то сторонними источниками.
Здравствуйте, vdimas, Вы писали:
ГВ>>Напротив, возникает вопрос: почему на языке международного общения так мало написано про Nemerle, что не удалось заткнуть каких-то там модераторов "жёлтой газетёнки"? V>Достаточно, например перевод статей RSDN. Я же говорю, целый источник был выкинут из рассмотрения по необъективным причинам.
P.S.: Для меня всё равно остаётся загадкой такое внимание к статьям в википедии, но это вопрос для другого форума.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали: V>Как насчет освежить познания по суперкомпиляции в современных компиляторах С++?
Что это за зверь — суперкомпиляция в современных компиляторах С++?
Здравствуйте, Honeyman, Вы писали:
H>Язык интересный, да, но, будучи внутренним языком крупного разработчика для telco-индустрии, он особо в СМИ не попадал.
Секретный или просто не рекламируется?
H>Поэтому проблемы будут не только в доказательстве notability, но и просто в подтверждении материала хоть какими-то сторонними источниками.
Здравствуйте, Honeyman, Вы писали:
H>В общем, я вижу, ряду людей на RSDN-е это интересно. Как-нибудь постараюсь, поищу источники, может, статья в википедии и получится. Язык интересный, да, но, будучи внутренним языком крупного разработчика для telco-индустрии, он особо в СМИ не попадал. Поэтому проблемы будут не только в доказательстве notability, но и просто в подтверждении материала хоть какими-то сторонними источниками.
Мне не нужны источники. Я материал на вшивость сам проанализировать могу.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: Подводя итоги...
От:
Аноним
Дата:
18.02.11 09:03
Оценка:
Здравствуйте, WolfHound, Вы писали:
H>>и на 34-ый (и на третье издание) — Dragon Book-а, WH>Ох. У меня иногда чешутся руки написать статью с весьма тролящим названием "dragon book considered harmful". WH>Я еще не разбирался с тем что там написано по поводу кодогенерации но все что там есть по поводу разбора текстов абсолютно не адекватно. WH>На досуге выясни как люди компиляторы для широкого использования пишут... а я тебе скажу: Генерируют лексер, а дальше в рукопашную. WH>И даже терминология там кривая. Синтакс с семантикой путают.
А напиши. Если PEG и правда так крут, как вы тут намекаете, статья может получиться интересная. Опять же, будет пример чего-то практического, написанного на немерле.
Здравствуйте, <Anonymous>, Вы писали:
A>Если PEG и правда так крут, как вы тут намекаете, статья может получиться интересная. Опять же, будет пример чего-то практического, написанного на немерле.
Здравствуйте, Аноним, Вы писали:
А>А напиши. Если PEG и правда так крут, как вы тут намекаете, статья может получиться интересная. Опять же, будет пример чего-то практического, написанного на немерле.
Я одного не понимаю зачем разным прохожим с улицы какие-то новые технологии? Вы же все равно их использвать не будете.
Статьи есть. Кто хочет, то пользуется гуглем. Например, вот
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>За всех не могу сказать, но по моей практике — и две недели на реализацию DSL не оказывают существенного влияния (коль скоро речь в проекте вообще зашла о развитии DSL).
Две не дели на хитрый ДСЛ — это не так уж и много. Вот когда на это начинают уходить месяцы, а то и годы. И потом еще постоянно тратится много сил на развитие и поддержку, вот тут и начинаются проблемы. Многие боятся ДСЛ-ей именно в следствии своей негативной практики. А практика зачастую связана с выбором не подходящего инструмента и плохого дизайна ДСЛ-я.
ГВ>А вот на устаканивание множества термов языка, на построение их взаимосвязей, может уйти несопоставимо больше времени. Плюс-минус неделя здесь — да никакой разницы.
Что за устаканивание? Если у тебя качественный инструмент, то несогласованность сразу должна вылезти.
ГВ>Да, согласен, инфраструктура (IDE, отладчик) — очень полезная штука, не спорю. Но понимаешь ли... DSL разрабатываются не только для использования в среде .Net. А вне .Net Nemerle не слишком рулит.
Это не проблем немерла или дотнета. Это проблема остальных. Надо не искать фатальные недостатки в немерле, а делать аналоги для других окружений.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Подводя итоги...
От:
Аноним
Дата:
19.02.11 13:18
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Аноним, Вы писали:
А>>А напиши. Если PEG и правда так крут, как вы тут намекаете, статья может получиться интересная. Опять же, будет пример чего-то практического, написанного на немерле.
VD>Статьи есть. Кто хочет, то пользуется гуглем. Например, вот
или вот. Чтобы убедиться в крутости не надо даже статей читать. Качаешь инсталлятор и тратишь пол часа на эксперименты.
За ссылки спасибо, прочитал. Ничего революционного не увидел. Еще один антлр, только другой и на Н. На "... considered harmful" не тянет. А жаль.
VD>Я одного не понимаю зачем разным прохожим с улицы ...
RSDN я читаю не первый год, и твой хамский тон не удивляет.
VD> ... какие-то новые технологии? Вы же все равно их использвать не будете.
Только потому, что они новые? Нет, не будем.
Здравствуйте, Аноним, Вы писали:
VD>>Я одного не понимаю зачем разным прохожим с улицы ... А>RSDN я читаю не первый год, и твой хамский тон не удивляет.
А, критиковать из под анонимуса, сидя "не первый год"(sic!), это, конечно, не хамство.
Здорово, "прохожий с улицы" уже считается хамством.
Я тебе больше скажу, Влад слишком толерантен, ты — малолетний дурачок.
«История жизни – это, по существу, развитие сознания, которое завуалировано морфологией.» Пьер Тейяр де Шарден
Здравствуйте, VladD2, Вы писали:
ГВ>>За всех не могу сказать, но по моей практике — и две недели на реализацию DSL не оказывают существенного влияния (коль скоро речь в проекте вообще зашла о развитии DSL). VD>Две не дели на хитрый ДСЛ — это не так уж и много. Вот когда на это начинают уходить месяцы, а то и годы. И потом еще постоянно тратится много сил на развитие и поддержку, вот тут и начинаются проблемы. Многие боятся ДСЛ-ей именно в следствии своей негативной практики. А практика зачастую связана с выбором не подходящего инструмента и плохого дизайна ДСЛ-я.
+1. Правда, в той реплике, на которую я отвечал, речь шла о "паре дней". Я с трудом представляю, что за DSL можно довести до модели за пару дней. Разве что, какой-нибудь язык регэкспов.
И ещё одно: DSL-ей "боятся" не больше, чем любой другой работы с неясной целью. Короче говоря, если нет ясности в ответе на вопрос "зачем?", то бояться будут лишнего параметра в API, не то, что DSL. Кстати, этот "страх" совершенно обоснован: смутное "зачем" приводит нас к мутным ответам, то есть, по сути, решение становится средством доопределения задачи — а это ни что иное, как банальная постановка вещей с ног на голову, только и всего. Premature ... is a root of evil.
ГВ>>А вот на устаканивание множества термов языка, на построение их взаимосвязей, может уйти несопоставимо больше времени. Плюс-минус неделя здесь — да никакой разницы. VD>Что за устаканивание? Если у тебя качественный инструмент, то несогласованность сразу должна вылезти.
Грубо говоря, вопрос ставится так: каков набор терминов предметной области, какие из них должны стать "ключевыми словами" DSL, какие — будут производными, а какие — вообще не нужны в DSL. Ну а дальше — определение необходимых/разрешённых комбинаций и т.п. Короче говоря — Domain Specifics. Соответственно, вытягивание такого языка на уровень языка общего назначения — это, зачастую, мягко говоря, избыточная задача. Ну и парсер тут, как ты понимаешь — далеко не самая большая проблема.
ГВ>>Да, согласен, инфраструктура (IDE, отладчик) — очень полезная штука, не спорю. Но понимаешь ли... DSL разрабатываются не только для использования в среде .Net. А вне .Net Nemerle не слишком рулит. VD>Это не проблем немерла или дотнета. Это проблема остальных. Надо не искать фатальные недостатки в немерле, а делать аналоги для других окружений.
Я имел в виду, что в некоторых случаях Nemerle + .Net + VS не получится использовать по объективным причинам. Чья это проблема — не знаю, зависит от предпочтений.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!