LINUX.ORG.RU

Язык D включен в коллекцию компиляторов GNU (gcc 9)

 


3

8

GCC 9.1 будет первым стабильным релизом с поддержкой GDC.

Его выход ожидается приблизительно в конце первого квартала 2019 г.

Код для поддержки GDC включает библиотеку libphobos (D run-time library) и фреймворк для тестов D2.

Поддержка D потребовала внесения изменений в приблизительно 1 миллион строк кода.

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



Проверено: jollheef ()
Последнее исправление: maxcom (всего исправлений: 2)

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

на максимальную эффективность в рантайме

что, при чём тут фортран^Wси?

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

Вы не любите кошек?! Да вы их готовить не умеете!

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

Ну а насчет разработчиков - разработчик на джаве или плюсист или сишник начнут писать на Ди в течении рабочего дня.

1. Т.е. разработчиков, таки, нет, но ты не видишь в этом проблемы.

2. Жавист на D даже не посмотрит, его и на Java не плохо кормят. Захочется разнообразия - есть Kotlin.

Я делаю вывод, что ты понятия не имеешь про организацию разработки в команде. Эффект Да́ннинга — Крю́гера + крайняя степень упертости?

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

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

И где здесь упрощение, уменьшение гибкости и эффективности? final означает что метод не виртуальный. Т.е. обращение к этому методу идет напрямую без vtable. Твое утверждение полностью ложное.

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

Зачем эти возможности в языке, заточенном на максимальную эффективность в рантайме? @#$@#^%$ мать вашу, нужны вам GC и рефлексия — пичешите на жаву.

При чем здесь рантайм? Я веду речь о рефлексии времени компиляции. Прибереги мать твою.

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

Я делаю вывод, что ты понятия не имеешь про организацию разработки в команде. Эффект Да́ннинга — Крю́гера + крайняя степень упертости?

Я делаю вывод что ты неадекватен. Вот ты честно скажи, ты пробовал набрать команду для работы над проектом на основе D?

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

Т.е. обращение к этому методу идет напрямую без vtable.

В том посте, на который я отвечал, утверждалось обратное.

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

Где это было явно сказано в том твоём посте, на который я отвечал? Или ты думаешь, здесь телепаты собрались?

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

Где это было явно сказано в том твоём посте, на который я отвечал? Или ты думаешь, здесь телепаты собрались?

А где было явно сказано в моем посте, на который ты отвечал, что это рефлексия времени исполнения?

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

Рефлексия почти всегда и почти везде подразумевается времени исполнения. А в compile time у нормальных людей макросы, в которых не просто рефлексия, а полноценная работа с AST.

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

Вот когда D сможет без GC полноценно все свои особенности поддерживать, тогда и приходите с «капцом».

Ну этого не будет никогда. У него часть фич изначально используют гц. Ну и все эти «капцы» и «убийцы» это же из области детских фантазий «юных дарований» и влажных мечт маркетологов. Тут недавно на форуме D кстати, люди обсуждали Cobol и что спрос на западе на спецов по нему есть до сих пор, и что зарплаты у них выше чем по рынку. Потому что куча кода на нем до сих пор написана и используется.

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

Это и в C++ с constexpr можно. Особенно начиная с C++17.

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

Ты сам или наняли jun'а неудачника, который занимается тупым переписыванием с D на C++ и, потому, дольше полугода не задерживается на таком перспективном проекте.

Мне нравится твой подход - взял, сам за меня все придумал и потом меня же и раскритиковал. Прямо сразу видно мудрого человека.

Вот вакансия смысл которой с учетом данного топика в том, что нужен неудачник, который будет в том числе переписывать код с D на C++. C++/D младший разработчик/стажер (СПб) Так что это ты сам все придумал, а теперь лжешь, что я.

Перенос я делаю сам

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

как джун да еще неудачник может это сделать я не представляю

Чуть выше ты утверждал, что плюсовик в течение рабочего дня начнет писать на D. А тут оказывается, что читать D и переписывать на C++ необычайно сложно.

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

D замечательный язык, писать на нем можно под любую платформу, но есть нюанс, на нужной платформе нет нужного компилятора, поэтому один из вариантов придумать свой DSL как прослойку для C++.

Почему-то самый удобный вариант - писать сразу на C++ ты упорно отрицаешь. Фанатик?

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

