LINUX.ORG.RU

Вышли версии 1.035 и 2.019 языка D

 ,


0

0

Вышла версия 1.035 замечательного языка программирования D. Среди изменений множество исправлений ошибок, добавления конструкторов к структурам в ветке версии 2 и много другое.

>>> Скачать v1 и v2

>>> Подробности



Проверено: Shaman007 ()

Ответ на: комментарий от Robotron

>>А разработчики стандартной библиотеки какие алгоритмы используют? Те, что полагаются на сборщик мусора, или нет?

>Хороший вопрос, я не знаю. Может кто-то знает?

Phobos - обычно без раницы. Tango рассчитана на наличие gc. Да, и сборщик мусора можно заменить на libgc_stub.a Видел где-то Triton - runtime для разработчиков ОС без gc.

naryl ★★★★★
()

Кто-то скажет толком - можно ли использовать С++ либы из D? C++ вроде как подмножество Д. Может статейка какая, как их вместе использовать...

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

>Кто-то скажет толком - можно ли использовать С++ либы из D? C++ вроде как подмножество Д. Может статейка какая, как их вместе использовать...

На данный момент вроде, как можно но на 100% я сказать не могу, почитай http://www.digitalmars.com/d/2.0/cpp_interface.html

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

>Кто-то скажет толком - можно ли использовать С++ либы из D? C++ вроде как подмножество Д. Может статейка какая, как их вместе использовать...

И С++ это _не_ подмножество D...

Robotron
() автор топика

Как rebuild-у в конфиге задать дополнительную директорию для поиска либ? У самого rebuild-а есть опция -S, но как тоже самое сделать через rebuild.conf? ЗЫ: Системная переменная LIB, почему-то игнорируется.

anonymous
()

Сделайте скидки на мою наивность, но где нища этого языка?

С++ - это стандарт + "С избавленный от множества ошибок". Все остальные - это java, Perl и CL для яйцеголовых аспирантов. Еще хаскель - это понтов.

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

> С++ - это стандарт + "С избавленный от множества ошибок".

Саныч, ты завязывай с виртуалами, а то не ровен час шизофрению заработаешь. В C++ больше косяков добавили, а исправили по сути один -- появились однострочные комментарии.

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

>В C++ больше косяков добавили, а исправили по сути один -- появились
>однострочные комментарии.


Здрасьте. А более цивильный способ объявления аргументов функции?

Совсем расслабились, забыли?

int fib(n) int n; { return ... }

:)

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

> У самого rebuild-а есть опция -S, но как тоже самое сделать через rebuild.conf?

Если появилась необходимость использовать rebuild.conf, то пора почитать про dsss. А директории для поиска либ вроде не в rebuild.conf указываются, а в профилях в etc/rebuild

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

>> У самого rebuild-а есть опция -S, но как тоже самое сделать через rebuild.conf?

> Если появилась необходимость использовать rebuild.conf, то пора почитать про dsss. А директории для поиска либ вроде не в rebuild.conf указываются, а в профилях в etc/rebuild

Ну да, ошибся, но не суть. Как в эитих профилях его задать?

[link] cmd=dmd $i -of$o libdir=-L+$i\

Ок, пойдем с другой стороны. В опциях dmd или optlink, не используя переменную окружения, можно задать этот путь?

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

Давай-те ка поддержим язык наш любимый язык программирования и выведем этот тред в топ по популярности! D сейчас не хватает только юзеров. Со своей стороны хочу добавить что для гуя уже практически готов к реальному использованию враппер gtk - http://www.dsource.org/projects/gtkd . Пишу с его использованием, все устраивает. А вот к dwt(порт swt на D кто не знает) отношусь скептически, ибо функционала там не будет больше чем у гтк, который он оборачивает.

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

Единственный конечно недостаток gtk - как он работает под оффтопиком. Qt конечно лучше. но его враппить не будет пока никто. Впрочем с выходом второй версии с интерфейсом к С++ думаю станет намного легче сделать биндинг Qt.

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

>Что там за заморочки в D с константностью? Люди волнуются.

