URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 104115
[ Назад ]

Исходное сообщение
"Релиз компилятора D версии 2.068.0"

Отправлено opennews , 10-Авг-15 15:21 
Вышла (http://forum.dlang.org/thread/mq9ohk$1c1r$1@digitalmars.com) версия 2.068 кроссплатформенного компилятора языка программирования D (http://ru.wikipedia.org/wiki/D_%28%D1%8F%...: Digital Mars D (DMD (http://dlang.org/)). D — это компилируемый в машинный код язык из семейства си‐подобных, включающий в себя опциональный сборщик мусора, мощную систему метапрограммирования, удобные шаблоны, исполнение D-кода во время компиляции, систему модулей вместо «include». D позволяет без труда использовать библиотеки на языке C, а также имеет возможность использовать некоторые C++-библиотеки и ObjC-библиотеки. Компилятор DDMD поддерживает системы GNU/Linux, Windows, OS X, FreeBSD, и архитектуры x86, x86_64, x64.

Основные изменения и новшества версии 2.068:

-  Изменения в компиляторе:


-  Новый ключ командной строки "-profile=gc" позволяет профилировать выделение памяти.
-  Блоки юниттестов (unittest) больше не парсятся, пока не задан ключ командной строки "-unittest".
-  Сгенерированые компилятором деструкторы и постблиттеры (postblitter) теперь доступны по именам «__xdtor» и «__xpostblit».

-  Изменения в языке:


-  Добавлена директива pragma(inline), для указания компилятору на то, что некоторые функции следует инлайнить всегда «pragma(inline, true)» или использовать для них обычные правила «pragma(inline, false)».

-  Для функций, тип возвращаемого значения у которых указан как auto, компилятор теперь будет автоматически выводить атрибуты pure, @safe, nothrow, @nogc (раньше это делалось только для шаблонов).

-  Парcер теперь позволяет использовать индексированные туплы (структура, существующая только во время компиляции и позволяющая хранить типы) как декларации типов: «T[0].S myvar;». Подробнее см. в http://dlang.org/changelog.html#index-type-followed-ident (описании).

-  Аргументы шаблонов теперь могут быть выведены на основе аргументов функции:

<font color="#461b7e">
  void previously(T=int) (T t=0) {} // раньше необходимо было так
  void now(T) (T t=0) {} // а теперь можно и так
</font>


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

-  Изменения в стандартной библиотеке:


-  Множество функций теперь работают с InputRange и OutputRange (абстракциями для получения входных данных и выдачи выходных данных) вместо массивов.

-  Модуль std.typetuple был переименован в std.meta. Для обеспечения совместимости std.typetuple сохранён в виде псевдонима std.meta.

-  Сущность TypeTuple была переименована в AliasSeq. Для обеспечения совместимости сохранён псевдоним.

-  Добавлен CTFE-шаблон hexString, который должен заменить встроенные в язык hex-строки:

<font color="#461b7e">
  x"304A314B» // было
  hexString!»304A314B» // стало
</font>

-  Добавлена CTFE-функция hasUDA для проверки наличия у символов UDA (определяемых пользователем атрибутов времени компиляции).

-  Вызовы GC API теперь могут быть отдельно профилированы.

-  Переписана работа с синхронизированными (synchronized) объектами в druntime. Починена ошибка с гонкой во время инициализации мьютекса.

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

-  Новая реализация AA (ассоциативных массивов), с новой схемой разрешения конфликтов при совпадении хэшей. Чуть быстрее и лучше дружит с кэшем процессоров.

-  Улучшена работа встроенного инструмента code coverage.

-  Функция executeShell теперь игнорирует переменную среды SHELL и всегда использует sh.

-  Функция byLine (чтение текстового файла построчно) была переписана и значительно ускорена (до трёх раз).

-  В пакет std.algorithm добавлены предикаты ordered и strictlyOrdered для проверки, отсортирована ли последовательность значений.

-  Шаблон RefCounted использует новый атрибут return, чтобы указать компилятору, что внутренний объект шаблона не может быть использован вне лексического блока (espace checking).


Также следует отметить, что в будущем релизе 2.069 используемый сейчас фронтэнд, написанный на подмножестве языка C++, будет заменён фронтэндом, написаным на языке D. Фронтэнд на языке D делается при помощи полуавтоматической трансляции C++ кода, поэтому до версии 2.069 никаких изменений (кроме очевидных исправлений ошибок) во фронтэнде не будет. Кодовая база библиотек druntime и Phobos, тем не менее, не заморожена.


URL: http://forum.dlang.org/thread/mq9ohk$1c1r$1@digitalmars.com
Новость: http://www.opennet.me/opennews/art.shtml?num=42756


Содержание

Сообщения в этом обсуждении
"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 15:22 
Интересно сравнить бы его с Go

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 15:25 
Интересно сравнить бы его с Rust

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 15:35 
Интересно зачем его сравнивать?

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 17:50 
Получилось, что "D" меньше в обоих случаях.:)
$ ghci
GHCi, version 7.10.1: http://www.haskell.org/ghc/  :? for help
Prelude> "D" `compare` "Go"
LT
Prelude> "D" `compare` "Rust"
LT
Prelude>

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 11-Авг-15 07:54 
Спасибо. Я как раз не знаком с Haskell.

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 15:53 
О, а вот и матёрые функциональщики продемострировали осмысленность и практическую полезность своей деятельности :-)

