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

Исходное сообщение
"Выпуск компилятора языка D 2.100"

Отправлено opennews , 07-Июн-22 18:13 
Разработчики языка программирования D представили релиз основного эталонного компилятора DMD 2.100.0, который поддерживает системы GNU/Linux, Windows, macOS и FreeBSD. Код компилятора распространяется под свободной лицензией BSL (Boost Software License)...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=57311


Содержание

Сообщения в этом обсуждении
"Выпуск компилятора языка D 2.100"
Отправлено Герострат , 07-Июн-22 18:13 
Есть кто использует этот язык?

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 18:42 
Александреску вроде как юзал

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 07-Июн-22 19:40 
Есть те, кто использовал и даже любил когда-то, но забил из-за упоротого управления проектом. Моему любимому багу с захватом стековых переменных по ссылке в замыканиях уже 14 лет, а у вечно занятого Уолтера Брайта есть время только на новые фичи типа -betterC, но не на багфиксы. Языку сильно не хватает научной базы, и он стремительно (для его-то темпов развития) движется в братскую могилу, где рано или поздно окажутся все ЯП, которые развивались по принципу "примотаем новую фичу скотчем". То, что есть, часто работает не совсем гладко или вообще реализовано только наполовину. Багов в "stable" компиляторе столько, что я с моим везением и любовью к метапрограммированию напарывался на них стабильно раз в месяц. Для сравнения, в случае горячо нелюбимого здешними экспертами Rust, компилятор у меня не падал ни разу даже на nightly.

Короче, язык крайне неоднозначный. Годные фичи есть, но и мусора хватает. В продакшен я бы на нём побоялся писать.


"Выпуск компилятора языка D 2.100"
Отправлено Vindex , 07-Июн-22 20:58 
Ты про этот?
https://issues.dlang.org/show_bug.cgi?id=2043
У меня в последние несколько недель впечатление, что в сообществе зашевелились решать проблемы

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 08-Июн-22 10:20 
Про этот. Только ты почитай, как закрыли баг - RESOLVED MOVED. То есть, частный случай другого, ещё  не исправленного. Мечтать не вредно же? :)

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 07-Июн-22 21:55 
Но есть кто и в продакшене использует
И чувствует себя хорошо ;)

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 07:50 
А вы используете D в продакшн?
Каким образом?

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 08-Июн-22 10:15 
Есть такие, и я за них рад. Но мне нужна надёжность, т.к. у меня талант напарываться на баги, иногда просто нелепые. Когда-то работал над игрой Jane's Hotel 3 и там у нас компилятор Visual Studio "оптимизировал" цикл отрисовки, и пока я не полез смотреть ассемблерный код, мы с коллегами тщетно пытались понять, как это может быть. Когда нашли причину, помогла вставка в цикл:

int a = 0;

То есть, просто кусок мусорного кода. И вот так у меня постоянно. Может, в тестировщики податься? :)


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 11:02 
> компилятор Visual Studio

Такого компилятора не существует.


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 12:09 
Если бы ты имел опыт работы выше нуля, ты бы не придирался к словам, так как все называют микрософтовский компилятор так

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 12:30 
У вас логическая ошибка. Все не могут быть.

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 08-Июн-22 18:51 
У вас синдром зануды.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 14:07 
А ты спалился что не программист. Так, абизянка с зачатками кодинга.

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 09-Июн-22 17:47 
Ваше авторитетное мнение без единого факта мне так ранило душу, что сейчас же пойду поплачу и напьюсь до беспамятства, а потом начну новую жизнь по заветам опеннетных экспертов, которые лучшие программисты на планете, если верить им на слово.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 19:30 
> Ваше авторитетное мнение без единого факта мне так ранило душу, что сейчас
> же пойду поплачу и напьюсь до беспамятства, а потом начну новую
> жизнь по заветам опеннетных экспертов, которые лучшие программисты на планете, если
> верить им на слово.

Настоящие программисты все же слегка занудны. Специфика профессии такая.


"Выпуск компилятора языка D 2.100"
Отправлено burjui , 09-Июн-22 20:03 
Занудность я терплю без проблем, если человек предоставляет факты и даёт полезные советы. А когда он голословно называет кого-то "абизянкой с зачатками кодинга", остаётся только вполне искренне посочувствовать злому душевнобольному человеку, побитому жизнью, и дальше писать код. Когда-нибудь и он подрастёт, сходит к психотерапевту, попьёт лекарства, вылечит депрессию (или что у него там) и займётся делом, а не хамством на любимом сайтике с новостями. Главное, чтобы не довелось с таким работать над одним проектом до излечения его недуга.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 21:01 
1: это были 2 разых анона
2: первый анон нудил как настоящий программист - даже про логику задвинул

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 10-Июн-22 00:27 
> 1: это были 2 разых анона

