язык D
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.06 00:01
Оценка: 1 (1) :))) :))) :))) :))) :))) :))) :))) :))) :))) :)))
В качестве предисловия (нарисовалось вот чего-то):


Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?
Re: язык D
От: IT Россия linq2db.com
Дата: 14.05.06 05:20
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?


Макросы по типу Немерле. Слабо?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: язык D
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.06 05:34
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, c-smile, Вы писали:


CS>>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?


IT>Макросы по типу Немерле. Слабо?


Игорь, а можешь в трех словах охарактеризовать что есть
макросы Нермерле?

Как я понимаю это фактически мета язык со своими правилами (очень непростыми)
ибо манипулирует он объектами AST. Правильно?
Re[3]: язык D
От: IT Россия linq2db.com
Дата: 14.05.06 05:44
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Как я понимаю это фактически мета язык со своими правилами (очень непростыми) ибо манипулирует он объектами AST. Правильно?


Это всё тот же Немерле, на котором пишутся, скажем так для простоты, плагины к компилятору. Работа с AST сделана наиболее человеческим способом в терминах того же Немерле. Вот здесь куча примеров. То что заключено в <[ ... ]> это и есть работа с AST.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: язык D
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.06 05:58
Оценка: :)
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, c-smile, Вы писали:


CS>>Как я понимаю это фактически мета язык со своими правилами (очень непростыми) ибо манипулирует он объектами AST. Правильно?


IT>Это всё тот же Немерле, на котором пишутся, скажем так для простоты, плагины к компилятору. Работа с AST сделана наиболее человеческим способом в терминах того же Немерле. Вот здесь куча примеров. То что заключено в <[ ... ]> это и есть работа с AST.


Т.е. Немерле это фактически не язык а заготовка (Lego) для построения некоего проблемно ориентированного
языка или семейства языков.

Называть такую систему языком программирования я бы не решился ибо
видя штуки типа:

MacroPhase.BeforeInheritance
MacroPhase.BeforeTypedMembers
MacroPhase.WithTypedMembers

сразу вспоминтается YACC. Может нужно просто сделать нормальный YACC
чтобы оделить мух от плевел так сказать... Или я не прав?
Re[2]: язык D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 14.05.06 06:01
Оценка: +1 -1
Здравствуйте, IT, Вы писали:

CS>>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?


IT>Макросы по типу Немерле. Слабо?


Макросы -- это не наш путь Кодогенерация на скриптовых языках
Автор: eao197
Дата: 16.11.05
, имхо, предпочтительнее

Я не ради очередного флейма, просто серьезно думаю, что лучше иметь язык со строгим синтаксисом и без большого количества подводных камней (как в D или Java по сравнению с C++) и расширять свой инструментарий за счет библиотек. В том числе и тех, которые кодогенерацию применяют.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: язык D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 14.05.06 06:06
Оценка: +2
Здравствуйте, c-smile, Вы писали:

CS>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?


На счет языка не знаю, за время моего последнего полного прочтения мануала (гда два назад) в D произошло много изменений. А вот чего не хватило для того, чтобы всерьез занятся изучением и применением D, так это отсутствие библиотеки, сравнимой с ACE. К самому языку и его стандартной библиотеке это не имеет непосредственного отношения. Но общее впечатление именно такое: вокруг D недостаточно еще продвинутых фреймворков/библиотек для того, чтобы браться за D в реальных проектах.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: язык D
От: Vermicious Knid  
Дата: 14.05.06 07:26
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Т.е. Немерле это фактически не язык а заготовка (Lego) для построения некоего проблемно ориентированного

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

CS>Называть такую систему языком программирования я бы не решился ибо

CS>видя штуки типа:
Nemerle — вполне полноценный язык программирования. По крайней мере такой же полноценный как C#.

А что касается этих "штук", то они играют весьма скромную и исключительно утилитарную роль в этой системе. И вообще это только для макро-атрибутов, которыми можно помечать различного рода объявления(типов, членов, параметров).

CS>сразу вспоминтается YACC. Может нужно просто сделать нормальный YACC