"Релиз компилятора D версии 2.068.0"
Отправлено Kodir , 12-Авг-15 13:25 
Оба жжёте!! :)))

А Ди - прекрасен!


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 10-Авг-15 16:03 
В рассылке (веб-морда вот здесь - http://forum.dlang.org/group/general) проскакивали сравнения, но деталей не знаю.

А вот с Go его сравнивать смысла не имеет - это примерно как сравнивать, скажем, Markdown и TeX - простота против выразительной мощи. И применения, соответственно, совсем разные.


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 19:42 
>В рассылке проскакивали сравнения, но деталей не знаю.

там не сравнивали напрямую, а чесали головы и обсуждали, что сделало такой ограниченный язык как Go популярным, и что из этого опыта можно применить в D. Сошлись на том, что точно нужен хороший тулчейн (отладка, форматирование, рефакторинг, и прочий intellisense), и точно нужен информативный сайт, чтобы юзер, желающий изучить D, мог туда зайти и через N минут сказать "ого, я уже знаю как написать это на D!"

сейчас зашел на dlang.org - нетривиальный пример кода на самом видном месте, форум с разделами "Debuggers" и "IDEs" опять же на самом видном месте. В общем, люди работают.


"Релиз компилятора D версии 2.068.0"
Отправлено rob pike , 10-Авг-15 22:17 
> чесали головы и обсуждали, что сделало такой ограниченный язык как Go популярным

Пример Java в расчёсанные головы не пришёл?
На нём хорошо видно что делает языки популярными.


"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 22:25 
те, кто в курсе — те не обсуждали, а просто смотрели. и продолжали совершенствовать бронепоезд.

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 00:28 
Это я помню, там сравнительно недавно были разговоры о Rust, а не о Go

"Релиз компилятора D версии 2.068.0"
Отправлено Kodir , 12-Авг-15 13:31 
> сейчас зашел на dlang.org - нетривиальный пример кода на самом видном месте,

Если вы вообще на чём-то си-подобном писали хотя бы месяц, то пример можно построчно понять. Прелесть примера - в крайней схожести с "обычным Си" и парой приятных плюшек.

> форум с разделами "Debuggers" и "IDEs" опять же на самом видном

Для этого есть очевидный "getting started" - там все ссылки. Пока человек вообще не решил, нужен ему язык или нет, нет смысла тыкать его в инструментарий.

> В общем, люди работают.

:) В меру сил. Не забывай, Ди сообщество - это не для нубов, желающих изучить программинг - он скорее для тех, кто устал от выкрутасов сипипей и готов поднять свой уровень.


"Релиз компилятора D версии 2.068.0"
Отправлено Andrey Mitrofanov , 10-Авг-15 16:15 
> Интересно сравнить бы его с Rust

Done, https://en.wikipedia.org/wiki/Comparison_of_programming_lang... Next!


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 10-Авг-15 17:16 
Кхм. Это вы называете сравнением?

"Релиз компилятора D версии 2.068.0"
Отправлено Andrey Mitrofanov , 10-Авг-15 18:09 
> Кхм. Это вы называете сравнением?

WP это называет Генералом Комраризьоном. Отмотай там же вверх - там _ещё_ по категориям кучка сравнений.

И да, на вопрос в комментарии на опеннет "хотельсь бы сравнений" -- это именно что их есть у WP.


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 00:39 
Тоже ерунда. во-первых, там, в общем-то, описаны полторы фичи, являющиеся хоть как-то общими. То есть все частности, которые обычно и дают основную фишку языка, туда не попали. Где там дишные ranges, контракты Eiffel, сишарповский LINQ? А во-вторых фичи - это хорошо, но главное - как они увязаны в языке. И тут тупое сравнение вообще не подходит. Поэтому единственный осмысленный путь, который я вижу - искать соответствующие дискуссии и выделять из них "за" и "против". Из дишных дискуссий - вот что-то подобное: http://forum.dlang.org/thread/ckjukjfkgrguhfhkdhhj@foru...

