Re[3]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 23.01.07 16:56
Оценка: :)))
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

E>>Вот например, предложил написать обобщенный вариант функции max, удовлетворяющей следующим условиям:

E>>

E>>f) short and easy to understand

LCR>
По сравнению с C++ это действительно короче и легче воспринимается.

LCR>Навеяло, "как всегда придёт поручик Ржевский..."


А ты думаешь, откуда название поста взялось


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: alexeiz  
Дата: 26.01.07 06:04
Оценка:
"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: подтянулся Александреску, начались пошлос
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 26.01.07 07:05
Оценка: +1
Здравствуйте, 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: подтянулся Александреску, начались пошлос
От: alexeiz  
Дата: 26.01.07 07:25
Оценка:
Здравствуйте, eao197, Вы писали:

E>Во-вторых, не важно, сколько именно людей программируют на D сейчас. Гораздо важнее, сколько обращают внимание на D и с какой динамикой программисты мигрируют на D (причем, что удивительно, не только с C++). Хорошая динамика сейчас создаст значительную D community к моменту появления C++09.

...
E>Так что нужно это тем, кто будет программировать на D через год-полтора.

Вот пусть они и пишут этот новый Boost. Сначала деньги, потом стулья. Библиотека на пустом месте без заинтересованных людей не появится. И какая там у D ситуация, уникальная, неуникальная, значения не имеет.

>Да тут еще и Boost подходит, который лично мне не нравится.


Тогда зачем тебе boost на D, если тебе не нравится сама идея такой библиотеки? Или тебя гнетет ее реализация на C++?
Re[7]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 26.01.07 08:23
Оценка:
Здравствуйте, 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: подтянулся Александреску, начались пошлос
От: FR  
Дата: 26.01.07 09:16
Оценка: +1
Здравствуйте, alexeiz, Вы писали:

A>Вот пусть они и пишут этот новый Boost. Сначала деньги, потом стулья. Библиотека на пустом месте без заинтересованных людей не появится. И какая там у D ситуация, уникальная, неуникальная, значения не имеет.


Так в D очень приличная часть буста просто не нужна.

>>Да тут еще и Boost подходит, который лично мне не нравится.


A>Тогда зачем тебе boost на D, если тебе не нравится сама идея такой библиотеки? Или тебя гнетет ее реализация на C++?


Кстати реализация шаблоных штучек на D вполне читабельна в отличии от C++. Можно открыть тот же файл bind.d и читать его, при том усилий прикладывается не намного больше чем при чтении не шаблоного кода. В C++ так с ходу с нетривиальными шаблонами разобратся просто не реально.
Re[8]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: alexeiz  
Дата: 26.01.07 11:00
Оценка:
Здравствуйте, FR, Вы писали:

FR>Так в D очень приличная часть буста просто не нужна.


Это ситуации не меняет.

>>>Да тут еще и Boost подходит, который лично мне не нравится.


A>>Тогда зачем тебе boost на D, если тебе не нравится сама идея такой библиотеки? Или тебя гнетет ее реализация на C++?


FR>Кстати реализация шаблоных штучек на D вполне читабельна в отличии от C++.


В boost'е шаблоны используются как инструмент, а не как цель. Поэтому смысл твоей фразы неясен.

> Можно открыть тот же файл bind.d и читать его, при том усилий прикладывается не намного больше чем при чтении не шаблоного кода. В C++ так с ходу с нетривиальными шаблонами разобратся просто не реально.


Да, штука интересная. Только непонятно, зачем ее написали, когда в языке есть лямбды.
Re[5]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.07 11:15
Оценка:
Здравствуйте, alexeiz, Вы писали:

A> там уже и C++09 выйдет с примерно такими же фичами.


А кто сказал "09"? Я так понимаю в 0x — "x" это неопределенная константа.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.07 11:15
Оценка:
Здравствуйте, eao197, Вы писали:

E>В Boost-е есть довольно-таки полезные штуки. Но мне не нравится, во-первых, что C++ные шаблоны довольно многословные и некоторые практики их использования основываются на т.н. side effect-ах. И, во-вторых, их использование существенно замедляет компиляцию.


Компиляцию замедляют не шаблоны.
Ее замедляет отсуствие модульности, наличие кривой грамматики языка, то что эту грамматику нельзя распарсить без разбора типов, и то что на шаблонах производятся вычисления во время компиляции.

Первые две проблемы в Ди решены. Последняя — нет.