CS>чтобы оделить мух от плевел так сказать... Или я не прав?
Yacc здесь совершенно ни при чем. Кроме того, что синтаксис псевдо-цитирования может отдаленно напоминать описание грамматик в Yacc и того, что встраиваемые генераторы синтаксических и лексических анализаторов это одна из наиболее подходящих задач для применения макросов Nemerle.
Re: язык D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 14.05.06 07:47
Оценка: +2
Здравствуйте, c-smile, Вы писали:

CS>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?


Еще вот что подумалось. Лично мне было бы проще решиться на использование D, если бы развитие языка шло по другому сценарию. Я знаю про D уже несколько лет, а он все видоизменяется и видоизменяется. Новые версии компилятора содержат не только bug-fix-ы, но и изменения в языке.

Мне было бы выгоднее, если бы выпускалась фиксированная версия (например, 1.0.0). Далее развитие шло по двум ветвям. Ветвь 1.0.* -- содержит только bug-fix-ы и не изменяет сам язык. А изменения самого языка выполняются в версии 1.1.*, хоть до полной несовместимости с версией 1.0.0. Главно, будет понятно, что переход на новый релиз 1.0.* не будет требовать переписывать существующий код. А уже после того, как версия 1.1.* окончательно зафиксируется и будет выпущена как стабильная 1.2.0, тогда я уже сам буду решать, стоит ли на нее переходить, когда переходить, как этот переход делать и пр. Но в рамках ранее выпущенной 1.0.* для моего кода не будет неожиданных сюрпризов от изменений в языке.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: язык D
От: Vermicious Knid  
Дата: 14.05.06 07:51
Оценка: +3
Здравствуйте, c-smile, Вы писали:

CS>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?


Я бы в первую очередь выкинул бы back-end от Walter'а и окончательно заменил его на GCC. И выпустил бы windows-версию на основе Mingw. Затем бы переписал front-end на D и сделал его более самостоятельным/расширяемым(но это естественно может только WB).

Далее в порядке необходимости/значимости:
— утилиту для интероперабельности с C++ библиотеками(Walter Bright вполне мог бы сделать такую на базе его компилятора C++); типа SWIG, но более мощную/совместимую
— reflection/serialization
— возможность (полу)прозрачной интеграции библиотек на D с программами на C++
— переменное число параметров шаблонов(или встроенные списки типов)
— шаблонные операторы с неявной инстанциацией
— расширить библиотеку до уровня .NET BCL
Re: язык D
От: Cyberax Марс  
Дата: 14.05.06 08:23
Оценка:
c-smile wrote:
> Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?
Более тщательно проработал бы взаимодействие с GC. Сейчас D может
работать только с консервным GC.

Ну и по мелочам: reflection, динамическую загрузку модулей.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[2]: язык D
От: Cyberax Марс  
Дата: 14.05.06 08:25
Оценка:
IT wrote:
> CS>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?
> Макросы по типу Немерле. Слабо?
В D есть static-код, работающий на этапе компиляции. В принципе, мне бы
его хватило для всех моих применений метапрограммирования.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re: язык D
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.05.06 12:28
Оценка: :))) :)))
Здравствуйте, c-smile, Вы писали:

CS>В качестве предисловия (нарисовалось вот чего-то):

CS>

CS>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?


Поздравляю вас товарщи с плавным перетеканием флуда про D в обсуждение:



И что характерно... Я ни слова не сказал.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: язык D
От: Cyberax Марс  
Дата: 14.05.06 12:54
Оценка:
VladD2 wrote:
> И что характерно... Я ни слова не сказал.
Вау! Вот это сила!

Интересно, когда в "Политике" флейм скатится на C# vs Россия?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[3]: язык D
От: IT Россия linq2db.com
Дата: 14.05.06 13:48
Оценка:
Здравствуйте, eao197, Вы писали:

E>Макросы -- это не наш путь Кодогенерация на скриптовых языках
Автор: eao197
Дата: 16.11.05
, имхо, предпочтительнее