Ок.

> 2: первый анон нудил как настоящий программист - даже про логику задвинул

Одно дело - нудить по делу (простите за тавтологию), а другое - просто потому, что сказать по теме нечего, но очень хочется показаться умным, что и смешно, и грустно одновременно.


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 12:08 
> int a = 0;

В релизной версии компилятор это выпиливает. Как это влияет на ассемблерный выхлоп?


"Выпуск компилятора языка D 2.100"
Отправлено n00by , 08-Июн-22 13:07 
Это sequence point, транслятор обязан учитывать. Оптимизатор может "выпилить" результирующий код.

Начиная с какого-то размера тела функции оптимизатор отключался. Возможно, какое-то такое же ограничение было и с циклами.

Может быть, транслятор видел в исходнике совсем не то, что писал человек.

Может он что-то подзабыл. Мы обычно лечили MSVC при помощи __asm nop.


"Выпуск компилятора языка D 2.100"
Отправлено burjui , 08-Июн-22 18:54 
Знаю, что не должно влиять, но влияло: без этого компилятор не генерировал код цикла. Ну баг это.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 12:31 
Это не мусорный код.

"Выпуск компилятора языка D 2.100"
Отправлено n00by , 08-Июн-22 13:15 
> пока я не полез смотреть ассемблерный
> код, мы с коллегами тщетно пытались понять, как это может быть.

.
> И вот так у меня постоянно.
> Может, в тестировщики податься? :)

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


"Выпуск компилятора языка D 2.100"
Отправлено burjui , 08-Июн-22 19:02 
Ну, в той конторе (Realore Studios) это было только один раз. Чаще я напарываюсь на баги в тех программах, которые использую дома, потому что их много, есть время в них разобраться и попытаться выжать максимум возможностей, что и приводит к неожиданным открытиям. А уж основной компилятор D (dmd) я так замучал своим метапрограммированием, что он меня неоднократно ругал сегфолтами и стектрейсами, некоторые из которых уже были в bugzilla, а какие-то пришлось туда вносить самому.

"Выпуск компилятора языка D 2.100"
Отправлено n00by , 09-Июн-22 09:12 
> я напарываюсь на баги в тех программах, которые использую дома, потому
> что их много, есть время в них разобраться и попытаться выжать
> максимум возможностей, что и приводит к неожиданным открытиям.

Потому что разработчики этих программ не подумали, не предусмотрели, что кто-то попробует использовать программу "нестандартным" образом. Вот где неожиданное открытие. :)


