LINUX.ORG.RU

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


0

0

Оказывается 1 января вышел D 2.009 - очередная версия нового языка программирования для Linux и Windows.

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

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

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

>Те поделия с синтакс хайлайтом и деревом файлов даже рядом не стояли с выжуал студио.

О, сейчас начнется. Ты небось один из неосиливших vim/emacs?

>даже ГУЙня у языка отсутствует как факт!

А как же биндинги к Qt?

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

ну над ГТК ведутся успешные работы, поддержка 2.6 вроде есть и над более новой работают

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

>> Те поделия с синтакс хайлайтом и деревом файлов даже рядом не стояли с выжуал студио.

> О, сейчас начнется. Ты небось один из неосиливших vim/emacs?

Один из бедолаг "неосиливших vim/emacs?"

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

>там пробегала ссылка на вакансии - так там был D! Причем не на последнем месте

На http://www.tiobe.com/tpci.htm - D на 14 месте, что учитывая его недавнее появление ( 2000 г - вроде первые шаги, 2007 - первая stable версия), просто поражает.

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

>> у нас Objective-C 2.0 c автоматическим управлением памятью есть. :)) > Гмм, да у него синтаксис страшнее атомной войны. Уносите.

<flame> Ну и чего, perl вообще $%_@#$!_@#$## нечитаем, и живет себе. </flame>

У objc типизация динамическая, а-ля Smalltalk. А у D, как я понимаю, довольно строгая статическая, а-ля C++/Java. Сравнивать их не вполне правильно, IMHO. У обоих подходов есть преимущества и недостатки.

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

Смотри на www.dsource.org

О количестве коммерческих программ ничего сказать не могу, но игры уже есть. Целых две!

Сейчас сам программку пишу. Использую не убогую IDE - Descent, который в svn уже получил семантический анализ и по мощи приближается к jdt. Компилятор - DMD 1.025. Установленны sourcelib'ами tango и arc.xml из arclib. DMD компилирует с нуля половину tango примерно за пол секунды. А вот ld при линковании тормозит секунды 3. Для GUI - не убогий биндинг к fltk - fltk4d.

Просьба к нервно реагирующим на фразу "сборщик мусора" иногда заглядывать сюда: http://shootout.alioth.debian.org/

и хотя бы раз заглянуть сюда: http://www.digitalmars.com/d/1.0/garbage.html

Не говоря уж о том, что при большом желании можно сделать gc.disable(); и использовать всеми любимый оператор delete.

Лично мне мешает только отсутствие дебаггера, поддерживающего все фичи языка, но ZeroBUGS уверенно идет в этом направлении.

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

Чуть не забыл. Descent - плагин к Eclipse.

И, конечно же, использую viPlugin. Если кто знает лучше способ подружить vim и eclipse, просьба поделиться.

naryl ★★★★★
()

Самый ужас то что язык неправильно назван. Сначала был BCPL, потом B, потом C, потом должен быть P(а у них D), а потом L.

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

>Самый ужас то что язык неправильно назван. Сначала был BCPL, потом B, потом C, потом должен быть P(а у них D), а потом L.

Воистину великий язык, если это ^^^^^^^^^^^^^^ - самый ужас. =) Изначально его планировалось назвать Mars, но ранние фанаты где-то в 2001 г. уговорили Уолтера переименовать его в D.

А по-моему его надо было назвать E, т.к. D == C++

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

Ну он всё-таки не 'C'++ называется...

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

>Настоящим энтузиастам хватит Си-биндингов ;)

Так там, НЯЗ, к Си не биндинги, а нативное использование сишных либ. Так что - ассортимент либ огромный.

KRoN73 ★★★★★
()

хороший язык, радует развитие. если не уйдёт в ниши как Eiffel или Ada, буду весьма и весьма рад. особенно - если приживётся в OSS-среде, где такого инструмента сейчас откровенно не хватает

jtootf ★★★★★
()

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

На самом деле есть еще куча запланированных, но нереализованных фичей. Читай в презентации от Walter Bright и Andrei Alexandrescu: http://d.puremagic.com/conference2007/speakers.html

Например, все с нетерпением ждут AST макросы (не текстовые, как в C++), run-time reflection, наследование для структур, opImplicitCast, нескольких opCast для одного класса. Так же есть несколько менее ожидаемых фичей, вроде pure functions и polysemous values.

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

> Например, все с нетерпением ждут AST макросы (не текстовые, как в C++), run-time reflection, наследование для структур

CTFE + text mixin = довольно мощная штука, позволяющая писать ДСЛи уже сейчас, без макросов.
runtime reflection есть в виде библиотеки.
наследование для структур это что значит?

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

Респект, я именно про эту ссылку.