"Релиз компилятора D версии 2.068.0"
Отправлено A.Stahl , 10-Авг-15 15:39 
А кто знает что не так с языком? Раньше (буквально пару лет назад) о нём было слышно чаще, а нынче как-то совсем заглохло. Я вижу два варианта: либо язык практически завершён и добавить особо нечего (про Си новости тоже редко проскакивают), либо язык помер и используется как сейчас Форт или ещё что-то такое в стиле легаси.
Может кто из местных использовал?

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 15:57 
Нет спецификации, нет специалистов => никто в серьезном проекте его использовать не будет. Вообще, язык - скорее полигон для обкатки идей, которые потом попадают в другие языки.

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 10-Авг-15 16:09 
А это - http://dlang.org/spec.html - что? Ну и да, понятия "серьёзных проектов" и каждого свои.

Как раз "обкатки идей" там практически нет. Там обкатка того, как эти идеи застваить взаимодействовать вменяемым образом - причём не теоретически красиво,а на практике удобно - но это не переносится никуда, так как даже лёгкое измнеение набора фич или их семантики меняет всё картинку.


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 11-Авг-15 10:58 
> А это - http://dlang.org/spec.html - что? Ну и да, понятия "серьёзных проектов"
> и каждого свои.

Это техническая документация. Лучше чем ничего, конечно, но это не ISO/IEC-14882, к примеру.

И не надо говорить, что стандарт не нужен. Нужен, и не только как единое описание языка, не зависящее от реализации. При стандартизации многие идеи пересматриваются спецами с самым разным опытом и знаниями и в результате остается лучший вариант. А здесь языком рулит небольшая группа людей - даже во главе с Александреску это не обеспечивает нужного уровня проработки. К примеру, описание ассемблера в спецификации высокоуровневого языка - это вообще нонсенс, т.к. прибивает гвоздями к конкретной архитектуре. Как результат - описания модели памяти попросту нет. Примечания вроде "Note that dmd currently does not comply with left to right evaluation of function arguments and AssignExpression." в _спецификации_языка_ отдельно доставляют.

> Как раз "обкатки идей" там практически нет. Там обкатка того, как эти
> идеи застваить взаимодействовать вменяемым образом - причём не теоретически красиво,а
> на практике удобно

Я это и сказал.


"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 14:10 
ты ошибся адресом: комитет c++ заседает в другом месте. а нам ваши стандарты вместе с комитетами не нужны. как и твои советы — конечно, «спецов с разными знаниями и опытом» не бывает вне комитетов. гуляй, вася.

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 14:21 
Ну вот в принципе всё как бы красиво сказано. А по факту - язык удобен несмотря на "маленькую группку", уже с год как достаточно стабилен и есть пара фирм, которые на нём реально пишут и довольны. Для тех же плюсов ISO-стандарт появился существенно позже распространения самого языка. Не сильно оно им помешало. А сейчас, когда редко для чего есть полноценные сторонние реализации, это и подавно не особенно критично.

А по поводу памяти - выравнивания описаны, что ещё вам нужно забивать гвоздями в спеку? Несовершенства, вроде встроенного ассемблера - артефакта x86-only - да, есть. Но на практике оно вообще никак не мешает.

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

В общем, перфекционизм это всё, не более.


"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 14:35 
> Ну вот в принципе всё как бы красиво сказано.

чушь там сказана. зато с умным видом и насуплеными бровями. причём сказана человеком, который вообще никогда никакие языки не разрабатывал, зато точно знает, Как Надо. единственное применение таким «знающим» — посылать их на хутор, где бабочек много.


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 11-Авг-15 15:39 
Зато вы-то, я смотрю, прямо светоч языкостроения. ЧСВ не жмет?

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 15:55 
нет, не жмёт. ещё идиотские вопросы есть?

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 10-Авг-15 15:59 
С ним всё более чем так. Особенно по сравнению с парой дет назад. Я, правда, так и не собрался в чём-то реальном его использовать, но послеживаю. Нарисовался нормальный процесс разработки, есть несколько книг, все свары в прошлом. Язык стабилен, крупные баги в основном вычищены, там нарисовалось вполне приличное, хоть и небольшое, колмьюнити, в том числе несколько небольших фирм, которые на D пишут. Плюс куча всего сейчас отложена до перехода на D-версию компилятора, но это скорее о разного рода оптимизациях, которые всем лень делать на плюсах.

Единственная проблема - за D нет ни гугла, ни мозиллы с самсунгом, тольку кучка заинтересованных программистов. Так что громко кричать о нём особенно некому.


"Релиз компилятора D версии 2.068.0"
Отправлено йцу , 10-Авг-15 16:19 
> Единственная проблема - за D нет ни гугла, ни мозиллы с самсунгом, тольку кучка заинтересованных программистов. Так что громко кричать о нём особенно некому.

