"eao197" <31476@users.rsdn.ru> wrote in message news:2314503@news.rsdn.ru... > Здравствуйте, Cyberax, Вы писали: > >>> В news-группе digitalmars.D в последнее время стал часто появляться >>> небезызвестный изобретатель трехэтажных шаблонов, Андрей Александреску. > C>Ничего, вот еще Буст портируют и вообще красота будет > > Вообще-то в портировании Boost-а в D (ну или какой-то его части), имхо, > смысла может быть больше, чем в развитии Boost-а для C++.
А кому это надо? Кто сейчас на D пишет? Мизер по сравнению с C++. А пока
D разовьет момент, там уже и C++09 выйдет с примерно такими же фичами.
Posted via RSDN NNTP Server 2.0
Re[5]: Ой, чо с D: подтянулся Александреску, начались пошлос
Здравствуйте, alexeiz, Вы писали:
>> Вообще-то в портировании Boost-а в D (ну или какой-то его части), имхо, >> смысла может быть больше, чем в развитии Boost-а для C++.
A>А кому это надо? Кто сейчас на D пишет? Мизер по сравнению с C++. А пока A>D разовьет момент, там уже и C++09 выйдет с примерно такими же фичами.
Во-первых, мне кажется, что C++09 будет очень сильно отличаться от D. Это уже разные языки, не смотря на общих предков. И со временем это различие будет проявляться все сильнее.
Во-вторых, не важно, сколько именно людей программируют на D сейчас. Гораздо важнее, сколько обращают внимание на D и с какой динамикой программисты мигрируют на D (причем, что удивительно, не только с C++). Хорошая динамика сейчас создаст значительную D community к моменту появления C++09.
В-третьих, проблема C++ была в том, что он не обеспечил своим пользователям приличной стандартной библиотеки сразу. Из-за этого такой разброд и шатания: для одних только GUI -- MFC, WTL, Qt, FLTK, FOX, ... Для околосистемного программирования, например, ACE и Poco. Да тут еще и Boost подходит, который лично мне не нравится. Но, тем не менее, становится каким-то доминирующим центром развития C++. А у D в этом смысле сейчас уникальная ситуация -- первые появившиеся качественные библиотеки (вроде Phobos и Mango, а так же готовящейся к выходу замены Mango -- Tango) станут де-факто стандартными и не позволят повторить для D старую проблему C++.
Так что нужно это тем, кто будет программировать на D через год-полтора.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Ой, чо с D: подтянулся Александреску, начались пошлос
Здравствуйте, eao197, Вы писали:
E>Во-вторых, не важно, сколько именно людей программируют на D сейчас. Гораздо важнее, сколько обращают внимание на D и с какой динамикой программисты мигрируют на D (причем, что удивительно, не только с C++). Хорошая динамика сейчас создаст значительную D community к моменту появления C++09.
... E>Так что нужно это тем, кто будет программировать на D через год-полтора.
Вот пусть они и пишут этот новый Boost. Сначала деньги, потом стулья. Библиотека на пустом месте без заинтересованных людей не появится. И какая там у D ситуация, уникальная, неуникальная, значения не имеет.
>Да тут еще и Boost подходит, который лично мне не нравится.
Тогда зачем тебе boost на D, если тебе не нравится сама идея такой библиотеки? Или тебя гнетет ее реализация на C++?
Re[7]: Ой, чо с D: подтянулся Александреску, начались пошлос
Здравствуйте, alexeiz, Вы писали:
A>Вот пусть они и пишут этот новый Boost. Сначала деньги, потом стулья. Библиотека на пустом месте без заинтересованных людей не появится.
Так ведь пишут. В том числе и некоторые вещи из Boost-а начинают включаться в стандартную библиотеку D: std.bind к примеру.
>>Да тут еще и Boost подходит, который лично мне не нравится.
A>Тогда зачем тебе boost на D, если тебе не нравится сама идея такой библиотеки? Или тебя гнетет ее реализация на C++?
В Boost-е есть довольно-таки полезные штуки. Но мне не нравится, во-первых, что C++ные шаблоны довольно многословные и некоторые практики их использования основываются на т.н. side effect-ах. И, во-вторых, их использование существенно замедляет компиляцию.
Ну и еще мне не очень нравится, что Boost такой огромный. Вроде как из него как-то можно выделять отдельные библиотеки, но я не пробовал. Имхо, было бы лучше, если бы Boost представлял из себя что-то вроде собрания отдельных библиотечек изначально. Как в RubyGems сделано -- когда можно сразу скачать то, что нужно. Причем с контролем зависимостей. Для D, насколько мне известно, такую штуку пытаются сделать уже сейчас (DSSS называется).
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Ой, чо с D: подтянулся Александреску, начались пошлос
Здравствуйте, alexeiz, Вы писали:
A>Вот пусть они и пишут этот новый Boost. Сначала деньги, потом стулья. Библиотека на пустом месте без заинтересованных людей не появится. И какая там у D ситуация, уникальная, неуникальная, значения не имеет.
Так в D очень приличная часть буста просто не нужна.
>>Да тут еще и Boost подходит, который лично мне не нравится.
A>Тогда зачем тебе boost на D, если тебе не нравится сама идея такой библиотеки? Или тебя гнетет ее реализация на C++?
Кстати реализация шаблоных штучек на D вполне читабельна в отличии от C++. Можно открыть тот же файл bind.d и читать его, при том усилий прикладывается не намного больше чем при чтении не шаблоного кода. В C++ так с ходу с нетривиальными шаблонами разобратся просто не реально.
Re[8]: Ой, чо с D: подтянулся Александреску, начались пошлос
Здравствуйте, FR, Вы писали:
FR>Так в D очень приличная часть буста просто не нужна.
Это ситуации не меняет.
>>>Да тут еще и Boost подходит, который лично мне не нравится.
A>>Тогда зачем тебе boost на D, если тебе не нравится сама идея такой библиотеки? Или тебя гнетет ее реализация на C++?
FR>Кстати реализация шаблоных штучек на D вполне читабельна в отличии от C++.
В boost'е шаблоны используются как инструмент, а не как цель. Поэтому смысл твоей фразы неясен.
> Можно открыть тот же файл bind.d и читать его, при том усилий прикладывается не намного больше чем при чтении не шаблоного кода. В C++ так с ходу с нетривиальными шаблонами разобратся просто не реально.
Да, штука интересная. Только непонятно, зачем ее написали, когда в языке есть лямбды.
Re[5]: Ой, чо с D: подтянулся Александреску, начались пошлос
Здравствуйте, eao197, Вы писали:
E>В Boost-е есть довольно-таки полезные штуки. Но мне не нравится, во-первых, что C++ные шаблоны довольно многословные и некоторые практики их использования основываются на т.н. side effect-ах. И, во-вторых, их использование существенно замедляет компиляцию.
Компиляцию замедляют не шаблоны.
Ее замедляет отсуствие модульности, наличие кривой грамматики языка, то что эту грамматику нельзя распарсить без разбора типов, и то что на шаблонах производятся вычисления во время компиляции.
Первые две проблемы в Ди решены. Последняя — нет.
Дагадайтесь как называется зяык где таких проблем небыло от родясь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Ой, чо с D: подтянулся Александреску, начались пошлос
VladD2 wrote: > Компиляцию замедляют не шаблоны. > Ее замедляет отсуствие модульности, наличие кривой грамматики языка, то > что эту грамматику нельзя распарсить без разбора типов, и то что на > шаблонах производятся вычисления во время компиляции. > > Первые две проблемы в Ди решены. Последняя — нет. > > Догадайтесь как называется зяык где таких проблем небыло от родясь.
То есть грамматика языка легко разбирается, есть модули и нормальные
вычисления во время компиляции? Ну, первый пункт наводит на мысли про
LISP-подобные, остальные приводят к мысли, что это компилируемая
реализация Common Lisp.
Posted via RSDN NNTP Server 2.1 beta
Re[10]: Ой, чо с D: подтянулся Александреску, начались пошло
Здравствуйте, raskin, Вы писали:
R>То есть грамматика языка легко разбирается, есть модули и нормальные R>вычисления во время компиляции?
Да.
R> Ну, первый пункт наводит на мысли про R>LISP-подобные, остальные приводят к мысли, что это компилируемая R>реализация Common Lisp.
Не совсем. Кое что от Лиспа взято, но язык ближе к C# и O'Caml.
В обещм, проще прочитать.
В общем, это лучше чем Лисп, C# и O'Caml по отдельности.
Но народ тупо обсуждает язык который чуть-чуть лучше чем С++.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Ой, чо с D: подтянулся Александреску, начались пошло
VladD2 wrote: > R>То есть грамматика языка легко разбирается, есть модули и нормальные > R>вычисления во время компиляции? > > Да. > > R> Ну, первый пункт наводит на мысли про > R>LISP-подобные, остальные приводят к мысли, что это компилируемая > R>реализация Common Lisp. > > Не совсем. Кое что от Лиспа взято, но язык ближе к C# и O'Caml.
Ну, там грамматика сложная (хотя не катастрофа вроде вариантов
синтаксиса С). Кто тут рассказывал про два дерева разбора?
> В обещм, проще прочитать <http://rsdn.ru/summary/3766.xml>. > В общем, это лучше чем Лисп, C# и O'Caml по отдельности.
Сколько надо сил, чтобы поставить это на КПК? 500Мб места готов выделить
на всё, включая .NET CF . Пока на КПК я держу Scheme и J.
Вместо shell я это в любом случае для скриптов использовать не буду,
пока очень хорошо не освою..
Posted via RSDN NNTP Server 2.1 beta
Re[9]: Ой, чо с D: подтянулся Александреску, начались пошлос
Здравствуйте, eao197, Вы писали:
A>>Тогда зачем тебе boost на D, если тебе не нравится сама идея такой библиотеки? Или тебя гнетет ее реализация на C++?
E>В Boost-е есть довольно-таки полезные штуки. Но мне не нравится, во-первых, что C++ные шаблоны довольно многословные и некоторые практики их использования основываются на т.н. side effect-ах. И, во-вторых, их использование существенно замедляет компиляцию.
Да, и при этом могут быть совершенно чудовищные сообщения об ошибках.
E>Ну и еще мне не очень нравится, что Boost такой огромный. Вроде как из него как-то можно выделять отдельные библиотеки, но я не пробовал.
Конечно, можно. Большинство самых полезных библиотек независимы и полностью в заголовочных файлах и их даже компилировать не надо.
E> Имхо, было бы лучше, если бы Boost представлял из себя что-то вроде собрания отдельных библиотечек изначально.
Фактически так и есть:
A Boost library should not use libraries other than Boost or the C++ Standard Library.
A Boost library should use other Boost Libraries or the C++ Standard Library, but only when the benefits outweigh the costs.
FR>>Кстати реализация шаблоных штучек на D вполне читабельна в отличии от C++.
A>В boost'е шаблоны используются как инструмент, а не как цель. Поэтому смысл твоей фразы неясен.
Тем что это значит что и писабельна тоже
Так что писать вещи на шаблонах на D гораздо легче, и более реален вариант вместо "возьму из буста" "напишу сам"
>> Можно открыть тот же файл bind.d и читать его, при том усилий прикладывается не намного больше чем при чтении не шаблоного кода. В C++ так с ходу с нетривиальными шаблонами разобратся просто не реально.
A>Да, штука интересная. Только непонятно, зачем ее написали, когда в языке есть лямбды.
ну иногда бинд удобнее.
Re[12]: Ой, чо с D: подтянулся Александреску, начались пошло
Здравствуйте, raskin, Вы писали:
>> Не совсем. Кое что от Лиспа взято, но язык ближе к C# и O'Caml. R>Ну, там грамматика сложная (хотя не катастрофа вроде вариантов R>синтаксиса С).
Где, там? И что с синтаксисом С? Ничего не понял.
R>Кто тут рассказывал про два дерева разбора?
Не понял контекста.
R>Сколько надо сил, чтобы поставить это на КПК? 500Мб места готов выделить R>на всё, включая .NET CF . Пока на КПК я держу Scheme и J.
Мегабайт то надо не много. Но не факт, что компилятор встанет на CF. Помнится кто-то писл что были какие-то проблемы прчем не связанные с компилятором как таковым. Если не ошибаюсь на CF не реализован Reflection.Emit требующийся для компилятора, или еще что-то в этом роде.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Ой, чо с D: подтянулся Александреску, начались пошло
VladD2 wrote: >>> Не совсем. Кое что от Лиспа взято, но язык ближе к C# и O'Caml. > R>Ну, там грамматика сложная (хотя не катастрофа вроде вариантов > R>синтаксиса С). > Где, там? И что с синтаксисом С? Ничего не понял.
Там — у Немерле. По сравнения с С/С++ грамматика, вероятно проще и более
понятна, но по сравнению с LISP ясно, что грамматика сложна.
> R>Кто тут рассказывал про два дерева разбора? > > Не понял контекста.
Ну, Вы вроде говорили, как пример удобства Nemerle, что на нём хорошо
пишутся сложные парсеры, например, его собственный. Так что грамматика
не кривая и без разбора типов, но не совсем легко разбирается, как я понял.
> R>Сколько надо сил, чтобы поставить это на КПК? 500Мб места готов выделить > R>на всё, включая .NET CF . Пока на КПК я держу Scheme и J. > > Мегабайт то надо не много. Но не факт, что компилятор встанет на CF.
Ну Mono хотел бы, кажется, за 100. Интересно, он есть под WM?
> Помнится кто-то писл что были какие-то проблемы прчем не связанные с > компилятором как таковым. Если не ошибаюсь на CF не реализован > Reflection.Emit требующийся для компилятора, или еще что-то в этом роде.
Ну значит не судьба..
Posted via RSDN NNTP Server 2.1 beta
Re[6]: Ой, чо с D: подтянулся Александреску, начались пошлос
Здравствуйте, raskin, Вы писали:
R>Там — у Немерле. По сравнения с С/С++ грамматика, вероятно проще и более R>понятна, но по сравнению с LISP ясно, что грамматика сложна.
Граматика у С++ раза в два проще чем у C# и темболее чем у Немерла. Вот только сложность и удобство использования языка никакого отношения к сложности его грамматики не имеют. Язык удобен если он интуитивно понятен. И тут, пожалуй, Лисп будет полнейшим аутсайдером.
К тому же, что называть грамматикой Лиспа? С одной стороны у него вообще нет грамматики. Лисп — это программирование в AST. С другой Лисп как ХМЛ обладает (назавем это так) надстроечной грамматикой. Все соглашения о том, что список (+ 1 2) является сложением, а (defclass ...) объявлением класса — это и есть эта самая надстроечная грамматика. И в тут Лисп ни чем не отличается от других языков. Если в нем та же грамматика ООП примитивна, то это только ухудшает жизнь программиста вынужденного его использовать.
Лично я не вижу тут никакого приемущества. Лисп — это язык в котором пропущена одна из стадий работы компилятора — парсинга. И это само по себе усложняет зизнь. А возможности которые дает тот факт, что программу можно представить в виде вложенных списко можно получить используя квази-цитирование.
Так что разговоры о простоте и сложности грамматик я считаю слишком поверхностными и бессмысленными.
R>Ну Mono хотел бы, кажется, за 100. Интересно, он есть под WM?
Незнаю. Вряд ли. Рантайм моно очень маленький (что-то около 2 метров). 100 — это, видимо, все исходники.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Ой, чо с D: подтянулся Александреску, начались пошло
VladD2 wrote: > R>Там — у Немерле. По сравнения с С/С++ грамматика, вероятно проще и более > R>понятна, но по сравнению с LISP ясно, что грамматика сложна. > > Граматика у С++ раза в два проще чем у C# и темболее чем у Немерла. Вот
Проще по объёму или по запутанности?
> только сложность и удобство использования языка никакого отношения к > сложности его грамматики не имеют. Язык удобен если он интуитивно
Речь шла о проблемах парсеров, не надо грязи.
> понятен. И тут, пожалуй, Лисп будет полнейшим аутсайдером.
Тогда почему Паскаль не вытеснил всё, что можно? Даже ярые сторонники
синтаксиса С периодически признаются, что не умея писать на Паскаль,
читать его они могут. Хотя, конечно по сравнению с
Lisp/Scheme/Nemerle/Scala недостаток возможностей бывает заметен. А
после прикручивания прозрачной кодогенерации (тоже на Паскаль,
разумеется, макрокод встроен в код и перегенерация происходит
автоматически) интуитивности не остаётся.
А читать LISP.. При подсветке скобок нормально. Мне хватило в школе
довольно малого объёма, написанного на Lisp-подобном минималистском
языке, чтобы это мне не мешало читать программу.
> К тому же, что называть грамматикой Лиспа? С одной стороны у него вообще > нет грамматики. Лисп — это программирование в AST. С другой Лисп как ХМЛ
Правила расстановки скобок — уже грамматика, хотя и простая. Даже со
стандартными reader-macro вроде ` и ' .
> обладает (назавем это так) надстроечной грамматикой. Все соглашения о > том, что список (+ 1 2) является сложением, а (defclass ...) объявлением > класса — это и есть эта самая надстроечная грамматика. И в тут Лисп ни
Формально в грамматику я бы включил тот факт, что эти операции
определены. То, что (= (+ 1 2) 3), это уже не к тому относится.
> чем не отличается от других языков. Если в нем та же грамматика ООП > примитивна, то это только ухудшает жизнь программиста вынужденного его
Нет там грамматики ООП. ООП — всего лишь библиотека.. Но если считать её
данностью — то грамматика весьма обширна. > использовать. > > Лично я не вижу тут никакого приемущества. Лисп — это язык в котором > пропущена одна из стадий работы компилятора — парсинга. И это само по
Имеется много библиотек, позволяющих её вернуть при желании. Не то,
чтобы ими совсем не пользовались — пользуются, когда действительно надо.
Потом опять бросают..
Преимуществом простота грамматики является для особо запутанных
макросов. Их, действительно, довольно мало. Переходить с Lisp многие не
хотят, скорее, из-за динамической типизации — если не считать её
абсолютным злом, и пользоваться при необходимости синтаксисом (после
небольшой привычки это не всегда удобнее), то фатальных недостатков нет,
и начинают играть роль мелочи — припасённая библиотека своих и найденных
функций, детали поведения макросистемы (вроде объявления макроса в том
же файле, где он используется), в случае Scheme — привычное в деталях
поведение полноценных continuations.
> себе усложняет зизнь. А возможности которые дает тот факт, что программу > можно представить в виде вложенных списко можно получить используя > квази-цитирование. > > R>Ну Mono хотел бы, кажется, за 100. Интересно, он есть под WM? > > Незнаю. Вряд ли. Рантайм моно очень маленький (что-то около 2 метров).
Посмотрел. Нет. Жаль. > 100 — это, видимо, все исходники.
Наверное, я что-то напортачил и собрал debug с максимально полной
информацией.