"Выпуск компилятора языка D 2.100"
Отправлено burjui , 09-Июн-22 17:45 
Вот потому я и забил на D, что там я использую стандартные документированные функции, прагмы и прочий сахарок, а они не работают так, как должны, фронтенд компилятора багованый, а возможности самого языка слишком часто недоработаны или реализованы некорректно. И это продолжается годами, а чинить ни у кого в core team нет желания. Особенно бесит такое отношение от создателя языка, Уолтера Брайта. Уж если ему пофиг на то, что стандартные возможности языка не работают, а вместо этого он делает новые фичи, которые нужны от силы 10% пользователей, то мне такой язык нафиг не сдался.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 00:23 
Во-первых сдешними, а еще непонятно зачем Ё впихивать, ну и непомерное количество англицизмов, что проще сразу на инглише вшпрехивать да?
Баг - жук, можно перевести на русский (столь не родной по-видимому не носителю языка) как кривая работа программы, косяк, проблема, ошибка программы.
Стек - стопка (набор значений).
Фича - особенность (криво применяется иностранцами с кривыми мозгами как нечто относящееся в добавлению функционала (набора операций)).
Багфиксы - исправление ошибок программы.
Реализовано - сделано.
Stable - устоявшийся.
Компилятор - вычислятор (computation - вычисление, соответственно compilation - вычисление в определенное представление понятное главному вычислителю.
Метапрограммирование - препрограммирование/перепрограммирование (метаболизм - перенесение в обранизме, эмболизм - перенесение в теле (можно перевести как превнесение), метаморфоз - превращение).
Продакшен - производство.

Садись, два.


"Выпуск компилятора языка D 2.100"
Отправлено Георгий , 08-Июн-22 02:18 
Не могу понять, толсто или тонко.

"Выпуск компилятора языка D 2.100"
Отправлено Прохожий , 08-Июн-22 06:41 
Во-первых, "здешними", а не "сдешними", грамотей х-в. Во-вторых, есть профессиональный сленг (жаргон). В-третьих, в русском языке полно заимствованных слов. В-четвёртых, поработай на досуге над знаками препинания. Можешь не вставать. Кол.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 07:59 
В русском языке нет слова "здешними", а есть слово "здешним" во множ. числе.

Садись два!


"Выпуск компилятора языка D 2.100"
Отправлено www2 , 08-Июн-22 08:36 
Неплохо, кое-что возьму на вооружение. Но аналоги слов "компилятор", "метапрограммирование" и "продакшен" не понравилось.

"Компилятор" я перевожу как "сборщик", а для "линкера" использую перевод "компоновщик".

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

Для последнего использую слова "рабочая среда" или "рабочий сервер" в противоположность тестовым и отладочным.


"Выпуск компилятора языка D 2.100"
Отправлено n00by , 08-Июн-22 13:21 
Линкер (редактор связей) собирает или компонует из объектных файлов исполняемый. Он и есть и сборщик, и компоновщик. Транслятор переводит с одного языка (исходного) на другой (целевой).

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 13:25 
- Семён, неси стопки с производства! Я давеча сделал одну особенность, но после пары косяков всё уже не кажется таким устоявшимся...


"Выпуск компилятора языка D 2.100"
Отправлено Vindex , 07-Июн-22 20:49 
Пишу на нём с 2015-го. После C/C++ ощущается как глоток свежего воздуха. На нём легко писать, проекты на нём легко читать и поддерживать

"Выпуск компилятора языка D 2.100"
Отправлено Мохнатый пись , 08-Июн-22 06:24 
Оно и понятно: хеллоу ворлды легко писать и поддерживать.

"Выпуск компилятора языка D 2.100"
Отправлено Vlndex , 08-Июн-22 07:45 
Зато мой хеллоу ворд со зведами на гитхабе и даже хранится где-то в вечной мерзлоте.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 09:02 
Выходит, что вы его выбросили на мороз.

"Выпуск компилятора языка D 2.100"
Отправлено Аристарх , 08-Июн-22 22:53 
В целом про Ди как "свежий С++" вполне согласен. Но вот templates... вот какой УРОД догадался делать это со стандартными скобками?!?!

alias bar = Bar!(Foo)

Ведь очевидно, что круглые скобки - ВЫЗОВ чего-либо. И тода уже не так просто прочитать bar!(foo)(somevar)
Эти скобки Уолтеру надо на башке гвоздём нацарапать - из всех дурацких синтаксисов и скобок он выбрал круглые!! *фэйспалм*


"Выпуск компилятора языка D 2.100"
Отправлено n00by , 09-Июн-22 09:13 
Вы там поосторожнее с оценками. Андрей Александреску - общепризнанный бог метапрограммирования на С++. Вдруг, это он так сделал? ;)

"Выпуск компилятора языка D 2.100"
Отправлено Аристарх , 08-Июн-22 22:48 
Я юзал - для прокси-резальщика рекламы. Ох, сколько же он дерьма отфильтровал!! :)
Но это была консольная прога. Хотелось красивой ГУЙни, которая была бы написана на самом Ди, используя его мощь во весь рост. Такой нет до сих пор.

"Выпуск компилятора языка D 2.100"
Отправлено vdb , 09-Июн-22 14:43 
Tilix — уже гуйня или ещё нет?

"Выпуск компилятора языка D 2.100"
Отправлено Ванёк , 07-Июн-22 18:35 
Нафиг оно надо, если всё тоже самое есть в C++, только качество и выбор компиляторов и средств разработки намного больше, на любой вкус, и под все платформы.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 18:43 
тебе нужно больше книжек читать

"Выпуск компилятора языка D 2.100"
Отправлено Anon24 , 07-Июн-22 18:54 
Если есть Rust :-)

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 19:08 
То тогда и C++ - идеал.

"Выпуск компилятора языка D 2.100"
Отправлено Прохожий , 08-Июн-22 06:43 
Разве что среди мазохистов.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 12:50 
Ну тогда для растаманов даже вид извращения трудно подобрать слёту.

"Выпуск компилятора языка D 2.100"
Отправлено Владимир , 07-Июн-22 22:27 
Раст очень сложный язык ...

"Выпуск компилятора языка D 2.100"
Отправлено Прохожий , 08-Июн-22 06:44 
Довольно простой, если сравнивать с плюсами.

"Выпуск компилятора языка D 2.100"
Отправлено житель планеты Железяка , 08-Июн-22 12:53 
Канешна простой, у нас на нашей планете в него все владеют.

"Выпуск компилятора языка D 2.100"
Отправлено Ф1 , 08-Июн-22 13:20 
D кстати тоже очень сложный язык, вполне в одном ряду с C++ и rust.