Прекомпайл-тайм генерация имеет один идеологический изъян. Сгенерированные классы нельзя менять ручками, а часть класса/метода как дополнение к существующему классу/методу сгенерировать нельзя. Препроцессор в этом смысле значительно превлекательнее.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: язык D
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 14.05.06 13:59
Оценка:
Здравствуйте, IT, Вы писали:

IT>Прекомпайл-тайм генерация имеет один идеологический изъян. Сгенерированные классы нельзя менять ручками, а часть класса/метода как дополнение к существующему классу/методу сгенерировать нельзя. Препроцессор в этом смысле значительно превлекательнее.


Ну это уже сильно от кодогенератора зависит. Генерировать можно не весь класс, а только его часть (не для всех языков, однако такое прокатывает, тут препроцессор с поддержкой #include нужен). Можно в кодогенераторе предусматривать возможность вставки готовых фрагментов кода (например, как в yacc). Расширять сгенерированный класс можно за счет наследования (так в Qt сделано для наполнения функциональностей классов-диалогов, нарисованных в QtDesigner, из которых затем определения классов полностью генерируются). Возможностей не так уж мало.

Для меня наиболее предпочтительным является то, что на выходе есть готовый код в том же самом синтаксисе языка. Поэтому для разных IDE нет проблем для поддержки сгенерированных классов. С макропроцессорами и метапрограммированием ситуация для IDE гораздо сложнее.

ИМХО, однако.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: язык D
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.06 15:25
Оценка: 28 (1)
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, c-smile, Вы писали:


CS>>Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?


E>На счет языка не знаю, за время моего последнего полного прочтения мануала (гда два назад) в D произошло много изменений. А вот чего не хватило для того, чтобы всерьез занятся изучением и применением D, так это отсутствие библиотеки, сравнимой с ACE. К самому языку и его стандартной библиотеке это не имеет непосредственного отношения. Но общее впечатление именно такое: вокруг D недостаточно еще продвинутых фреймворков/библиотек для того, чтобы браться за D в реальных проектах.


А это не оно?
http://www.dsource.org/projects/mango
Re[2]: язык D
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.06 15:29
Оценка: +2
Здравствуйте, eao197, Вы писали:

E>Мне было бы выгоднее, если бы выпускалась фиксированная версия (например, 1.0.0).


Согласен.

В принципе такой план у Вальтера есть.

Только чего-то это напоминает некий долгострой.
Слишком оно меделнно происходит. Версия 1.0 должна была
появится давно по идее. Года четыре это все длится
— в программерской жизни это очень долго.
Re[2]: язык D
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.06 15:35
Оценка: +1
Здравствуйте, Vermicious Knid, Вы писали:

VK>Я бы в первую очередь выкинул бы back-end от Walter'а и окончательно заменил его на GCC. И выпустил бы windows-версию на основе Mingw. Затем бы переписал front-end на D и сделал его более самостоятельным/расширяемым(но это естественно может только WB).


Да, но back-end от Walter'а генерирует хороший код. Лучше чем GCC.

VK>Далее в порядке необходимости/значимости:

VK>- утилиту для интероперабельности с C++ библиотеками(Walter Bright вполне мог бы сделать такую на базе его компилятора C++); типа SWIG, но более мощную/совместимую

VK>- reflection/serialization


Да, но в natively compiled коде это сделать сложно да и не нужно в большинстве случаев.

VK>- возможность (полу)прозрачной интеграции библиотек на D с программами на C++

VK>- переменное число параметров шаблонов(или встроенные списки типов)
VK>- шаблонные операторы с неявной инстанциацией
VK>- расширить библиотеку до уровня .NET BCL
Re[2]: язык D
От: c-smile Канада http://terrainformatica.com
Дата: 14.05.06 15:38
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>c-smile wrote:

>> Вопрос/опрос: Что бы вы добавили в язык D или его библиотеку?
C>Более тщательно проработал бы взаимодействие с GC. Сейчас D может
C>работать только с консервным GC.

C>Ну и по мелочам: reflection, динамическую загрузку модулей.


не-консервативный GC и reflection взаимосвязаны.

Я подозреваю что не-консервативный GC без какой никакой
reflection невозможен в принципе.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.