Facebook пару лет назад вроде заявляли, что где-то используют D.


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 17:07 
То заявлял Александреску, который этот язычок и пилит. Ему кое-как удалось пропихнуть пять тысяч строчек в продакшн. А вообще, люди в здравом уме и трезвой памяти вряд ли будут его использовать для чего-то серьёзнее пет-проджектов.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 18:25 
> А вообще, люди в здравом уме
> и трезвой памяти вряд ли будут его использовать для чего-то серьёзнее
> пет-проджектов.

sociomantic очень удивлены.


"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 18:26 
> Facebook пару лет назад вроде заявляли, что где-то используют D.

пейцбук использует всё подряд: на чём утилита написалась — то и использует. так получилось, что Walter Bright написал для них несколько утилит на D, активно используемых в процессе разработки — теперь пейцбук и D использует. напишет кто‐нибудь что‐нибудь полезное на брэйнфаке — будут брэйнфак использовать. они там прагматики.


"Релиз компилятора D версии 2.068.0"
Отправлено Бутират , 10-Авг-15 15:59 
А что не заглохло кроме языков, за которыми стоят мегакорпорации (java, c#, go, rust (с натяжкой))

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 16:17 
Python.

"Релиз компилятора D версии 2.068.0"
Отправлено Andrey Mitrofanov , 10-Авг-15 16:19 
> А что не заглохло кроме языков, за которыми стоят мегакорпорации (java, c#, go, rust

Так, Си не заглох, на котором они все

> (с натяжкой))

и написаны.


"Релиз компилятора D версии 2.068.0"
Отправлено Пользователь Debian , 10-Авг-15 21:06 
Go 1.5 уже написан на Go.

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 11-Авг-15 00:18 
> Go 1.5 уже написан на Go.

Пусть теперь попробуют на нем написать себе операционку и системное окружение. Иначе замена сишечке как-то не вырисовывается...


"Релиз компилятора D версии 2.068.0"
Отправлено A.Stahl , 10-Авг-15 16:22 
Си, Си++, РНР, ЯваСкрипт... тысячи их. За этими языками нет мегакорпораций. Даже самых завалящих корпорашек нет.

"Релиз компилятора D версии 2.068.0"
Отправлено анонимус , 10-Авг-15 16:34 
Ога. Особенно за жабоскриптом то ее нет. Хотя назвать Мозиллу мегакорпорацией действительно можно только с натяжкой.

"Релиз компилятора D версии 2.068.0"
Отправлено A.Stahl , 10-Авг-15 16:53 
И кто же оказывает основное влияние не развитие ЖС? За кем остаётся последнее слово (пусть не юридическое, а фактическое, но всё же...)?

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 12-Авг-15 17:43 
За гуглом, вестимо

"Релиз компилятора D версии 2.068.0"
Отправлено КарМер , 10-Авг-15 19:52 
FORTRAN - вечно живой,
FORTRAN - всюду со мной

"Релиз компилятора D версии 2.068.0"
Отправлено Михрютка , 10-Авг-15 17:04 
у Arisu спроси, он на вдвшных^Wдмдшных листах тусуется и даже чего-то на ем сочиняет.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 18:23 
> А кто знает что не так с языком?

всё с ним так. потихоньку вошёл в фазу «у нас есть ещё много интересных идей, но пора бы и притормозить».

> Я вижу два варианта: либо язык практически завершён и добавить особо
> нечего

добавить есть чего, но не надо пока. «не время, Фёдор!» (ц)

> либо язык помер и
> используется как сейчас Форт или ещё что-то такое в стиле легаси.

живее всех живых. а новости просто писать особо некому, вот и тишина. в NG движуха вполне на месте, в гите тоже. для маковводов, например, objc bridge активно пилят. стандартная библиотека активно переводится на работу с ranges (что в потенциале делает её @nogc, если range сам @nogc), и такое всё. зачем тут об этом писать, кому это надо из тех, кто D не использует? а кто использует — тот в курсе.

> Может кто из местных использовал?

я использую. как основной и практически единственный язык для написания всего: от throwaway утилит и до вполне софта на продажу.


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 23:18 
а есть такое что на их форумах люди сравнивают его с RUST, при этом приводя аргументы что то-то например там лучше реализовано?


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 00:42 
Конечно. Такое вообще всегда есть - на любую фичу найдётся кто-то, считающий, что она должна быть сделана по-другому, и кто-то, вообще сичтающий её антифичей.

http://forum.dlang.org/thread/ckjukjfkgrguhfhkdhhj@foru... - только там много


"Релиз компилятора D версии 2.068.0"
Отправлено angra , 11-Авг-15 03:53 
А как у него с производительностью и потреблением памяти в сравнении с C++? Есть какие-нибудь бенчмарки вроде http://benchmarksgame.alioth.debian.org/ ? Ну или личный опыт.
Я не с целью покритиковать, а серьезно интересуюсь.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 04:14 
> А как у него с производительностью и потреблением памяти в сравнении с
> C++?

зависит от компилятора, натурально. сейчас их есть три:
• DMD: компилирует быстро, как понос выходит. качество кода примерно такое же.
• GDC: использует бэкэнд gcc, качество кода как у gcc.
• LDC: использует бэкэнд llvm, качество кода как у llvm.

GDC и LDC обычно отстают на одну‐две версии от DMD.

насчёт потребления памяти — это уже как напишешь код. phobos (стандартная библиотека) сильно подвязан на gc (хотя работа в направлении отвязывания идёт), прямое сравнение затруднительно.

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

из личного опыта: даже выхлоп DMD вполне юзабелен. всё равно большинство прикладного софта занимается ожиданием — то пользователя, то i/o, то сети… критичные по скорости места можно писать практически gc-free. если надо ещё скорости выжать — gdc.

в среднем — gdc пока что несколько хуже g++, потому что не умеет агрессивных девиртуализаций, например. с другой стороны — классы с виртуальными методами в D используются намного реже, чем в C++: вместо этого в D обычно используют простые структуры и метапрограммирование, так что классы с наследованием нужны намного реже.

в общем — вполне юзабелен для разных задач, от игр‐платформеров до высоконагруженых сетевых сервисов. в подавляющем большинстве случаев отлично заменяет C++. траблы могут быть разве что в проектах, которые сильно подвязаны на плюсовые библиотеки: взаимодействие с плюсами есть, но достаточно базовое. то есть, ни stl, ни сложных шаблонов (для этого, понятно, вообще нужно полноценный цпп‐компилятор реализовывать). но так как я от крестовых библиотек бегаю изо всех сил, то мне плевать.


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 11-Авг-15 10:37 
Спасибо за обзор.

Язык интересный, но лично я, пока там обязателен gc, с ним связываться не хочу. Меня C++ вполне устраивает.


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 13:14 
Если у тебя нет каких-то "странных" задач то GC там обычно к месту, особенно учитывая, что выделений памяти в силу архитектуры языка и библиотеки меньше, чем если, скажем, на Java писать. Больше того - GC может дать приличный прирост производительности, так как избавляет от выделения памяти для перестраховки (когда не знаешь, освободят оригинал после копирования или нет). Ну или move-семантику приходится использовать - но с ней всё же мороки больше. Или подсчёт ссылок - но это вообще радость, особенно в многопоточке.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 14:02 
> пока там обязателен gc

а этого я не писал, например. и необязателен, и поддаётся контролю — иначе мой платформер фиг бы нормально работал, в том числе по сетке.

язык, в том числе, позиционируется как системный. поэтому gc опционален. достаточно большая часть фобоса таки использует ranges, так что она тоже на gc не подвязана уже.

а с третьей стороны: чем тебе gc-то так не нравится? обычно эта фобия совершенно беспочвенна — в отличие от мемликов, которые очень даже да. обычно это сродни попыткам «помочь компилятору», написав обратный цикл, например: когда‐то имело смысл, а сейчас никакого.


"Релиз компилятора D версии 2.068.0"
Отправлено Kodir , 12-Авг-15 13:35 
> А кто знает что не так с языком?

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


"Релиз компилятора D версии 2.068.0"
Отправлено гость , 10-Авг-15 16:17 
Хоть одна причина использовать его?

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 10-Авг-15 17:24 
Есть смысл попробовать. Если его логика на вашу хорошо ложится - то это, в общем, уже хорошая причина. А одну-две фичи каких-то не выделишь, там именно что их комбинация удачной оказалась.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 18:28 
> Хоть одна причина использовать его?

нет. проходи спокойно дальше.


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 16:22 
http://dlang.ru/Why-D-is-Better

"Релиз компилятора D версии 2.068.0"
Отправлено EHLO , 10-Авг-15 23:10 
>http://dlang.ru/Why-D-is-Better

$ curl -I http://dlang.ru/Why-D-is-Better
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 23197
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
Set-Cookie: ASP.NET_SessionId=pt5yteoyqebjilnom5hn3vxv; path=/; HttpOnly
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 10 Aug 2015 20:09:11 GMT

Буээ


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 11-Авг-15 00:19 
Нде, сервер у них явно не на D...

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 00:45 
> Нде, сервер у них явно не на D...

forum.dlang.org на D. можешь поинтересоваться в гугеле впечатлениями людей. (хинт: insanely fast и всё такое). а для статики — какая разница, чем её отдавать?


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 16:42 
Но на фоне Rust писать на D так же приятно как на Python после Perl.

"Релиз компилятора D версии 2.068.0"
Отправлено fail , 10-Авг-15 17:12 
> Но на фоне Rust писать на D так же приятно как на
> Python после Perl.

Ну дык создатели Java, C# - "дыбилы", а "твapьцы" Rust "гении" - позиционируя как "убиванец С-like" - синтaксис далеко нe си-шный...


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 10-Авг-15 17:28 
Хм, двусмысленно сказано, хотя писать на D и правда очень приятно и подсаживаешься слегка - уж больно неожиданно компактно получается.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 21:47 
> Хм, двусмысленно сказано, хотя писать на D и правда очень приятно и
> подсаживаешься слегка - уж больно неожиданно компактно получается.

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


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 00:45 
Э... ну, я сейчас на жизнь зарабатываю писанием на сях - так в них по сравнению с чем угодно отсутствие приятных мелочей бесит. А насчёт плюсов... на новых ничего делать не пришлось, так что уверенности особой нет, но на вид они вполне комфортными стали.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 01:10 
> но на вид они вполне комфортными стали.

south park напоминает. когда Рэнди изобрёл IT — футуристическую машину с рычагом, вводящимся в задницу. и все ездили, пока кто‐то не спросил, обязательно ли рычаг вводить. вот цпп — это IT, с рычагом в, который обязателен.

собственно, после офигенных шаблонов и метапрограммирования в D на цппшные потуги без слёз смотреть не получается. если кто слаще редьки не едал — тому, может, и нормально. а кто попробовал реализацию by humans for humans…


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 01:56 
Да я насчёт превосходства D не спорю. Но вот чтобы прям уж бесило - не сказал бы. Просто в D начинаешь всякую магию чуть ли не на автопилоте применять, а на плюсах - более "классически" пишешь, да и всё.

auto,  for-foreach, constexpr, более удобная инициализация, лямбды, decltype - всё это, насколько я успел поиграться, избавляет от кучи мусора, который, в общем, больше всего и раздражал. а шаблоны я в плюсах всегда предпочитал оставлять спецам-авторам либ за исключением самых простых случаев - именно по причине чудовищности. Тем более, что все либы давно есть.


"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 02:04 
> Но вот чтобы прям уж бесило - не сказал бы.

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

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

именно. в отличие от D, где шаблоны пишутся… сами как‐то. потому что просто и удобно.

я не то, чтобы тебя убеждаю, что D крутой. я просто всё ещё в восторге от него, хотя уже не первый год использую.


"Релиз компилятора D версии 2.068.0"
Отправлено angra , 11-Авг-15 03:45 
Извини, но python после perl кажется слишком топорным и желание писать на нем не возникает. Может новичку читать чужой код на python и удобней, но писать на perl значительно приятней.

"Релиз компилятора D версии 2.068.0"
Отправлено хрюкотающий зелюк , 10-Авг-15 17:08 
Когда будет QtD биндинги под Qt 5.5? А какая IDE чтоб держала эту связку. Я был бы счастлив появись такое.

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 21:35 
А также KDE Frameworks D

"Релиз компилятора D версии 2.068.0"
Отправлено Kodir , 12-Авг-15 13:40 
> Когда будет QtD биндинги под Qt 5.5?

Я бы не стал уповать на байндинги к каким-то поделиям, писаным-переписаным на непонятных идеях. Есть куча нативных Ди-ГУЁв разной степени готовности, лучше что-то с ними ваять.


"Релиз компилятора D версии 2.068.0"
Отправлено wWolf , 13-Авг-15 14:44 
Какие например? Вообще то гуевых фреймворков а тем более таких развитых как таковых не так уж и дофига. А про таковые изначально на D вообще впервые слышу.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 13-Авг-15 16:39 
> А про таковые изначально на D вообще впервые слышу.

потому как не слушать, а читать надо было. впрочем, хозяин — барин.


"Релиз компилятора D версии 2.068.0"
Отправлено anonymous , 10-Авг-15 17:35 
Хватит тявканья! Есть кто-нибудь кто использует/использовал? Может поделиться опытом (+ и -)? Для каких задач годится? И для каких не годится?

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 21:44 
ни для чего не годится. проходи, there is nothing interesting here.

"Релиз компилятора D версии 2.068.0"
Отправлено Ури , 10-Авг-15 18:14 
Туплы? Туплы?? Блять!

В русскоязычном коммьюнити уже давно в качестве перевода термина "tuple" используется "кортеж".

"Туплы", епрст.


"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 18:28 
> В русскоязычном коммьюнити уже давно в качестве перевода термина "tuple" используется "кортеж".

так почини. каюсь, виноват, запамятовал слово.


"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 22:45 
> так почини. каюсь, виноват, запамятовал слово.

Ого, ты написал новость на опеннет? :)