"Выпуск компилятора языка D 2.100"
Отправлено Владимир , 07-Июн-22 19:32 
А что на нем пишут, Вань?

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 22:05 
Есть Vala — разумное сочетание производительности Си, высокоуровневости и возможностей для эстетов.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 06:40 
nim?

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 06:55 
В nim акцент на выразительность, а не на скорость.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 12:07 
для общих задач он быстрый, для задач на скорость не пробовал. честно говоря, не представляю, как на нём что-то оптимизировать, взять хотя бы банальную задачу оптимизации цикла

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 13:00 
Неплох, но под гномерами ходит и пока что прибит к glib гвоздями.

"Выпуск компилятора языка D 2.100"
Отправлено vdb , 09-Июн-22 14:45 
Глупо выставлять это недостатком, т. к. vala именно для этого и создавался.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 17:33 
Но с этим, он для этих и останется.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 18:55 
Но зачем? Полезнее было бы возродить д1, д2 ожидаемо не взлетел.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 19:21 
А Dv1 взлетел? И почему если именно его возродить, то взлетит?

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 19:31 
1 не полагался во всём на рантайм, я, конечно, понимаю желание сделать такой язык, но эта ниша уже занята питоном и го.

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 07-Июн-22 21:49 
Дело не в рантайме..
Можно выбирать минимальный рантайм, можно писать свой рантайм, можно вообще без рантайма писать :)
Метапрограммирование одно из лучших

Основные потребители: люди, которые хотят достаточно производительного решения (быстрее Го и тем более питона), и не трогать больше C++ и Rust

У Ди есть много недостатков (а у какого языка их нет?), но есть один самый главный на мой взгляд..
После Ди на других языках писать просто неприятно

Так что будьте аккуратнее!


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 23:37 
> У Ди есть много недостатков (а у какого языка их нет?), но есть один самый главный на мой взгляд..
> После Ди на других языках писать просто неприятно

Пожалуй, не на всё так радужно и не на 100%, но на 90% соглашусь. Очень приятен D. Но малая распространённость... Не нашёл работы с на нём / с ним. А притягивать задачи под инструмент, а не инструмент под задачи - это фу.


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 06:12 
В любой крупной конторе притягивают, а тебе значит фу... А кто ж тогда будет распространять, путан своим указом?

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 19:18 
>а также некоторые библиотеки на C++

В 2.092 добавили же полную поддержку C++ GNU ABI?


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 19:27 
И, кстати, означает ли это, что теперь можно линковаться без всяких обёрток с, например, FLTK? С Qt непонятно, там метакомпиляция.

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 07-Июн-22 22:02 
Самый поддерживаемый вариант - это GtkD
Для Qt5 есть работа. Но она в процессе: https://m.youtube.com/watch?v=TFN5P4eoS_o

FLTKD - библиотека не обновлялась очень давно.
Полной поддержки C++ ABI вроде нет, но улучшали поддержку в одном из релизов.


"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 08-Июн-22 14:27 
>С Qt непонятно, там метакомпиляция.

для Qt сделали решение, достаточная для работы сигналов "метакомпиляция" на родных шаблонах, бесшовно.

выглядит красиво, но пока не пробовал.


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 19:37 
Увы, но D не хайпанул, и на этом для него практически всё закончилось:(

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 07-Июн-22 19:55 
А он и не хайпанёт никогда. Там куча нормальных фич недоделаны, попутно пилятся сомнительные, багованый компилятор, абсолютно ненаучный подход к проектированию языка, маленькое сообщество и крошечная core team. Я на нём больше 10 лет писал. Молодой был, купился на фичи, а теперь мозга немного наросло и стало понятно, что это путь в никуда. В D есть много хорошего, но плохого там не меньше, и никто последнее чинить или не собирается, или не в состоянии.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 21:04 
А что, простить, там хорошего? Я писал на нём полгода, потом не выдержал и переписал проект на плюсах - и вот это действительно был глоток свежего воздуха. Ничего не могу назвать что из D мне бы не хватало. А вот отсутствие спорных вещей только радует.

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 07-Июн-22 21:52 
Люди переходят на Ди только для того, чтобы больше не трогать кресты..

Да для работы (плюсы, го) и современного хайпа (раст) - D не очень подходит

Потому что D - для Dуши


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 07-Июн-22 23:12 
А что вы пишете Dля Dуши?

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 07-Июн-22 23:24 
Все по разному) в телеграмм канале Dlang.ru у ребят много разных примеров

Про себя использую D для:
* задачки на CodeForces
* надо было быстренько написать обработчик 100 гигабайт JSON файлов спарсенных с сайта (пригодился parallel и быстрый парсер)
* библиотека для Python со стат расчетами (в процессе)