тоже волнуемся. 1 версия не поддерживает. В D2 это есть, но я еще честно говоря не пробовал. Может быть кто-то устанавливал его, поделитесь?

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

>Официально был портирован движёк физики на D:

Он же с сишными либами нативно линкуется. Так что тот же Ogre вполне по D юзается, вроде.

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

> Здрасьте. А более цивильный способ объявления аргументов функции?

Это вопрос K&R и ANSI style. Плюсы здесь не при чем.

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

>Он же с сишными либами нативно линкуется. Так что тот же Ogre вполне по D юзается, вроде.

Это в смысле, что его на D переписали...

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

>Это вопрос K&R и ANSI style. Плюсы здесь не при чем.

Вроде бы как раз этот ANSI style --- это и есть заимствованный из раннего (80е годы) C++ способ объявления аргументов.

PS. Только не надо делать из этого вывод C++ -- rulez,C -- sucks :)))

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

> тоже волнуемся. 1 версия не поддерживает. В D2 это есть, но я еще честно говоря не пробовал. Может быть кто-то устанавливал его, поделитесь?

Ага, в D1 const даже до final в Java не дотягивает. В D2 появились headconst, tailconst, mutable, invariant, но, вроде, разработчики еще в поиске и назначение этих ключивых слов может в любой момент измениться.

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

>С++ - это стандарт + "С избавленный от множества ошибок".

Ага, только этот стандарт нигде на 100% не реализован. :D Кстати, как там в вашем стандарте с массивами? Длину до сих пор в отдельной переменной таскаете, foreach так и не появился, а многомерные массивы создаются через жо^Wfor+new? В классах конструкторы/деструкторы попрежнему имеют имя класса (какой идиот это вообще придумал?), а доступ к к закрытым переменным делают через setParam/getParam?

LOL, XXI век на дворе, а "стандарт" даже такой элементарщины не осилил.. :D Я уже не говорю про более серьёзные вещи, типа делегатов и прочего..

>Все остальные - это java, Perl и CL

Барышня, вы ошиблись сайтом, любители пить тормозную жидкость собираются в другом месте.. ;)

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