"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 02:21 
> Ого, ты написал новость на опеннет? :)

как я уже отвечал — я иногда это делаю. просто принципиально подписываюсь анонимом.


"Релиз компилятора D версии 2.068.0"
Отправлено rmh , 10-Авг-15 18:40 
Так сказал, будто ты никогда не дебажил легаси код по загенерейченому темплейту...

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 18:44 
но ведь от этого менее кривой фраза не становится.

"Релиз компилятора D версии 2.068.0"
Отправлено rmh , 10-Авг-15 19:25 
Да я не спорю, это был сарказм. Меня вообще бесит безумное использование в среде программистов английских слов при наличии адекватных русских аналогов.
Как вам такое, например: "пушнул в девелопмент там квик фикс для паблицайзед колонки"

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 21:39 
для профжаргона — вполне нормально. более того, это вполне нормально бы смотрелось на профсайте. но, конечно, не на ресурсе типа опеннета, который хоть и более‐менее технической направленности, но ориентирован, всё‐таки, на более широкую ЦА.

"Релиз компилятора D версии 2.068.0"
Отправлено Ytch , 11-Авг-15 00:48 
> Меня вообще бесит безумное использование в среде программистов английских слов при наличии адекватных русских аналогов.

Бывают и обратные ситуации. Например, отсутствие устоявшихся переводов (хотя это наверное подходит под отсутствие адекватных аналогов? кэш, хеширование, коммит, аплинк, да тот же "пушнул" из вашего примера...), неоднозначность русскоязычных терминов, громоздкость и малая употребимость русскоязычного термина, отсутствие (адекватного) материала на русском языке (освоение во всем колелктиве идет сразу в английских терминах), все вышеперечисленное одновременно.
Примеров масса: канальные интервалы, дизъюнкция, конъюнкция, сложение по модулю 2, среднеквадратичное значение, взаимоисключающая блокировка, исчезновение порядка, динамическое ОЗУ, синхронный последовательный интерфейс (сложно придумать более размытое и неоднозначное), да даже иногда невинное "обновить" (гадай update или upgrade, особенно там где и то и другое может быть)... Либо просто громоздко для повседневной речи, либо нужны постоянные дополнительные пояснения из-за неоднозначности, либо людям еще и словарик понадобится чтоб понять о чем речь. Для научной статьи может и самое оно, но не в разговоре же коллег использовать!
А уж если так или иначе используется сленг (ах, да - жаргон )), то какой принят в коллективе такой и принят - смесь языков обычно, да и русские термины зачастую не вот уж научны)