В планах ещё (где бы время только взять):
* игра для себя (пока правда не знаю что проще сделать wasm или godot)
* CLI для удобного поиска реп на гитхабе
* телеграмм бот, но там видимо проще питоновский взять. Они API как грибы выпускают


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 07:47 
Короче питон но не питон, крутой язык...

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 08-Июн-22 10:21 
Каждый использует язык как ему удобнее)
в DS - питон основной язык, но бывает надо ускорять. И тогда либо всякие cython, numba - а можно взять приятный Ди)
Хорошо, что есть люди, которые пишут библиотеки на крестах. Спасибо им - можно другим психику не ломать)

"Выпуск компилятора языка D 2.100"
Отправлено gaal , 08-Июн-22 17:22 
когда-то посматривал на D ... и перешел на Go. да и C++ сделал прогресс за столько лет

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 07:49 
То есть вы не написали ни одной законченной программы и у вас много планов для души? Но у ребят на канале много примеров...

Здорово что вы смогли написать замену конвейеру с find, jq и grep, не все же задачки на CodeForces решать.


"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 08-Июн-22 10:24 
Задачки на CF - класс)
Там внутри логика была с построением графа и связей среди этих файлов.
Я не исключаю, что через никсовые команды можно было, но слушайте AoC одни и те же задачи решаются на куче языков - каждому на каком удобнее и приятнее это делать)
Решить эту задачку на Ди - было норм, а лезть в grep и find не очень :) кому-то наверняка было бы наоборот

"Выпуск компилятора языка D 2.100"
Отправлено Аристарх , 08-Июн-22 23:03 
Дурочог, какие проекты ты хочешь? Ворд? Оперу? ОС?
Люди что могут - то и пишут. Есть мириад МАЛЕНЬКИЙХ проектов, каждый из которых - составная часть других. Если на Ди даже калькулятор написать - и то дело будет. И совершенно пофигу, что есть ещё тысяча калькуляторов - программы пишутся, чтобы стать лучше существующих. Чем твой дурацкий find может быть лучше специализированного инструмента???

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 08:11 
> библиотека для Python со стат расчетами (в процессе)...
> телеграмм бот, но там видимо проще питоновский взять...

Чё-то очень слабоощутимо криптовалютными ботами/оракулами пахнуло :) . Там вроде уже немало ботов на питоне.


"Выпуск компилятора языка D 2.100"
Отправлено burjui , 08-Июн-22 10:20 
Шаблоны и метапрограммирование там хороши. Впрочем, этого недостаточно, чтобы остаться на нём.

"Выпуск компилятора языка D 2.100"
Отправлено Аристарх , 08-Июн-22 22:57 
Если ты после плюсов не увидел в Ди ничего хорошего - извини, значит ты или тупой, или писал на каком-то Зю - самого Ди ты и в глаза не видел. Ди на голову превосходит все твои крестики.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 10:13 
> багованый компилятор

Который из трёх?
> ненаучный подход к проектированию языка

Каковы научные критерии?


"Выпуск компилятора языка D 2.100"
Отправлено burjui , 08-Июн-22 19:17 
Все, т.к. у них общий фронтенд. Что до критериев, достаточно посмотреть на систему типов и как с ней интегрированы такие фичи, как shared, который скорее мешает, чем работает. Точнее сказать сложно, я не эксперт в теории типов и прочей computer science, но разница между D и тем же Rust в этом плане разительная и не в пользу первого. Про Haskell я вообще молчу - вот где научный подход во всей красе.

"Выпуск компилятора языка D 2.100"
Отправлено Аристарх , 08-Июн-22 23:04 
Хацкел - вон он как раз СЛИШКОМ научен! Настолько, что ни один РЕАЛЬНЫЙ погромизд не будет на нём писать. Хацкел только и хорош, что "фибаначи в одну строку" карябать.

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 09-Июн-22 10:05 
Haskell хорош как плацдарм для отработки научных основ программирования. Никто не заставляет на нём писать крупные проекты.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 19:34 
> Хацкел - вон он как раз СЛИШКОМ научен! Настолько, что ни один
> РЕАЛЬНЫЙ погромизд не будет на нём писать. Хацкел только и хорош,
> что "фибаначи в одну строку" карябать.

Некто на нем написал даже архиватор с кучей алгоритмов. Но получилось настолько заумно и математично что после выкладывания в опенсорс только автор в этом и копался. И радости с такого опенсорса?


"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 08-Июн-22 14:25 
>багованый компилятор

да ладно


"Выпуск компилятора языка D 2.100"
Отправлено burjui , 08-Июн-22 19:10 
На этот баг, мой "любимый", я напарывался неоднократно:
https://issues.dlang.org/show_bug.cgi?id=2043