Какой нафег стандарт. Обидно только что на плюсах продолжает писаться дикое количество софта :(

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

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

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

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

>D - это очень сомнительная альтернатива (в том виде, какая она сейчас).

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

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

> враппер gtk

Для гуёв есть ещё простая и лёгкая fltk4d. http://dronten.googlepages.com/fltk4d А для вывода в OpenGL настоятельно рекомендую hybrid. Для рисования окошек и кнопок в играх подходит идеально. http://hybrid.team0xf.com/

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

>Для гуёв есть ещё простая и лёгкая fltk4d. http://dronten.googlepages.com/fltk4d А для вывода в OpenGL настоятельно рекомендую hybrid. Для рисования окошек и кнопок в играх подходит идеально. http://hybrid.team0xf.com/

Определённо порадовали

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

>Может быть кто-то устанавливал его[D2], поделитесь?
Устанавливал поиграться. Не мешает, но пока не будут реализованы pure функции смысл их остаётся загадочным для большинства пользователей(прогеров). После некоторых размышлений с учётом pure функций смысл const/invariant становится понятен и очевиден. http://www.digitalmars.com/d/2.0/accu-functional.pdf Простите за pdf.

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

>Сделайте скидки на мою наивность, но где нища этого языка? С++ - это стандарт + "С избавленный от множества ошибок". Все остальные - это java, Perl и CL для яйцеголовых аспирантов. Еще хаскель - это понтов.

а мозги тебе тоже для понтов? не знаешь что такое Haskell не вякай, жалкий быдлокодер.

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

В любом случае при написании чего-нибудь сложнее хеллоуворлда без Qt/GTK не обойтись. Есть еще конечно dwt, но я считаю что лучше использовать GTK напрямую а не через какую-то обертку

anonymous
()

У dmd что-то нехорошее с варнингами. Пишется:

FilePath filePath;
char[] parent = filePath.parent; // access violation

или даже так

filePath = FileSystem.getDirectory(); // access violation


И где радость компилятора, по поводу непроинициализированной переменной?

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

Еще, тут говорили что именовать конструктор именем класса это неправильно. В D используется this. Зато, для шаблонов, функция вызываемая по умолчанию, как раз, имеет имя шаблона.

template sum( class T ) { T sum( T[] list ) ; }

Непоследовательно как-то.

anonymous
()

Имена для переопределения операторов __add__, __div__ и т.д. отвергли из-за ведущего символа подчеркивания, ибо такие имена "приватные" для компилятора, однако, ввели переменные с именами _argptr и _arguments для функций с переменным числом параметров. Да на коленках они что-ли синтаксис придумывали?

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

> Есть еще конечно dwt, но я считаю что лучше использовать GTK напрямую а не через какую-то обертку

собрал намедни хелловорлд с лейаутами на dwt, и подумал что 1.5 мега в бинарнике (с танго) -- это многовато.

Может тогда fltk4d родной или qt через C++ ABI ( bdc, емнип) попробовать собрать

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

> Сделайте скидки на мою наивность, но где нища этого языка?

В Д классы это указатели и есть сборка мусора, так что похоже ява уже осталась позади.

Мои претензии к Д примерно таковы: он мало демократичен и мало конфигурируем. Т.е. там многое из коробки не повторить своими руками, и вроде как проблемы отнаследовать д-шный класс от плюсового.

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

По демократичности и конфигурируемости Д примерно на равных с С++. Но фич в Д явно больше.

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

- Структуры уродцы + невозможность возвращать значения по ссылке неявно. - Есть поддержка модулей, но нет нативной поддержки динамических модулей (.so/.dll/или хоть чего-нибудь). Да, можно создать dll и использовать ее, но управление памятью в этом случае взваливается на плечи программиста. - Две основные "стандартные" библиотеки Phobos и Tango обе находятся на стадии потери совместимости со своей предыдущей версией (в Tango смотреть LinkSeq и другие, которые deprecated). - Как отловить FilePath path = FileSystem.getDirectory(); (access violation) на стадии компиляции? - Есть серьезные сервера, написанные на D, которые показывают, что DMD рантайм не текет? - Ждем D2 версию, чтобы использовать const/invariant.

Это я к чему... Язык то хороший, писать программы приятно, но не ставьте вы текущий D на одну ступеньку с C++ и Java. Ну рано же еще.

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

- Структуры уродцы + невозможность возвращать значения по ссылке неявно.
- Есть поддержка модулей, но нет нативной поддержки динамических модулей (.so/.dll/или хоть чего-нибудь). Да, можно создать dll и использовать ее, но управление памятью в этом случае взваливается на плечи программиста.
- Две основные "стандартные" библиотеки Phobos и Tango обе находятся на стадии потери совместимости со своей предыдущей версией (в Tango смотреть LinkSeq и другие, которые deprecated).
- Как отловить FilePath path = FileSystem.getDirectory(); (access violation) на стадии компиляции?
- Есть серьезные сервера, написанные на D, которые показывают, что DMD рантайм не текет?
- Ждем D2 версию, чтобы использовать const/invariant.

Это я к чему... Язык то хороший, писать программы приятно, но не ставьте вы текущий D на одну ступеньку с C++ и Java. Ну рано же еще.

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

> правда всё так чудесно с XML-ем? http://dotnot.org/blog/archives/2008/02/

В D подмассивы(подстроки char[]) копируются только при попытке записи в них. TangoXML умеет это использовать, а PhobosXML - еще нет. Но, что будет когда стандарт XML будет полностью реализован? Никто еще не пробовал подобрать задачу, чтобы свойство массивов D играло против него?

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

> Имена для переопределения операторов __add__, __div__ и т.д. отвергли из-за ведущего символа подчеркивания, ибо такие имена "приватные" для компилятора, однако, ввели переменные с именами _argptr и _arguments для функций с переменным числом параметров.

имена с двумя символами подчёркивания приватные для компилятора.

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

> правда всё так чудесно с XML-ем?
Kris Bell (автор, кроме всего прочего, tango.xml) не способен писать медленный код.

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

>>> Структуры уродцы
>> Можно поподробнее?

>Спи дальше.

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

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