Вышла (http://forum.dlang.org/thread/ko7qgc$14i1$1@digitalmars.com) новая версия кроссплатформенного компилятора языка программирования D (http://ru.wikipedia.org/wiki/D_%28%D1%8F%... - dmd 2.063 (http://dlang.org). С предыдущего релиза в компилятор и системную библиотеку было внесено (http://dlang.org/changelog.html) более 260 исправлений и улучшений. В новой версии подверглась существенной переработке библиотека управления процессами std.process, добавлена возможность использовать шаблоны внутри функций, а так же внесено несколько сотен других улучшений и дополнений. В настоящий момент идут активные работы (http://dlang.ru/d-budet-perepisan-s-s-na-sam-d) по бутстраппингу компилятора, нацеленных на то, чтобы переписать компилятор с языка С++ на сам D.URL: http://forum.dlang.org/thread/ko7qgc$14i1$1@digitalmars.com
Новость: http://www.opennet.me/opennews/art.shtml?num=37065
Судя по исходникам, x86 онли, пока(?).
на 64 работает давно
имеется ввиду отсутствие поддержки ARM. Хотя помнится где-то видел бекенд для gcc, благодаря гцц-инфраструктуре были доступны и другие архитектуры, в т.ч. арма. Почему автор решил писать кодо-генератор с нуля - не понятно.
У них ещё ldc на llvm есть.
> Почему автор решил писать кодо-генератор с нулянаверное, он очень гордый
Ответ от 28.08.2012:GDC and LDC are both available for ARM processors on the last Debian stable.
Вот отсюда:
когда уже на нем facebook перепишут ?
О, ты тоже ненавидишь facebook.
И фконтактик :)
Пока его ABI не станет совместимо с C++ным, не взлетит.
D это попытка избавить мир от C++, а не сделать что-то совместимое с ним. А C он изначально дружил.
Простой вопрос - а что _не_ совместимо с си? :-)
Вопрос: А ЧТО ТОЛКУ от того, что всё с ним совместимо? Вам нужны DOS драйвера? OS/2 приложения? Линуксу уже как лет 15 нужен нормальный язык, а не объектноориентированное укропище типа Цэ++. Пока будет Цэ/Цэпипи, не видать FOSS стабильности как ушей.
Выдыхай, бобёр.
Си (и линуху в частности как одного из продуктов) хватает и стабильности, и гибкости.
На пару балмеров и пару (сотен) таких как ты хватит.Зыж
Ха! Стабильности ему не хватает.
Что там ещё в мире то делается?
.NET (по простому, а не через ActiveX, DOM или другими очень обходными путями).
Мимо.http://msdn.microsoft.com/en-us/library/aa984739(v=vs.71).aspx
Нет такого понятия, как "ABI C++". Спецификация С++ намеренно оставляет ABI неопределённым, в силу чего разные компиляторы для разных платформ (или разные компиляторы для одной платформы, или один и тот же компилятор для разных платформ, или даже разные версии одного и того же компилятора для одной и той же платформы) имеют несовместимые друг с другом ABI.
Пусть так. Ну хотябы совместимость с тем ABI, которая у современных версий g++. Qt скоро будет в каждой кофемолке.
>Нет такого понятия, как "ABI C++".man itanium abi
> man itanium abiИтаник почти сдох. Кого его abi волнует?
Тех, кто пишет G++, очевидно. Itanium ABI там используется не только для собственно итаниума, но и для других платформ, включая x86_64. Впрочем, универсальным от этого этот ABI не становится, да и истинность утверждения "без этого не взлетит" сомнительна — бОльшая часть "взлетевших" языков совместимости с этим ABI не имеет, включая, как ни странно, Си.
Напомните, это же проприетарщина, либо под какой-то кривой лицензией?
Напоминаю.DMD состоит из нескольких частей.
1) frontend - открытая лицензия (Boost License), её же используют ldc и gdc
2) бакэнд - Брайт в свое время заключил некое соглашение с Семантиком (то ли права на код продал, то ли что-то подобное), так что его возможности несколько ограничены. Код доступен на гитхабе, но для производных продуктов вы должны получить разрешение Брайта, кторое он даёт совершенно механически всем желающим. Даже патчи как-то принимает
3) стандартная библиотека лицензируется под Boost License, используется (с небольшими подпилами) в LDC и GDC.
LDC/GDC лицензионно чисты, но обычно несколько отстают от официальной версии (до месяца), над ними также работает поменьше народу. LDC также несколько ограничен технически архитектурой LLVM.
>LDC также несколько ограничен технически архитектурой LLVM.А почему clang не ограничен?
> А почему clang не ограничен?Не знаю где он там не ограничен, но парни из AMD хлeбнули немало горя с LLVM, пытаясь научить этого ежа летать. Код для VLIW генерить он может только с феерическими костылями, сравнимыми по написанию с отдельным кодогенератором. Оно даже просто технически-валидный поток команд не может сгенерить - приходится парсить результат работы этого бредогенератора и фиксить за ним то что он нагенерил.
Честно говоря, не помню нюансов уже. Некоторые оптимизации не получалось сделать в LDC и говорили, что скорее всего и не получится.
а что есть интересного написанного на этом языке?
На D2? Ничего. И не будет, пока эти клоуны продолжают чуть ли не в каждой версии язык корёжить. И заменой С++ это чудо в текущем виде не станет, увы. Ибо JIT, de jure отключаемый, de facto при отключении превращает всю стандартную библиотеку в тыкву.
Какой JIT, Это компилируемый язык! А если ты про сборщик мусора, то да -- многие возможности стандартной библиотеки не будут работать с отключенным сборщиком.
Тьфу, конечно же я про GC. Сам не знаю, какого лешего про JIT написал.
Одна мелочь - те, кто "корёжат" язык и те, кто на нем пишет (правда в опенсорсе у них только библиотеки) - одни и те же люди. Комьюнити там небольшое, но крайне квалифицированное и активное, и изменения в языке основательно обсуждаются. Вон в нынешней версии - убрано (точнее задепрекейчено) только явное безумие, которое в здравом уме и так ни один нормальный программист не напишет.
Вот только есть одна проблема. С первого релиза DMD2 прошло уже шесть лет, а процесс стабилизации возможностей языка никак не завершится. И чем дольше это продолжается, тем меньше остаётся шансов на то, что язык таки получит широкое распространение.
Как минимум последние пару лет ничего там всерьез не ломали. Изменения есть, но обычно это довольно эзотерические углы, которые мало кого реально цепляют. Не говоря о том, что в таких случаях обеспечивается то, тчо сарый код не смысл меняет а становится невалидным и предлагаются варианты фиксов.А что не взлетит - вполне вероятно - никакой большой которы за D нет, и компиляция в натив для сложного софта не в моде.
К сожалению это не так: до сих пор даже переносят библ. ф-ции из модуля в модуль и переименовывают
> С первого релиза DMD2 прошло уже шесть лет, а процесс стабилизации возможностей языка никак не завершится."Тщьеорт побьери!" Все обе программы на Ди от возмущённого ононизмуса перестали работать!! Да? Или ты так, попердеть вышел?
> С первого релиза DMD2 прошло уже шесть лет, а процесс стабилизации возможностей языка никак не завершится.От первого релиза С++ (1983 год) до его стандартизации (1998 год) прошло 16 лет. Будем ждать.
> а что есть интересного написанного на этом языке?Hello, world.
PS. Фуле спрашиваешь? Напиши, йопто!
> а что есть интересного написанного на этом языке?Много чего есть, с частью можно ознакомится тут http://www.prowiki.org/wiki4d/wiki.cgi , остальное поискать на гитхабе. Есть даже веб-фреймворк http://vibed.org/
То есть как и говорилось - ничего! Ну не больно то и надо. Let's GO! ;-)
Сейчас относительно D лучше говорить наоборот - сначала надо искать на гитхабе.Ну и вот здесь лежат конфиги для автоматической сборки библиотек, по ним удобно всё скопом оценивать, благо видны и краткие описания, и даты последнего обновления репы: http://registry.vibed.org/
Спасибо большое.
Нет, ибо экосистема безнадёжно загублена. Нестандартностью, проприетарным компилятором, убогостью по сравнению с C++, никакой совместимостью, отсутствием advocacy.Единственное что я видел интересного на этом языке - это openmw, свободный клон TES 3: Morrowind. Только вот его переписали на C++ после чего разработка ускорилась на порядок.
Простите, но после "убогости по сравнению с плюсами" говорить дальше не о чем.
А вы наверное из тех кто начитался хомячковых высеров о том что D круче, а сам язык не видели?
Это скорее тот, кто С++ ниасилил )))
Есть три вида людей: те, кто не пробовали осилить С++, те, кто пробовали и не осилили, и те, кто выучили пару идиом и говорят, что осилили.
Ну я как бы 3D-двиг (OpenGL >= 3.3) пишу на С++ и весьма успешно :) К какому типу вы меня отнесете - мне плевать :)
стал бы ты писать что именно пишешь на С++, если на мнение плевать... :-D
надо быть очень убогим программистом, чтобы знание С++ (в мое время ВСЕ им владели, реальная альтернатива была только Паскаль) возводить в абсолют. Но в нынешнее - Java&PHP время - знание С++, конечно удивительное качество человека...
> Ну я как бы 3D-двиг (OpenGL >= 3.3) пишу на С++ и весьма успешно :) К какому типу вы меня отнесете - мне плевать :)К тому типу, который думает, что выучил С++, а сам спецификацию с её >1000 страниц даже не видел. То есть к третьему. А если скажешь, что ты её наизусть выучил, то ты — просто лжец, и не важно, пытался ты осилить С++ или нет.
какой няшный батхёрд )
> какой няшный батхёрд )…сказал представитель чувствующих оный батхёрт всякий раз, когда кто-либо упоминает D или еще чем-нибудь богохульственно покушается на Пресвятые Плюсы.
Что характерно - ни одной внятной претензии вы не привели. И да, я D знаю достаточно хоршо, благо пару лет в их рассылке провисел, так что мне лапшу на уши можете не вешать.
Распинаться перед тем кто выхватывает случайную подстроку из поста и подставляет в шаблон "Простите, но после % говорить дальше не о чем"? Нет уж, спасибо - с вам говорить действительно не о чем.
> Нет, ибо экосистема безнадёжно загублена.Полная пурга от мистера ононизмуса. Какая экосистема, вы о чём, ваше мимозейшество?
Ди - это прежде всего ЯЗЫК, который развивается по нормальным законам софтостроения - вводятся фичи, тестируются, принимается решение брать-не брать. Попутно развивается библиотека. Кому и в каком месте чешется Ди? Язык - превосходный, впитал в себя столько интересных вещей, на которые сипиписники ещё лет 20 облизываться будут. Казалось бы, ни у кого нет "легаси" библиотек на мегабайты Ди-кода, чё всё ноете-то? Напишете код, тогда и возмущайтесь "нестабильностью"! А то выйдут, пёрнут, "а я чо? я ничо - вы уж сами разбирайтесь!" - известный анекдот про тупого кузнеца.У меня был написан прокси-сервер, в котором не сменилось ни строчки кода (благодаря Ди уместился в 500 строк). Мне почему-то развивающийся Ди не мешает. Хотя, может я не учёл плохих танцоров?...
>который развивается по нормальным законам софтостроения - вводятся фичи, тестируются, принимается решение брать-не брать.Нет такой вещи как "нормальные законы софтостроения". Да и между C++ и D в плане подготовки стандарта разницы нету - в C++ точно так же вводились фичи, обкатывались и лишь потом принималось решение брать их или нет. Просто там люди умеют делать это незаметно для пользователей.
>на которые сипиписники ещё лет 20 облизываться будут
Половина есть в C++11 в куда более удачной форме, оставшиеся удачные фичи из D и не только попадут в C++14 и C++17.
> Напишете код, тогда и возмущайтесь "нестабильностью"!
OpenMW уже написали. А потом переписали на плюсы и избавили себя от проблем.
Между разработкой плюсво и D не было разницы, кога Стауструп плюсы в Bell Labs ваял, вноя изменения по собственному опыту и пожеланиям коллег. Сейчас плюсы (которые я, кстати, воплне ценю - но понимаю их грабельность) безнадежно завязли в комитетщине, в результате которой те же концепты, например, так и не были приняты.
> безнадежно завязли в комитетщинеЛол, такие как вы на любые стандарты говорят "Вы что, всех хотите под одну гребенку?". Все мы уже знаем что случается с языками, которые "без комитетщины" меняются целиком по желанию левой пятки.
> в результате которой те же концепты, например, так и не были приняты.
А вы хоть удосужились почитать почему они не были приняты?
Две основные фишки D - отказ от совместимости кода с сями и приличный синтаксис шаблонов - в плюсы не попадут никогда. Нормальный const - тоже. Как и compile-time code execution, alias this, унифицированный синтаксис вызова функций и т.п.
> Две основные фишки D - отказ от совместимости кода с сямиДа, удачи. Пусть от любой совместимости откажутся, а то что-то в вами же указанной репе с безумными легионами D'шных пакетов (http://registry.vibed.org/) почти все - обёртки над библиотеками на пормальных языках.
> и приличный синтаксис шаблонов...
> Нормальный constВот, теперь пошли шаблоны "в D нормальный %s". И не скажешь что не аргументированно :)
Ну да, повнимательнее посмотреть вам было лень. Там вообще-то оберток меньше половины, а те, что есть - к большим штукам вроде OpenSSL, баз данных, LLVM.Ну и если вам const, который ничего не гарантирует - нормален, можете продолжать пользоваться плюсовым.
> Какая экосистема, вы о чём, ваше мимозейшество?Слова коверкать перестань, глупо выглядишь. А экосистема действительно никакая. Нет её, экосистемы-то. Ибо никто понять не может, в какую нишу этот D метит. На сайте очень много сравнений с С++. А вот хрен, не замена он для С++ ни разу. Для той ниши, где С++ до сих пор силён и не собирается сдавать позиции (игры, например), сборщик мусора неприемлем. А в D он в реальности неотключаемый (никто в здравом уме не будет с нуля переписывать всю стандартную библиотеку D). В enterprise сегменте Java во все поля, с тучей уже написанных библиотек на все случаи жизни, ещё и языков для JVM платформы куча, тут тоже D не ждут. Embedded с С слезать не собирается, местами ещё и ASM встречается. В web своих языков охапка, у D по сравнению с ними вообще killer features не видно. Мобилки/планшеты? И тут пролетаем.
Ну вот David Simsha его с успехом применяет для исследований в области генетики - датасеты у него громадные, и джавы всякие с их дикими накладными расзодами на объект неудобны. С другой стороны - у плюсов большие проблемы с приличными абстракциями и высокоуровневыми описаниями. А D в самый раз подошел.Если коротко - то D хорош там, где, одной стороны, нужен приличный высокоуровневый язык, с другой - задолбали родовые проблемы динамики и отсутствия типизации у скриптовых. Веб тоже под это дело подходит, кстати - то, что там традиции другие - вопрос отдельный. Там, вон, PHP выкинуть никак не могут.
> Ну вот David Simsha его с успехом применяет для исследований в области
> генетикиДа-да, не забуду тот феерически пост когда кто-то ему показал как то же делается на C++ - в 2 раза меньше кода, код гораздо понятнее и работает быстрее в полтора раза.
Можно ссыль? Очень интересно.
Ссылочку можно?
Не представляю что можно написать на С++ коротко, а на D нельзя. Что есть в С++, чего нет в D?
вот для web D сейчас в основном и применяется. Все больше компаний подсчитывает, сколько лишних ресурсов потребляется их любимыми рорами и джангами, ужасается, и переходит - кто на node.js, кто на go, кто на vibe.d :)
Скрипты на D: http://dlang.org/rdmd.htmlD хорош скоростью компилирования.
(Помню некоторое разочарование, когда начал писать на C++ под i286/i386. Сливал подчистую Pascal - Pascal компилируется практически мгновенно)
D вполне заменяет PHP, Python, Java, C#, bash & etc и дополняет C++