Этот вылез в моих попытках метапрограммирования:
https://issues.dlang.org/show_bug.cgi?id=17974

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


"Выпуск компилятора языка D 2.100"
Отправлено Аристарх , 08-Июн-22 23:15 
Я не совсем понимаю полезность завязываться в функции на внешнюю ИТЕРАЦИОННУЮ переменную! Это цикл, где переменная цикла - временное явление, причём с undefined величиной по окончании цикла. Пример явно искусственный, есть какой-то реальный пример, где прям вот нужно именно переменную цикла?

"Выпуск компилятора языка D 2.100"
Отправлено n00by , 09-Июн-22 09:23 
Я не совсем понимаю полезность завязываться в цикле на любой счётчик. Если его значение не используется за пределами цикла, м.б. оно вообще не нужно?

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 09-Июн-22 17:37 
Да хрен с ним, со счётчиком. Баг касается любой переменной, которую захватывает замыкание - не важно, в цикле или нет. В D нельзя сказать "захвати по значению", он всегда захватывает по ссылке, даже если переменная стековая. Это же бред, ведь GC в язык засунули именно для того, чтобы сделать работу с памятью безопасной, а тут такой косяк на ровном месте, который в любом другом языке с GC не существует, потому что там или копируют захваченные переменные, или они все изначально выделяются в куче, поэтому проблем с обращением нет. А в нелюбимом мной, по другим причинам, C++ вообще можно указывать, как захватывать переменную. А в D ты 14 лет ждёшь, пока поправят очевидный баг. Вот тебе и "безопасная" работа с памятью: GC есть, а толку нет.

"Выпуск компилятора языка D 2.100"
Отправлено n00by , 09-Июн-22 18:56 
Это больше похоже на ошибку дизайна, если я правильно уловил суть. Показалось, что можно усидеть на двух стульях. Теперь надо принять кардинальное решение, отказаться от стека. Ну или ещё подождать, может найдётся простое и красивое решение.))

"Выпуск компилятора языка D 2.100"
Отправлено burjui , 09-Июн-22 19:50 
Решение найдётся, как только Уолтер займётся этим. Будет ли это решение оптимальным или даже хорошим - загадка. Но я буду ждать, так сказать, в фоновом процессе с наименьшим приоритетом. А пока все мои задачи решает Rust без всякого GC.

"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 11-Июн-22 08:59 
ну, "забагованность", это всё-таки "многолетнее игнорирование очевидных косяков".

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


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 01:29 
Ну, почему же не хайпанул? Очень даже. Вот только компилятор не опенсурсный был на пике хайпа, да чехарда с версиями, а это чуть питон не убило.

"Выпуск компилятора языка D 2.100"
Отправлено Ф1 , 08-Июн-22 13:24 
>Увы, но D не хайпанул, и на этом для него практически всё закончилось:(

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


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 09:26 
А есть же языки: A, B, E, F?

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 10:43 
F# есть, если нужно: https://fsharp.org/

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 08-Июн-22 10:59 
A - APL если
B K&R разработали перед Си

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 13:01 
Про  В слышал что-то краем уха.  Вот выучу языка A,B,C,D,E,F сдам на права этих же категорий и пойму что потратил жизнь на ерунду.  

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 13:03 
Нашел. Ну все, мир держись! Буду учить! А главное выкладывать на гитхаб результаты.
https://en.wikipedia.org/wiki/List_of_programming_languages

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 14:22 
Если C овладел, то сразу дают категорию M =)

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 12:02 
Всё ждал, как они выпилят сборщик мусора из стандартной библиотеки, так и забил

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 08-Июн-22 13:56 
Не всегда всё быстро происходит - это верно..
Несмотря на то, что в браузерах GC нужны со спецификацией тоже пока не задалось сходу..
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p21...

Может потом додумают - как лучше это можно вставить :)


"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 08-Июн-22 14:23 
>Всё ждал, как они выпилят сборщик мусора из стандартной библиотеки, так и забил

а зачем?

D хорош тем, что на нём пишется со скоростью, не меньшей Питоновской. И ладненько, остальное неважно, -- забить.


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 20:36 
Затем, что если мне нужен GC, я на сишарпе напишу спокойно

"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 11-Июн-22 09:27 
... и притащу 200 Мб рантайм. А так, ну да.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 19:38 
> а зачем?

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

> D хорош тем, что на нём пишется со скоростью, не меньшей Питоновской.
> И ладненько, остальное неважно, -- забить.

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