Рефлексия почти всегда и почти везде подразумевается времени исполнения.

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

А в compile time у нормальных людей макросы, в которых не просто рефлексия, а полноценная работа с AST.

Ну вот Уолтер Брайт (автор языка), кстати, против AST макросов, так как считает что это дает слишком много свободы и может привести к негативным последствия. Но и без AST макросов в D просто широчайшие возможности. Я когда портирую код из D в плюсы так порой плакать хочется. Тот же `enable_if` - ну что это?

template<class T>
typename std::enable_if<std::is_floating_point<T>::value, T>::type
    foo1(T t)
{
    std::cout << "foo1: float\n";
    return t;
}
тот же код на D:
auto foo1(T)(T t) if (isFloatingPoint!T)
{
    writeln("foo1: float");
    return t;
}
где проще разобраться? А если условие сложнее?

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

Go писали с чисто практической целью, как более быструю замену Python для задач, которые есть в Google.

У меня здесь правило: не вступать в полемику с анонимами. Иногда его нарушаю и практически всегда жалею. Вот как в данном случае.

Ознакомьтесь с причинами создания Go сперва. Он появился от нежелания пользоваться C++ и Java в первую очередь.

Ну и если хотите продолжать общение, то зарегистрируйтесь. За каждым регистрантом хоть какая-то история (не)вменяемости сохраняется. А за анонимом может скрываться очередной царь.

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

Ну вот Уолтер Брайт (автор языка), кстати, против AST макросов, так как считает что это дает слишком много свободы и может привести к негативным последствия.

Ещё один аргумент против изучения языка: его автор оказывается дурак. Давайте запретим ещё и классы, они дают слишком много свободы, потом функции, тоже слишком много свободы, и так далее. Под конец людей запретим, у них слишком много свободы. Слава роботам!

А кошмарный код можно написать на любом языке.

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

Я делаю вывод что ты неадекватен.

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

Вот ты честно скажи, ты пробовал набрать команду для работы над проектом на основе D?

Конечно, нет. По моему мнению D не подходит для промышленной разработки.

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

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

@#$@#^%$ мать вашу, нужны вам GC и рефлексия — пичешите на жаву.

Расскажите это разработчикам Kotlin/Native. Они явно что-то не то делают, судя по вашим словам.

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

Kotlin - это жава на стероидах. Во что они его компиляют — ортогонально; внутри бинарника останется и GC, и рефлексия, и тормоза по сравнению с плюсами.

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

где проще разобраться? А если условие сложнее?

В C++20 всё будет зашибись. Он наступит скоро, надо только подождать.

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

Вот вакансия смысл которой с учетом данного топика в том, что нужен неудачник, который будет в том числе переписывать код с D на C++. C++/D младший разработчик/стажер (СПб) Так что это ты сам все придумал, а теперь лжешь, что я.

Забавно, что человек, который устроился на эту позицию даже строчки не написал на D. Так что продолжай фантазировать.

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

Ну вот как комментировать фантазии и домыслы постороннего человека?

Чуть выше ты утверждал, что плюсовик в течение рабочего дня начнет писать на D. А тут оказывается, что читать D и переписывать на C++ необычайно сложно.

Так потому что имеется в виду, что этот плюсовик уже специалист, а не джун. Или ты как раз и есть тот неадекватный анонимус, который ни разу не сталкивался в жизни с D, но считает его неподходящим для него языком по принципу «Не читал, но осуждаю?»

D замечательный язык, писать на нем можно под любую платформу, но есть нюанс, на нужной платформе нет нужного компилятора, поэтому один из вариантов придумать свой DSL как прослойку для C++.

На D действительно можно писать под любую платформу, которая поддерживается llvm и gcc. Более того, целевая платформа для нашего продукта - amd64 и компиляторов для D на этой платформе целых три. Так что тут ты опять мимо. Ты реально неадекватный. DSL не для возможности использования D, я уже его использую, а для решения задач кастомизации продукта и более широкого привлечения к разработке и тестированию продукта специалистов предметной области.

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

C++ в этом плане, к сожалению, зашибись не будет никогда.

У java например очень простой синтаксис, поэтому к ней парсер не проблема написать. И таковой парсер уже написан, с прекрасным API: JavaParser.org. Даже в отсутствии метапрограммирования (т.е. до того как я познакомился с lombok) я мог с его помошью парсить/трансформировать исходники.