ИМХО этот ЯП может потеснить и паскаль, и С++ - надо бы стандартную библиотеку только побольше, хотя и сейчас неплохо. D универсальнее и мощнее паскаля, и проще С++ - как для юзера, так и для разработчиков компиляторов. Есть кстати и скриптовый язык, основанный на D, только название не помню. :(

Для винды есть DFL - GUI-библиотека с простеньким дизайнером Entice. Учитывая совместимость с С, можно юзать и Glade+GTK.

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

У тебя сайт есть? Сам хотел подобную программу написать, но времени нет.

Помню, писал автору Entice - будет ли open source версия Entice, или вообще версия под линукс, он ответил, что не будет. :(

Ты вообще что хочешь сделать, IDE или просто text editor + form designer + compiler?

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

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

>На самом деле есть еще куча запланированных, но нереализованных фичей. Читай в презентации от Walter Bright и Andrei Alexandrescu: http://d.puremagic.com/conference2007/speakers.html

>Например, все с нетерпением ждут AST макросы (не текстовые, как в C++), run-time reflection, наследование для структур, opImplicitCast, нескольких opCast для одного класса. Так же есть несколько менее ожидаемых фичей, вроде pure functions и polysemous values.

Ты еще забыл спецификатор nothrows для функций, которые гарантируют отсутствие выпуска исключений наружу. Очень нужный инструмент для написание устойчивого к исключениям кода.

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

>>там пробегала ссылка на вакансии - так там был D! Причем не на последнем месте

>На http://www.tiobe.com/tpci.htm - D на 14 месте, что учитывая его недавнее появление ( 2000 г - вроде первые шаги, 2007 - первая stable версия), просто поражает.

При всем уважении к Брайту и симпатии к языку D нужно заметить, что появление первой стабильной версии более чем через шесть лет после начала разработки (начало 1999, 1.0 -- январь 2007) -- это тот еще долгострой. Да еще и разработчикам свинью подложили в виде начала разработки новой, несовместимой с 1.0, версии языка через полгода после выхода 1.0. Редиски!

Кстати, по слухам, версия 2.0 должна быть стабилизирована к осени 2008-го. Как раз в это время Александреску собирается книгу о D выпустить, которая как раз D 2.0 и будет описывать.

А индекс TIOBE -- это измеритель buzzword-ов, а не восстребованности языка. Так, у них Erlang на 49-м месте, хотя на Erlang-е написано намного больше, чем на D.

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

> CTFE + text mixin = довольно мощная штука, позволяющая писать ДСЛи уже сейчас, без макросов.

Если верить презентации, макросы мощнее и гораздо удобнее. Не круто, когда на каждой строчке по 3 mixin'а.

> runtime reflection есть в виде библиотеки.

Flectioned? Мне не хватает функциональности. Нужно динамически доставать классы из библиотеки.

DDL? Не нашел способа заставить работать с ELF.

> наследование для структур это что значит?

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

> У тебя сайт есть? Сам хотел подобную программу написать, но времени нет.

Сайта пока нет, но есть открытый репозиторий. Сейчас показывать не хочу, т.к. код очень страшный и сейчас проходит стадию прихорашивания. Если кто найдет, умоляю, раньше 30 ревизии не смотрите. :)

> Помню, писал автору Entice - будет ли open source версия Entice, или вообще версия под линукс, он ответил, что не будет. :(

Именно поэтому я и решил использовать fltk. Он кроссплатформенный и у него гораздо более компактный и при этом читабельный код, чем у WinForms.

>Ты вообще что хочешь сделать, IDE или просто text editor + form designer + compiler?

Компилятор + Дизайнер. Компилятор почти готов в виде библиотеки. Ну и CLI для нее - программка в 7 строчек. Дизайнер еще, как говорится, in the blue ideas.

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

> Да еще и разработчикам свинью подложили в виде начала разработки новой, несовместимой с 1.0, версии языка через полгода после выхода 1.0.

Стабильным язык стал не к версии 1.000, а к разделению на 1.х и 2.х Важные изменения производились вплоть до 1.014.

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

> Я что-то не так делаю, или товарищи из Digital Mars не знают С++ ?

:D Автор первого native компилятора С++ не знает С++ !

naryl ★★★★★
()

Сам когда-то фанател по этому языку, но в последнее время всё больше мне сдаётся, что они скоро по сложности переплюнут плюсы.

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

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

Даже если так и будет (ИМХО, трудно преплюнуть навороты шаблнов Си++), то фичи D упакованы лучше. Всё-таки Си++ - это огромный опыт.

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

> там пробегала ссылка на вакансии - так там был D!

DTrace в солярке его использует как язык сценариев. Так что это вполне себе применяемый язык.

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

>> там пробегала ссылка на вакансии - так там был D!

> DTrace в солярке его использует как язык сценариев.

Аццкий сварщег детектед :D

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

> Аццкий сварщег детектед :D

Ну как тут мимо не пройти %)

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

>DTrace в солярке его использует как язык сценариев. Так что это вполне себе применяемый язык.

Не - там у них какой-то другой Д - ихний ...

Tracing programs (also referred to as scripts) can be written using the D programming language (not to be confused with other programming languages named "D").

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

>Дизайнер еще, как говорится, in the blue ideas.

Так может переориентироваться на GTK и добавить в Glade поддержку D? FLTK все-таки пионерская либа, основная масса софта юзает GTK & QT... Или "мы пойдем своим путем"? :)

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

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