P. S. (немного не в тему уже, наверное) Видел в русскоязычном интерфейсе одной Ынтерпрайзной (вот еще слово-пример) программы как download и upload перевели как "загрузить" и "выгрузить" и сразу же, в отличие от оригинала, стало непонятно в какую сторону в каком случае пойдет поток данных.


"Релиз компилятора D версии 2.068.0"
Отправлено Kodir , 12-Авг-15 13:51 
Вы оба правы, но общая тенденция должна быть в сторону адекватной русскоязычности. Скажем, НЖМД - нафик такой термин не нужен, "хард" и "винт" вполне подойдут. А "пушить в репу" допустимо только в устной речи команды.

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 12-Авг-15 17:42 
Тенденция должна быть в сторону адекватной англоязычности. Языки рпограммирования, названия программ и параметров - на базе английского, подавляющее большинство информации для разработчика - на английском... Либо на нём и говорить либо неизбежно будет смесь с нижегородским.

Ну и да, русскоязычный аналог "пушить в репу" - в студию.


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 02:00 
Такое растёт, когда оно думается (и пишется для дела) вообще только на английском. А как на русский переводить - вспоминать приходится исключительно для декору, практического смысла никакого нет.

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 00:50 
Я вот давно мечтаю, чтобы английский был официально принят чем-то подобным латыни в средние века - официальным языком инженерии и науки. Уж больно много мороки со всеми этими кальками и попытками перетащить термины в другие языки, причём профита нуль - квалифицированный специалист всё равно должен владеть английским.