У скалы на порядок сложнее AST, поэтому там написание макросов было чистейшей головной болью. Я знаю, что сейчас они движутся в сторону движка для макросов, изолированного от внутренних структур компилятора, но что там и как я без понятия, я щас на ней не пишу.

А у плюсов синтаксис вообще чудовищный. Контекстно-зависимая грамматика. Всё настолько хреново, что даже у IDE вся надежда на language server protocol. Как в таких условиях можно сделать нормальное метапрограммирование - я чёт хз. А все эти constexpr — вообще ни о чём.

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

Ещё один аргумент против изучения языка

Я тебя немного разочарую. Никто тут и не убеждает именно тебя что ты должен изучать тот или иной язык. Не хочешь - не изучай. Не нужно тебе это - не делай. Все просто. Но есть еще и другие люди кроме тебя, не забывай это. И им вполне может быть полезным познакомиться с тем, что предлагает D. С той же рефлексией времени компиляции, которая по своей сути очень мощный инструмент. И я не удивлюсь кстати, если ты ни строчки не написал с помощью AST макросов о которых так возвышенно говоришь. В отличии от меня, у которого половина кода если не больше использует кодогенерацию на основе рефлексии и я оочень хорошо представляю о чем веду речь.

А кошмарный код можно написать на любом языке.

здесь ты правду говоришь

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

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

Пальцы веером, сопли пузырём.

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

Наверняка там есть старые пакеты которые не соберутся, если вы про это. Но это проблема разработчика пакета, а не языка и экосистемы

Нет. Это проблема языка.

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

2. Жавист на D даже не посмотрит, его и на Java не плохо кормят. Захочется разнообразия - есть Kotlin

Посмотрит, если увидит пользу или интересные для себя идеи. Я в основном программирую на Java, но это не мешает мне изучать и что-то не относящееся к Java. Например, начал изучать Go из одного любопытства, но теперь вижу, что он близок к тому, чтобы стать одним из основных языков, и мне пригодится.

Тех, кто изучает только то что их кормит, я считаю не программистами, а быдлокодерами. Видел таких и на C++ и на Java. Язык знают хорошо, каждая строчка правильная. Всё вместе -чушь, потому что делают не то, что на самом деле нужно.

Но бывает, что начинающий плохой программист накидывается на маргиналтный язык в иллюзии, что он чудесным образом позволит писать хорошие программы. Моду на Kotlin я этим и объясняю. Переходить с Java на Kotlin или хотя бы ограниченно использовать Kotlin наряду с Java однозначно не буду.

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

У rust есть спецификация и сторонние реализации как у D?

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

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

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

Так ты действительно неадекватен. См. ниже.

Конечно, нет. По моему мнению D не подходит для промышленной разработки.

Ну так о чем тогда речь ведешь? Т.е ты ни разу не пытался набрать команду для большого проекта на D, потому что считаешь что не получится и поэтому здесь пишешь что D не подходит для больших проектов? Ты еще сомневаешься в своей неадекватности?

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

Нет, я не набирал свою команду. Но я участвую в проектах на D, где люди работают над общим кодом.

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

Забавно, что человек, который устроился на эту позицию даже строчки не написал на D.

Т.е. идея нанять задрота для переписывания твоего D кода на C++ была твоей и ее даже реализовали. Нормальная практика промышленной разработки на D.

Забавно, что человек, который устроился на эту позицию даже строчки не написал на D.

А ты уже все сказал: человека нашли, он, похоже, долго не проработал на такой перспективной должности. А так как «человек» единственное число, то другого либо не искали, либо не смогли найти.

Ты реально неадекватный.

Ты пишешь на языке, для которого нет подходящего компилятора под production платформу. Для переписывания прототипа с D на C++ ты изначально планировал использовать кого-то другого, когда не срослось - стал делать это сам (вручную компилировать с D на C++). И все это вместо использования C++. При этом рассказываешь какой D замечательный и как его (в теории) можно использовать повсеместно, хотя (в реальности) сам не можешь использовать на своей платформе.

Ну и кто тут неадекват?

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

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

Хотя почему бы и нет... Мы ж внутри компилятора, значит AST у нас уже есть.

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

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

Пальцы веером, сопли пузырём