"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 11-Июн-22 09:01 
непредсказуемость производительности сильно преувеличена.
да и движение в сторону @nogc имеет место, так-сказать, быть :)

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 14:24 
>  foo(ia.tupleof); // аналог foo(1, 2, 3);

А почему бы не сделать например передачу параметров именованную и закончить с этим дрочевом позиционных параметров?

Если честно надоело помнить где там что в какой нотации вот до сих пор не помню куда чего в `memset` или `strtok` пихать.

В этом плане `"a,b,c".split(separator=",", max_count=2)` гораздо удобнее.


"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 08-Июн-22 14:40 
Ждут пока свой PR закинешь :)

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 15:08 
Ну тут нужно свой язык делать тогда сразу что бы не связываться с непонятными людьми,
а на это нужно время, деньги и желаание, а так то совет сказать и желание высказать это
не тоже самое.

Помню в универе писал какую-то лабудень Си- подобную, но дальше чем прототип и рисующий на OpenGL шары формулы химической на защите дальше не пошло...


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 08-Июн-22 15:04 
А ну и конечно нужны структуры данных в стандартной библиотеке: списки, графы, деревья и алгоритмы к ним, а так же пакетный менеджер зависимостей и C ABI в обе стороны и это будет в целом залог успеха нового языка... А да еще нужна нормальная библиотека для построенрия GUI-ни и HTTP/WSS серверов и бует просто пушка =)

"Выпуск компилятора языка D 2.100"
Отправлено анонимчик , 09-Июн-22 09:25 
А чем он лучше swift? (ничем)

"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 11-Июн-22 09:26 
Swift под Windows или Linux — технически возможное, но неудобное и неполноценное решение.
((C) ) https://blog.skillfactory.ru/glossary/swift/

"Выпуск компилятора языка D 2.100"
Отправлено анонимчик , 11-Июн-22 20:41 
> Swift под Windows или Linux — технически возможное, но неудобное и неполноценное
> решение.
> ((C) ) https://blog.skillfactory.ru/glossary/swift/

проблемы переносимости - временные. я о самом языке (синтаксис, стандартная библиотека, инструменты).


"Выпуск компилятора языка D 2.100"
Отправлено abu , 09-Июн-22 09:47 
Хороший язык. Использую его в своем пет-проекте.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 15:52 
что такое пет-проект?

"Выпуск компилятора языка D 2.100"
Отправлено tmplsr , 10-Июн-22 10:52 
>что такое пет-проект?

https://blog.skillfactory.ru/chto-takoe-pet-proekty-i-zachem.../

https://habr.com/en/company/getmatch/blog/527590/


"Выпуск компилятора языка D 2.100"
Отправлено abu , 12-Июн-22 14:13 
Просто проект-игрушка. Нравится программировать долгими зимними вечерами, теперь и не на С++.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 17:34 
Приятный язык. Хорошо, что жив.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 09-Июн-22 19:00 
Язык в целом хорош. Но не доведён до ума. Так и не появилось внятного GUI (а-ля Qt). Биндинги выглядят как попытка сделать из мыши ежа. По книжке Александреску вообще всё гладко. Когда начинаешь прогать сам, натыкаешься на всякие нелепости, типа захвата в лямбда только по ссылке (о чём burjui упоминал выше). Попытка обсудить это в сообществе, сводится к тому, что "сам дурак, не умеешь пользовать D". Ещё было пару аналогичных моментов, которые отталкивают. Лет 7 назад написал на нём аналог make для собственных проектов с полным отслеживанием зависимостей, параллельной компиляцией (получилось 2 файла на языке D по паре сотен строк). Но для чего-то более серьезного использовать просто побоялся. В этом плане C++ с его новыми стандартами 11,14, 17 мне нравится больше.

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 10-Июн-22 10:10 
>[оверквотинг удален]
> появилось внятного GUI (а-ля Qt). Биндинги выглядят как попытка сделать из
> мыши ежа. По книжке Александреску вообще всё гладко. Когда начинаешь прогать
> сам, натыкаешься на всякие нелепости, типа захвата в лямбда только по
> ссылке (о чём burjui упоминал выше). Попытка обсудить это в сообществе,
> сводится к тому, что "сам дурак, не умеешь пользовать D". Ещё
> было пару аналогичных моментов, которые отталкивают. Лет 7 назад написал на
> нём аналог make для собственных проектов с полным отслеживанием зависимостей, параллельной
> компиляцией (получилось 2 файла на языке D по паре сотен строк).
> Но для чего-то более серьезного использовать просто побоялся. В этом плане
> C++ с его новыми стандартами 11,14, 17 мне нравится больше.

А вот какой вы могли бы предложить приятный компилируемый язык? C++ — страшен (для меня). C — слишком низкоуровневый для типичных задач. Go — я попробовал: что-либо более дебильное трудно придумать.