> Даже если так и будет (ИМХО, трудно преплюнуть навороты шаблнов Си++), то фичи D упакованы лучше. Всё-таки Си++ - это огромный опыт.

Имхо, D 2.0 уже переплюнул плюсы. И опыт не помог. Да и что касается упаковки, то таки разделение value и reference типов прозрачности языку не добавило.

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

> Имхо, D 2.0 уже переплюнул плюсы. И опыт не помог

Таки я не согласен :)

> таки разделение value и reference типов прозрачности языку не добавило.

А мне кажется, именно отсуствие такого разделения в Си++ - корень большей части его проблем.

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

> Так может переориентироваться на GTK и добавить в Glade поддержку D? FLTK все-таки пионерская либа

В FLTK2 есть много возможностей, которых нехватало в FLTK. И автор вроде решил параллельно его на D писать. Так что FLTK2 будет даже не биндинг а родная библиотека для D. Проблема в том, что она еще "будет".

> основная масса софта юзает GTK & QT...

А еще основная масса софта использует C/C++

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

> Имхо, D 2.0 уже переплюнул плюсы. И опыт не помог

Как выразился американский коллега "Complex, yes. But not complicated"

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

>> таки разделение value и reference типов прозрачности языку не добавило.

>А мне кажется, именно отсуствие такого разделения в Си++ - корень большей части его проблем.

Зато шаблоны в D превращаются в развесистые static if для того, чтобы разделить логику поведения шаблона для примитивных типов/структур и для классов.

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

> Не - там у них какой-то другой Д - ихний .

Его даже переименовали в DTrace, т.к. Digital Mars зарегистрировали свой D раньше.

К вопросу о скриптовом языке: есть DMDScript - Реализация ECMA Script и miniD - скриптовый язык основанный на D: http://www.dsource.org/projects/minid

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

> шаблоны в D превращаются в развесистые static if для того, чтобы разделить логику поведения шаблона для примитивных типов/структур и для классов.

Я не настолько хорошо знаю D, чтобы понять эту фразу :) Но по-простому - откуда оно развесистое? if (структурныйтип) {} else {}, и всё.

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

>> Имхо, D 2.0 уже переплюнул плюсы. И опыт не помог

>Как выразился американский коллега "Complex, yes. But not complicated"

В любом случае эксперименты с языком пора бы уже прекратить. Одна транзитивность константности чего стоит. Из-за этого невозможно нормально реализовать передачу сообщений в многопоточных приложениях. Павбывавбы!

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

> Я не настолько хорошо знаю D, чтобы понять эту фразу :) Но по-простому - откуда оно развесистое? if (структурныйтип) {} else {}, и всё.

Да как-то сам не знаю, но как только приходится разбираться с D-шными библиотеками, сразу туча static if-ов в шаблонах обнаруживатся.

Вроде вот этого: http://www.dsource.org/projects/tango/browser/tags/releases/0.99.4/tango/core... (хотя Variant-у как бы положено).

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

> Не - там у них какой-то другой Д - ихний ...

Ихняя реализация скриптинга на D. Фиксированный набор классов + синтаксис D.

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

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

Ты первый, кто смог обьяснить что плохого в транзитивности константности. Может поделишься этим на nntp://news.digitalmars.com/digitalmars.D ?

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

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

> Ты первый, кто смог обьяснить что плохого в транзитивности константности. Может поделишься этим на nntp://news.digitalmars.com/digitalmars.D ?

Боюсь, что я и последний. Уже пытался: http://www.digitalmars.com/d/archives/digitalmars/D/D2.0_Transitive_const_is_...

Но на это никто не среагировал.

Вскоре после этого у меня сложилось впечатление, что в digitalmars.D окопались люди, которым больше интересно изобреть что-нибудь для D, чем реально использовать D. В такой атмосфере, имхо, язык просто обречен на постоянный поиск самого себя. В результате я забил на D и отключился от digitalmars.D :(

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

>А по-моему его надо было назвать E, т.к. D == C++ А разве не D == ++C ?

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

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

Возможно проблема в том, что я не писал передачу сообщений в многопоточных приложениях, но мне транзитивность кажется логичной. Оставим этот спор на потом. Чем спорить сейчас, проще сделать как-нибудь, а потом уже смотреть, что в выбранном решении получилось, а что нет.

> А разве не D == ++C ?

Тогда уж 'D' == ++'C'

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

> Так может переориентироваться на GTK и добавить в Glade поддержку D?

GTK слишком страшен для меня... Может я чего-то не понимаю?

Или может это С++ для меня стал слишком страшен после D и Java? =D

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

> GTK слишком страшен для меня... Может я чего-то не понимаю?

> Или может это С++

GTK - это чистый Си.

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