Значит я прав. Слив засчитан.

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

Т.е. идея нанять задрота для переписывания твоего D кода на C++ была твоей и ее даже реализовали. Нормальная практика промышленной разработки на D.

Ты реально неадекватный)) Я тебе еще раз пишу - этот человек ни строчки не написал на D. Ты читать умеешь?

А ты уже все сказал: человека нашли, он, похоже, долго не проработал на такой перспективной должности. А так как «человек» единственное число, то другого либо не искали, либо не смогли найти.

Этот человек с D вообще никак не пересекался, эта вакансия по своей сути вообще не имеет никакого отношения к D и его включению в gcc 9.1. Успокойся уже)

Ты пишешь на языке, для которого нет подходящего компилятора под production платформу. Для переписывания прототипа с D на C++ ты изначально планировал использовать кого-то другого, когда не срослось - стал делать это сам (вручную компилировать с D на C++). И все это вместо использования C++. При этом рассказываешь какой D замечательный и как его (в теории) можно использовать повсеместно, хотя (в реальности) сам не можешь использовать на своей платформе.

Ахах. Ты реально неадекватный. Уже без знака вопроса. Я тебе пишу черным по белому на русском языке, которым как я вижу ты в некоторой степени владеешь. Наша платформа старый добрый amd64 - как я понимаю, ты не в курсе что это за платформа?)) Это как минимум одна из самых распространенных платформ в мире и для нее у D есть 3 (для тебя специально прописью - три) компилятора есть. Что значит вручную компилировать с D на С++? Ты такую ересь несешь, что ее даже комментировать не стоит.

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

Значит я прав. Слив засчитан.

Вся суть yetanother'а. Доказать, что он прав! А если не получается, объявить неадекватом!!!

Давай, приходи еще. Расскажи какой D замечательный, и пофиг, что под целевую платформу нет компилятора, поэтому приходится компилировать вручную с D на C++.

Расскажи еще для полноты картины, где ты работаешь: госконтора или ВУЗ. Вряд ли в коммерческой, там за твой подход быстро получишь пинка под зад.

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

Давай, приходи еще. Расскажи какой D замечательный, и пофиг, что под целевую платформу нет компилятора, поэтому приходится компилировать вручную с D на C++.

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

yetanother ★★
()
Ответ на: tour.dlang.org от Buggins

Cool Reader на D

Будет ли?

EXL ★★★★★
()

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

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

adt в D есть?

Тут я не уверен что ты именно имеешь в виду. Если ты имеешь в виду алгебраические типы то на уровне библиотек они есть, в языке явной поддержки нет. Но если мне не изменяет память ты и сам изучал D до того как определился с выбором и переходом на Rust. В этом контексте паттерн-матчинг в Rust'е привлекательнее, да.

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

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

Я тебе сразу написал, что пустая болтовня и теория меня не интересует. А на практике ты сам не пользуешься ни одним из этих компиляторов потому что не можешь. Так что в теории есть, а на практике нет (поэтому я и утверждаю, что D клевая тема для болтовни, как и сиськи Саши Грей, они есть, но недоступны, зато можно поболтать). И из-за практического отсутствия компилятора, ты вручную переносишь код из D в C++ (ручная компиляция) и именно для этого ты и пытался нанять стажера/jun'а, и именно поэтому в вакансии указан язык D, хоть ты и утверждаешь, что

эта вакансия по своей сути вообще не имеет никакого отношения к D

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

При этом ты так и не ответил на вопрос, где работаешь. Наверняка не в коммерческой компании.

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

P.P.S. Уверен, что ты и дальше будешь бычить и пытаться мне доказать, что «ты прав». Но никаких слов, кроме «ты неадекват» и «ты сливаешься» сказать уже не сможешь.

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

Для промышленной разработки он не подходит.

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

Изучал - это сильно сказано. Как минимум сейчас я не вижу причин использовать его вместо Rust.

Какие у D есть киллер-фичи, по сравнению с rust? GC игнорируем.

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

Я знаю о существовании проекта, но не вникал в детали, ибо не нужно. Очень маловероятно, что один человек накатал аналог Qt.

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

Спецификация - описание по которому можно реализовать сторонний компилятор. Если у языка нет сторонних реализаций, то это уже говорит о том, что он мало кому нужен.

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