"Выпуск компилятора языка D 2.100"
Отправлено Cooler , 10-Июн-22 11:09 
Тут зависит от задачи, для чего вы собираетесь использовать этот язык. Нужен ли GUI, нужна ли удобная IDE? Собираетесь программировать только для заработка (тогда нужно выбирать по вакансиям)?. Для меня С++ наиболее универсальный язык. Если начал что-то делать на нём, то можно быть уверенным, что не упрешься в какое-либо ограничение самого языка. Плюс самый широкий спектр библиотек. Не понимаю тех, кто противопоставляет C и C++. Второй является расширением первого. Но на самом деле, за вас выбор никто не сделает. Надо набраться опыта, чтобы сделать осознанный выбор. Для этого надо потыкаться в разные языки и разные предметные области. Проникнуться основными концепциями (функциональное программирование, ООП, метапрограммирование, сети, WEB, Windows, Linux и т.д.). При такой постановке вполне можно начать и с D. Rust - высокий порог вхождения. Тут надо просто пробовать (как вы уже попробовали Go).

"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 10-Июн-22 11:23 
>[оверквотинг удален]
> Если начал что-то делать на нём, то можно быть уверенным, что
> не упрешься в какое-либо ограничение самого языка. Плюс самый широкий спектр
> библиотек. Не понимаю тех, кто противопоставляет C и C++. Второй является
> расширением первого. Но на самом деле, за вас выбор никто не
> сделает. Надо набраться опыта, чтобы сделать осознанный выбор. Для этого надо
> потыкаться в разные языки и разные предметные области. Проникнуться основными концепциями
> (функциональное программирование, ООП, метапрограммирование, сети, WEB, Windows, Linux
> и т.д.). При такой постановке вполне можно начать и с D.
> Rust - высокий порог вхождения. Тут надо просто пробовать (как вы
> уже попробовали Go).

Для работы, понятно, нужно брать искать из популярного. Я имел ввиду выбор приятного языка для себя, что бы писать и наслаждаться. У меня сейчас в качестве такого — Raku, язык просто круть. Но он скриптовой, что-то очень быстрое на нём не попишешь. Но это я просто разглагольствую, вашу позицию я уже понял :)


"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 11-Июн-22 09:24 
> Попытка обсудить это в сообществе, сводится к тому, что "сам дурак, не умеешь пользовать D"

не замечал, общение в .learn не кажется агрессивным.

>Но для чего-то более серьезного использовать просто побоялся.

Ну да. Необходимость привязок и дефицит библиотек...

>В этом плане C++ с его новыми стандартами 11,14, 17 мне нравится больше.

сколько нужно времени, чтобы написать одно и то же (просто алгоритм, не будем касаться доступности библиотек) на c++17 и D?


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 13-Июн-22 09:30 
Писать и наслаждаться: Rust, Haskell. Для меня в данный момент, естественно. Раньше был фанатом C++, Go тоже очень нравился, но отказался от него по довольно забавной причине: общий культурный и профессиональный уровень коллег-гошников оказался существенно ниже того, к которому я привык.

"Выпуск компилятора языка D 2.100"
Отправлено glebiao , 14-Июн-22 09:09 
дык ответа на вопрос не дано.
сколько надо времени?!

если хочется, можно включить в сравнение и Раст (но не Хаскел)

для примера (не совсем честно, использована внешняя библиотека, но это тоже иллюстрация -- как можно писать за счёт средств языка):
import iopipe.textpipe;
import iopipe.zip;
import iopipe.bufpipe;
import std.io;
import std.typecons;

// open a zipfile, decompress it, detect the text encoding inside, and process
// lines that contain "foo"
void main(string[] args)
{
    File(args[1])               // open a file
         .refCounted            // File can't be copied
         .bufd                  // buffer it
         .unzip                 // decompress it
         .runEncoded!((input) { // detect the text encoding and process it.
           import std.algorithm: filter, canFind;
           import std.stdio: writeln;
           foreach(line; input.byLineRange!false.filter!(a => canFind(a, "foo")))
               writeln("this line contains foo: ", line);
         });
}


"Выпуск компилятора языка D 2.100"
Отправлено Аноним , 10-Июн-22 21:31 
Язык занятный, но постоянно было ощущение - что-то с ним не так. Потом, когда попёрли малинки, апельсинки, и прочие армы, для которых dmd ещё не мог и не умел, пришлось оставить его в покое.
А потом дошло, отчего всё не так: D придумали упоротые плюсовики.

"Выпуск компилятора языка D 2.100"
Отправлено Hck3r , 10-Июн-22 23:18 
А где всё хорошо?