Дагадайтесь как называется зяык где таких проблем небыло от родясь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: raskin Россия  
Дата: 26.01.07 11:33
Оценка: +1 :)))
VladD2 wrote:
> Компиляцию замедляют не шаблоны.
> Ее замедляет отсуствие модульности, наличие кривой грамматики языка, то
> что эту грамматику нельзя распарсить без разбора типов, и то что на
> шаблонах производятся вычисления во время компиляции.
>
> Первые две проблемы в Ди решены. Последняя — нет.
>
> Догадайтесь как называется зяык где таких проблем небыло от родясь.

То есть грамматика языка легко разбирается, есть модули и нормальные
вычисления во время компиляции? Ну, первый пункт наводит на мысли про
LISP-подобные, остальные приводят к мысли, что это компилируемая
реализация Common Lisp.
Posted via RSDN NNTP Server 2.1 beta
Re[10]: Ой, чо с D: подтянулся Александреску, начались пошло
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.07 12:22
Оценка: :))
Здравствуйте, 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: подтянулся Александреску, начались пошло
От: raskin Россия  
Дата: 26.01.07 13:46
Оценка:
VladD2 wrote:
> R>То есть грамматика языка легко разбирается, есть модули и нормальные
> R>вычисления во время компиляции?
>
> Да.
>
> R> Ну, первый пункт наводит на мысли про
> R>LISP-подобные, остальные приводят к мысли, что это компилируемая
> R>реализация Common Lisp.
>
> Не совсем. Кое что от Лиспа взято, но язык ближе к C# и O'Caml.
Ну, там грамматика сложная (хотя не катастрофа вроде вариантов
синтаксиса С). Кто тут рассказывал про два дерева разбора?

> В обещм, проще прочитать <http://rsdn.ru/summary/3766.xml&gt;.

> В общем, это лучше чем Лисп, C# и O'Caml по отдельности.
Сколько надо сил, чтобы поставить это на КПК? 500Мб места готов выделить
на всё, включая .NET CF . Пока на КПК я держу Scheme и J.

Вместо shell я это в любом случае для скриптов использовать не буду,
пока очень хорошо не освою..
Posted via RSDN NNTP Server 2.1 beta
Re[9]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: Андрей Хропов Россия  
Дата: 26.01.07 13:53
Оценка:
Здравствуйте, alexeiz, Вы писали:

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


Пока они без замыканий, так что нужна, к сожалению . Но надеюсь со временем поправят .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: Андрей Хропов Россия  
Дата: 26.01.07 13:53
Оценка:
Здравствуйте, 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.

(здесь)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Ой, чо с D: подтянулся Александреску, начались пошлос
От: FR  
Дата: 26.01.07 15:17
Оценка:
Здравствуйте, alexeiz, Вы писали:


FR>>Кстати реализация шаблоных штучек на D вполне читабельна в отличии от C++.


A>В boost'е шаблоны используются как инструмент, а не как цель. Поэтому смысл твоей фразы неясен.


Тем что это значит что и писабельна тоже
Так что писать вещи на шаблонах на D гораздо легче, и более реален вариант вместо "возьму из буста" "напишу сам"

>> Можно открыть тот же файл bind.d и читать его, при том усилий прикладывается не намного больше чем при чтении не шаблоного кода. В C++ так с ходу с нетривиальными шаблонами разобратся просто не реально.


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


ну иногда бинд удобнее.
Re[12]: Ой, чо с D: подтянулся Александреску, начались пошло
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.07 21:32
Оценка:
Здравствуйте, 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: подтянулся Александреску, начались пошло
От: raskin Россия  
Дата: 26.01.07 21:41
Оценка:
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: подтянулся Александреску, начались пошлос
От: AndreiF  
Дата: 27.01.07 09:31
Оценка: +1 :)))
Здравствуйте, VladD2, Вы писали:

VD>А кто сказал "09"? Я так понимаю в 0x — "x" это неопределенная константа.


Подозреваю, что "x" просто 16-ричный. Так что у комитета в запасе еще много времени
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[14]: Ой, чо с D: подтянулся Александреску, начались пошло
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.01.07 10:35
Оценка:
Здравствуйте, 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: подтянулся Александреску, начались пошло
От: raskin Россия  
Дата: 27.01.07 14:47
Оценка:
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 с максимально полной
информацией.
Posted via RSDN NNTP Server 2.1 beta
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.