"Релиз компилятора D версии 2.068.0"
Отправлено nc , 10-Авг-15 20:11 
Хорошо что язык развивается. А вот на исходники компилятора иногда без слез и желания постучаться головой о стенку смотреть невозможно... Некоторые вещи написаны в таком жестком goto-ориентированном стиле, как будто коду 20 лет и его поддерживали совершенно разные люди.
Я конечно понимаю, иногда это вроде для оптимизации (лексер например так написан), но зачем ловить блох на такой оптимизации??? Много совершеенно бессистемного кода. Парсинг командной строки какой-то дикий, все валят в кучу argc/argv, которые еще подменяют пару раз по ходу инициализации компилятора, все это жестко прикручено к основному коду... жесть. Надеюсь что при переписывании на D это отрефакторят.

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 10-Авг-15 20:30 
На фиг тебе исходники компилятора?


"Релиз компилятора D версии 2.068.0"
Отправлено nc , 10-Авг-15 22:39 
Форк делаю. Точнее совсем другой язык программирования. Исходники D оказались ближе всего к тому что я хочу.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 22:42 
только не забудь, что бэкэнд у DMD проприетарный.

"Релиз компилятора D версии 2.068.0"
Отправлено Аноним , 11-Авг-15 09:17 
>Форк делаю. Точнее совсем другой язык программирования. Исходники D оказались ближе всего к тому что я хочу.

