LINUX.ORG.RU

Язык программирования D


0

0

Кто-то уже реально с ним возился? Плюсы примерно представляю, а подводные камни?

Попутно интересуют вопросы - как у него с линковкой с сишными (говорят - очень хорошо) и сиплюплюсными (говорят - плохо) либами?

Есть ли адекватные:

- ORM, позволяющие эффективно работать из D?

- Аналоги Java-reflection (можно ли создать класс по его имени во время исполнения)

- Как работает сборка мусора, в т.ч. при работе с внешними сишными либами?

- Насколько эффективна сборка мусора при кольцевых ссылках объектов? Скажем, если объект класса A содержит ссылку на объект класса B, а тот - на первый объект - удалится ли такая конструкция?

★★★★★

Минус D в том, что он никому уже не нужен, и никогда уже не станет широко используемым языком.

fmj
()
Ответ на: комментарий от fmj

Плюс ему в том, что его компилятор _уже_ есть в GCC ;)

Ну и в том, что по возможностям он ближе к Java, а по производительности и совместимости со стороннимии библиотеками - к G++

KRoN73 ★★★★★
() автор топика

> - Как работает сборка мусора, в т.ч. при работе с внешними сишными либами? он, вроде, собирает только память, выделенную через new. а то что выделено во внешних сишных либах, или через std.c.malloc он не собирает.

Deleted
()

>- Аналоги Java-reflection (можно ли создать класс по его имени во время исполнения)

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

>- Как работает сборка мусора, в т.ч. при работе с внешними сишными либами?

Время от времени запускается гц. Он, афаик, смотрит только на то, что выделенно оператором new. gc - консервативный.

> - Насколько эффективна сборка мусора при кольцевых ссылках объектов? Скажем, если объект класса A содержит ссылку на объект класса B, а тот - на первый объект - удалится ли такая конструкция?

там классический gc, ему пофиг на кольцевые ссылки.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

>ему пофиг на кольцевые ссылки.

Пофиг - в смысле пофиг на удаление таких или пофиг на проблемы с удалением? :)

Удалит или нет?

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

>Плюс ему в том, что его компилятор _уже_ есть в GCC ;)

его НЕТ в gcc. gdc, качество которого ниже плинтуса, базируется на кодогенераторе из gcc. вряд ли он скоро (когда нибудь?) попадет в gcc ибо не имеет устоявшихся спеков и продолжает активно изменяться. И там есть что менять! Хреново что только один человек (Walter Bright) принимает решения о развитии языка, ибо у него свои тараканы в башке, которые зачастую тормозят многие полезные вещи (константы например - очень долго брыкался, рефлекшн - до сих пор нет и т.п.).

aydef
()
Ответ на: комментарий от aydef

>его НЕТ в gcc

Гм. У меня gdc входит именно в состав gcc:

equery f gcc|grep gdc
/usr/i686-pc-linux-gnu/gcc-bin/4.1.2/gdc
/usr/i686-pc-linux-gnu/gcc-bin/4.1.2/i686-pc-linux-gnu-gdc
/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man/man1/gdc.1.bz2

>качество которого ниже плинтуса

Что конкретно? Проихводительность его на простых тестах ноздря в ноздрю идёт с GCC и заметно ваше, чем у DMD.

>И там есть что менять! Хреново что только один человек (Walter Bright) принимает решения о развитии языка

А что в этом хренового? Тот же Python, разве не один Гвидо развивает? :)

>ибо у него свои тараканы в башке, которые зачастую тормозят многие полезные вещи

В наше время тормоза нередко куда лучше затягивания в язык всего, чего ни попадя.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

да, ведь можно самому написать масштабируемую фабрику объектов! ура!

in_dance
()

Да практически никому эта попытка пересоздать С++ с точки зрения сегодняшних позиций - не нужна. С++ очень стар и его переработка (да хоть суперская) уже безперспективна. D всё такой же низкоуровневый, как и С++. Даже при сильной доработке он нуждается в тоннах библиотек, которых нет и написаны не будут (даже не потому, что спецификация постоянно меняется).

Сейчас нужны _намного_ высокоуровневые языки. Даже Python сейчас уже стар. В мозгах программистов всё ещё никак не укоренится Объектное Программирование (ОП), а царствует там Объектно-Ориентированное Программирование (ООП) уровня Страуструпа, где отовсюду торчат особенности этой ООП реализации, всякие ссылки this (self), где объекты не знают свои методы (должно звучать дико с позиции классического ОП) т.к. методы-функции принадлежат классу (особенность криволизации), что и близко к ОП с его взаимодействием объектов посредством сообщений не лежало. Сейчас нужен высокоуровневый язык-клей с ассимилированной библиотекой на уровне языка и возможностью низкоуровневых манипуляций. Для реализации такого языка нужны хорошие мозги и острый меч. Пока - такой человек не родился.

anonymous
()
Ответ на: комментарий от anonymous

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

s0L
()
Ответ на: комментарий от s0L

Когда прочитал, начал искать глазами кто автор поста... к ни странно им все же оказался анонимус...

s0L
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.