SDC возьми лучше.


"Релиз компилятора D версии 2.068.0"
Отправлено nc , 11-Авг-15 11:48 
Cпасибо, посмотрю. Я штук 15 разных проектов рассматривал, когда выбирал что взять за основу, а этот что-то упустил...

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 14:04 
> Cпасибо, посмотрю. Я штук 15 разных проектов рассматривал, когда выбирал что взять
> за основу, а этот что-то упустил...

ну, тогда и это посмотри: https://github.com/VoltLang/Volta


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 14:26 
А зачем, еси не секрет? Другими словами - чем оно должно отличаться от существующих языков?

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 14:38 
> А зачем, еси не секрет? Другими словами - чем оно должно отличаться
> от существующих языков?

да хотя бы и просто так, например. я вон тоже постоянно порываюсь D форкнуть.


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 15:47 
Ну разве что "просто так", для экспериментов. Хотя какой-нибудь способ надругательства над syntax tree я бы туда добавил, это да. Чтобы синтаксические конструкции можно было добавлять подключением модуля, хотя бы в рамках syntax sugar. А то string templates - больно уж стрёмно. Правда, тогда оно станет слегка write-only, но это ж мелочи :-)

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 15:57 
> Правда, тогда оно станет слегка write-only, но это ж мелочи :-)

да фигня. read-only и сейчас можно сделать без особых проблем, а вот удобно генерировать код и массажировать деревья — не очень.


"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 10-Авг-15 21:42 
это «эволюционировавший» код. многое там тянется чуть ли не с DMC, а Уолтер имеет несколько… своеобразные привычки кодирования.

тем не менее пока оно работает, никто не будет лезть «украсивливать»: рефакторингом ради рефакторинга devteam не страдает, чай, не мозилла. если вдруг будут что‐то в том районе чинить — тогда и наведут марафет.


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 00:53 
Там многое тянется с Zortech C. Я, помнится. нарывался в рассылке примерно на следующее: "я бы поправил, но на плюсах писать неохота, вот как на D будет - тогда". И даже не раз такое видел.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 01:05 
> Там многое тянется с Zortech C. Я, помнится. нарывался в рассылке примерно
> на следующее: "я бы поправил, но на плюсах писать неохота, вот
> как на D будет - тогда". И даже не раз такое
> видел.

да, некоторые улучшения авторами заморожены «до прихода DDMD». в частности, есть проект перетряхивания CTFE-движка, например, который в долгом ящике лежит. вот и созрели, наконец.


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 02:04 
CTFE - это вообще отдельная песня с его нынешней прожорливостью. Я небольшой ORM на нём ляпал - оно три гига жрало :-) Ну, то есть я знаю, что там сейчас вообще никакой сборки мусора нет, так что не дёргался, но выглядело забавно.

"Релиз компилятора D версии 2.068.0"
Отправлено arisu , 11-Авг-15 02:17 
это да, память оно жрёт гомерически. по‐моему, с новым фронтэндом это как раз целятся починить. в виде «у вас есть выбор: быстро и надо терабайт рам, или медленно, зато с GC». ;-)

"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 11-Авг-15 00:52 
Там коду местами и побольше двадцати лет.

"Релиз компилятора D версии 2.068.0"
Отправлено Kodir , 12-Авг-15 13:55 
> Функция byLine (чтение текстового файла построчно) была переписана и значительно ускорена (до трёх раз).

Хоспыдя! Что ж за маразм там был в оригинале?! Там ускорять-то нечего, прочёл до первого newline и отдавай!


"Релиз компилятора D версии 2.068.0"
Отправлено Crazy Alex , 12-Авг-15 17:53 
Там много всего было. И откровенная тупизна, и неучёт особенностей платформы, и неожиданные тормоза в том, что тормозить не должно. И нет, оно не так просто - это обобщённая функция (шаблон из ranges еа самом деле), она должна корректно работать любыми терминаторами, в том числе уникодными.