The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск компилятора языка D 2.100

07.06.2022 18:10

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

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

Среди изменений в новом выпуске:

  • Прекращена поддержка старого стиля перегрузки операторов, используемого в ветке D1. На смену opNeg, opAdd_r, opAddAssign и т.п. пришли opUnary, opBinary, opBinaryRight и opOpAssign. Старый стиль перегрузки операторов был объявлен устаревшим в 2019 году и начиная с выпуска 2.100 будет приводить к выводу ошибки.
  • Прекращена поддержка ключевого слова delete, объявленного устаревшим, начиная с 2018 года. Вместо delete следует использовать функцию destroy или core.memory.__delete.
  • Реализован новый атрибут @mustuse, который может быть применён к типам struct и union в качестве альтернативного метода обработки ошибок, когда в коде невозможно использовать исключения (например, в блоках @nogc). Если помеченное атрибутом @mustuse выражение не используется в коде, компилятор выведет ошибку.
  • Для статических массивов разрешено применение свойства ".tupleof" для получения последовательности значений (lvalue) каждого элемента массива.
    
       void foo(int, int, int) { /* ... */ }
    
       int[3] ia = [1, 2, 3];
       foo(ia.tupleof); // аналог foo(1, 2, 3);
    
       float[3] fa;
       fa.tupleof = ia.tupleof; // простое присвоение fa = ia приведёт к ошибке
       assert(fa == [1F, 2F, 3F]);
    
    
    
    


  1. Главная ссылка к новости (https://dlang.org/blog/2022/05...)
  2. OpenNews: Для языка D представлен runtime для программирования микроконтроллеров
  3. OpenNews: Выпуск компилятора языка D 2.085
  4. OpenNews: Поддержка языка D включена в состав GCC
  5. OpenNews: В компилятор LDC языка D добавлена поддержка WebAssembly
  6. OpenNews: Официальный компилятор языка D переведён в разряд свободного ПО
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57311-dlang
Ключевые слова: dlang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (133) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Герострат (?), 18:13, 07/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Есть кто использует этот язык?
     
     
  • 2.4, Аноним (4), 18:42, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Александреску вроде как юзал
     
  • 2.17, burjui (ok), 19:40, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Есть те, кто использовал и даже любил когда-то, но забил из-за упоротого управления проектом. Моему любимому багу с захватом стековых переменных по ссылке в замыканиях уже 14 лет, а у вечно занятого Уолтера Брайта есть время только на новые фичи типа -betterC, но не на багфиксы. Языку сильно не хватает научной базы, и он стремительно (для его-то темпов развития) движется в братскую могилу, где рано или поздно окажутся все ЯП, которые развивались по принципу "примотаем новую фичу скотчем". То, что есть, часто работает не совсем гладко или вообще реализовано только наполовину. Багов в "stable" компиляторе столько, что я с моим везением и любовью к метапрограммированию напарывался на них стабильно раз в месяц. Для сравнения, в случае горячо нелюбимого здешними экспертами Rust, компилятор у меня не падал ни разу даже на nightly.

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

     
     
  • 3.22, Vindex (?), 20:58, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ты про этот?
    https://issues.dlang.org/show_bug.cgi?id=2043
    У меня в последние несколько недель впечатление, что в сообществе зашевелились решать проблемы
     
     
  • 4.55, burjui (ok), 10:20, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Про этот. Только ты почитай, как закрыли баг - RESOLVED MOVED. То есть, частный случай другого, ещё  не исправленного. Мечтать не вредно же? :)
     
  • 3.26, Hck3r (?), 21:55, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Но есть кто и в продакшене использует
    И чувствует себя хорошо ;)
     
     
  • 4.47, Аноним (47), 07:50, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А вы используете D в продакшн?
    Каким образом?
     
  • 4.53, burjui (ok), 10:15, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Есть такие, и я за них рад. Но мне нужна надёжность, т.к. у меня талант напарываться на баги, иногда просто нелепые. Когда-то работал над игрой Jane's Hotel 3 и там у нас компилятор Visual Studio "оптимизировал" цикл отрисовки, и пока я не полез смотреть ассемблерный код, мы с коллегами тщетно пытались понять, как это может быть. Когда нашли причину, помогла вставка в цикл:

    int a = 0;

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

     
     
  • 5.60, Аноним (60), 11:02, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > компилятор Visual Studio

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

     
     
  • 6.64, Аноним (64), 12:09, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если бы ты имел опыт работы выше нуля, ты бы не придирался к словам, так как все называют микрософтовский компилятор так
     
     
  • 7.65, Аноним (65), 12:30, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У вас логическая ошибка. Все не могут быть.
     
     
  • 8.87, burjui (ok), 18:51, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У вас синдром зануды ... текст свёрнут, показать
     
     
  • 9.113, Аноним (-), 14:07, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А ты спалился что не программист Так, абизянка с зачатками кодинга ... текст свёрнут, показать
     
     
  • 10.122, burjui (ok), 17:47, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ваше авторитетное мнение без единого факта мне так ранило душу, что сейчас же по... текст свёрнут, показать
     
     
  • 11.125, Аноним (-), 19:30, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Настоящие программисты все же слегка занудны Специфика профессии такая ... текст свёрнут, показать
     
     
  • 12.129, burjui (ok), 20:03, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Занудность я терплю без проблем, если человек предоставляет факты и даёт полезны... текст свёрнут, показать
     
     
  • 13.130, Аноним (-), 21:01, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1 это были 2 разых анона 2 первый анон нудил как настоящий программист - даже ... текст свёрнут, показать
     
     
  • 14.131, burjui (ok), 00:27, 10/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ок Одно дело - нудить по делу простите за тавтологию , а другое - просто потом... текст свёрнут, показать
     
  • 5.63, Аноним (64), 12:08, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > int a = 0;

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

     
     
  • 6.72, n00by (ok), 13:07, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это sequence point, транслятор обязан учитывать. Оптимизатор может "выпилить" результирующий код.

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

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

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

     
  • 6.88, burjui (ok), 18:54, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Знаю, что не должно влиять, но влияло: без этого компилятор не генерировал код цикла. Ну баг это.
     
  • 5.66, Аноним (65), 12:31, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это не мусорный код.
     
  • 5.73, n00by (ok), 13:15, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > пока я не полез смотреть ассемблерный
    > код, мы с коллегами тщетно пытались понять, как это может быть.

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

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

     
     
  • 6.89, burjui (ok), 19:02, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну, в той конторе (Realore Studios) это было только один раз. Чаще я напарываюсь на баги в тех программах, которые использую дома, потому что их много, есть время в них разобраться и попытаться выжать максимум возможностей, что и приводит к неожиданным открытиям. А уж основной компилятор D (dmd) я так замучал своим метапрограммированием, что он меня неоднократно ругал сегфолтами и стектрейсами, некоторые из которых уже были в bugzilla, а какие-то пришлось туда вносить самому.
     
     
  • 7.104, n00by (ok), 09:12, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > я напарываюсь на баги в тех программах, которые использую дома, потому
    > что их много, есть время в них разобраться и попытаться выжать
    > максимум возможностей, что и приводит к неожиданным открытиям.

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

     
     
  • 8.121, burjui (ok), 17:45, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вот потому я и забил на D, что там я использую стандартные документированные фун... текст свёрнут, показать
     
  • 3.33, Аноним (33), 00:23, 08/06/2022 Скрыто ботом-модератором     [к модератору]
  • –17 +/
     
     
  • 4.35, Георгий (??), 02:18, 08/06/2022 Скрыто ботом-модератором     [к модератору]
  • +5 +/
     
  • 4.40, Прохожий (??), 06:41, 08/06/2022 Скрыто ботом-модератором     [к модератору]
  • +4 +/
     
     
  • 5.102, Аноним (-), 07:59, 09/06/2022 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.49, www2 (??), 08:36, 08/06/2022 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 5.75, n00by (ok), 13:21, 08/06/2022 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 4.112, Аноним (112), 13:25, 09/06/2022 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.21, Vindex (?), 20:49, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пишу на нём с 2015-го. После C/C++ ощущается как глоток свежего воздуха. На нём легко писать, проекты на нём легко читать и поддерживать
     
     
  • 3.37, Мохнатый пись (?), 06:24, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оно и понятно: хеллоу ворлды легко писать и поддерживать.
     
     
  • 4.44, Vlndex (?), 07:45, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зато мой хеллоу ворд со зведами на гитхабе и даже хранится где-то в вечной мерзлоте.
     
     
  • 5.50, Аноним (50), 09:02, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Выходит, что вы его выбросили на мороз.
     
  • 3.96, Аристарх (??), 22:53, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В целом про Ди как "свежий С++" вполне согласен. Но вот templates... вот какой УРОД догадался делать это со стандартными скобками?!?!

    alias bar = Bar!(Foo)

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

     
     
  • 4.105, n00by (ok), 09:13, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вы там поосторожнее с оценками. Андрей Александреску - общепризнанный бог метапрограммирования на С++. Вдруг, это он так сделал? ;)
     
  • 2.95, Аристарх (??), 22:48, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я юзал - для прокси-резальщика рекламы. Ох, сколько же он дерьма отфильтровал!! :)
    Но это была консольная прога. Хотелось красивой ГУЙни, которая была бы написана на самом Ди, используя его мощь во весь рост. Такой нет до сих пор.
     
     
  • 3.114, vdb (?), 14:43, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Tilix — уже гуйня или ещё нет?
     

  • 1.3, Ванёк (?), 18:35, 07/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Нафиг оно надо, если всё тоже самое есть в C++, только качество и выбор компиляторов и средств разработки намного больше, на любой вкус, и под все платформы.
     
     
  • 2.5, Аноним (4), 18:43, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    тебе нужно больше книжек читать
     
  • 2.6, Anon24 (?), 18:54, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если есть Rust :-)
     
     
  • 3.8, Аноним (8), 19:08, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    То тогда и C++ - идеал.
     
     
  • 4.41, Прохожий (??), 06:43, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Разве что среди мазохистов.
     
     
  • 5.67, Аноним (8), 12:50, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тогда для растаманов даже вид извращения трудно подобрать слёту.
     
  • 3.29, Владимир (??), 22:27, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Раст очень сложный язык ...
     
     
  • 4.42, Прохожий (??), 06:44, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Довольно простой, если сравнивать с плюсами.
     
     
  • 5.68, житель планеты Железяка (?), 12:53, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Канешна простой, у нас на нашей планете в него все владеют.
     
  • 4.74, Ф1 (?), 13:20, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    D кстати тоже очень сложный язык, вполне в одном ряду с C++ и rust.
     
  • 2.15, Владимир (??), 19:32, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А что на нем пишут, Вань?
     
  • 2.28, Аноним (28), 22:05, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Есть Vala — разумное сочетание производительности Си, высокоуровневости и возможностей для эстетов.
     
     
  • 3.39, Аноним (4), 06:40, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    nim?
     
     
  • 4.43, Аноним (28), 06:55, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В nim акцент на выразительность, а не на скорость.
     
     
  • 5.62, Аноним (4), 12:07, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    для общих задач он быстрый, для задач на скорость не пробовал. честно говоря, не представляю, как на нём что-то оптимизировать, взять хотя бы банальную задачу оптимизации цикла
     
  • 3.69, Аноним (69), 13:00, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Неплох, но под гномерами ходит и пока что прибит к glib гвоздями.
     
     
  • 4.115, vdb (?), 14:45, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Глупо выставлять это недостатком, т. к. vala именно для этого и создавался.
     
     
  • 5.118, Аноним (69), 17:33, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Но с этим, он для этих и останется.
     

  • 1.7, Аноним (7), 18:55, 07/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Но зачем? Полезнее было бы возродить д1, д2 ожидаемо не взлетел.
     
     
  • 2.11, Аноним (8), 19:21, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А Dv1 взлетел? И почему если именно его возродить, то взлетит?
     
     
  • 3.14, Аноним (7), 19:31, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    1 не полагался во всём на рантайм, я, конечно, понимаю желание сделать такой язык, но эта ниша уже занята питоном и го.
     
     
  • 4.24, Hck3r (?), 21:49, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Дело не в рантайме..
    Можно выбирать минимальный рантайм, можно писать свой рантайм, можно вообще без рантайма писать :)
    Метапрограммирование одно из лучших

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

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

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

     
     
  • 5.32, Аноним (32), 23:37, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У Ди есть много недостатков (а у какого языка их нет?), но есть один самый главный на мой взгляд..
    > После Ди на других языках писать просто неприятно

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

     
     
  • 6.36, Аноним (36), 06:12, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В любой крупной конторе притягивают, а тебе значит фу... А кто ж тогда будет распространять, путан своим указом?
     

  • 1.10, Аноним (8), 19:18, 07/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >а также некоторые библиотеки на C++

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

     
     
  • 2.12, Аноним (8), 19:27, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И, кстати, означает ли это, что теперь можно линковаться без всяких обёрток с, например, FLTK? С Qt непонятно, там метакомпиляция.
     
     
  • 3.27, Hck3r (?), 22:02, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Самый поддерживаемый вариант - это GtkD
    Для Qt5 есть работа. Но она в процессе: https://m.youtube.com/watch?v=TFN5P4eoS_o

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

     
  • 3.82, glebiao (ok), 14:27, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >С Qt непонятно, там метакомпиляция.

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

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

     

  • 1.16, Аноним (16), 19:37, 07/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Увы, но D не хайпанул, и на этом для него практически всё закончилось:(
     
     
  • 2.19, burjui (ok), 19:55, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А он и не хайпанёт никогда. Там куча нормальных фич недоделаны, попутно пилятся сомнительные, багованый компилятор, абсолютно ненаучный подход к проектированию языка, маленькое сообщество и крошечная core team. Я на нём больше 10 лет писал. Молодой был, купился на фичи, а теперь мозга немного наросло и стало понятно, что это путь в никуда. В D есть много хорошего, но плохого там не меньше, и никто последнее чинить или не собирается, или не в состоянии.
     
     
  • 3.23, Аноним (23), 21:04, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А что, простить, там хорошего? Я писал на нём полгода, потом не выдержал и переписал проект на плюсах - и вот это действительно был глоток свежего воздуха. Ничего не могу назвать что из D мне бы не хватало. А вот отсутствие спорных вещей только радует.
     
     
  • 4.25, Hck3r (?), 21:52, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Люди переходят на Ди только для того, чтобы больше не трогать кресты..

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

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

     
     
  • 5.30, Аноним (47), 23:12, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что вы пишете Dля Dуши?
     
     
  • 6.31, Hck3r (?), 23:24, 07/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Все по разному) в телеграмм канале Dlang.ru у ребят много разных примеров

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

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

     
     
  • 7.45, Аноним (45), 07:47, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Короче питон но не питон, крутой язык...
     
     
  • 8.56, Hck3r (?), 10:21, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Каждый использует язык как ему удобнее в DS - питон основной язык, но бывает на... текст свёрнут, показать
     
     
  • 9.86, gaal (??), 17:22, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    когда-то посматривал на D и перешел на Go да и C сделал прогресс за столь... текст свёрнут, показать
     
  • 7.46, Аноним (47), 07:49, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    То есть вы не написали ни одной законченной программы и у вас много планов для души? Но у ребят на канале много примеров...

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

     
     
  • 8.57, Hck3r (?), 10:24, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Задачки на CF - класс Там внутри логика была с построением графа и связей среди... текст свёрнут, показать
     
  • 8.98, Аристарх (??), 23:03, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Дурочог, какие проекты ты хочешь Ворд Оперу ОС Люди что могут - то и пишут ... текст свёрнут, показать
     
  • 7.48, Аноним (48), 08:11, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > библиотека для Python со стат расчетами (в процессе)...
    > телеграмм бот, но там видимо проще питоновский взять...

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

     
  • 4.54, burjui (ok), 10:20, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Шаблоны и метапрограммирование там хороши. Впрочем, этого недостаточно, чтобы остаться на нём.
     
  • 4.97, Аристарх (??), 22:57, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты после плюсов не увидел в Ди ничего хорошего - извини, значит ты или тупой, или писал на каком-то Зю - самого Ди ты и в глаза не видел. Ди на голову превосходит все твои крестики.
     
  • 3.52, Аноним (60), 10:13, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > багованый компилятор

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

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

     
     
  • 4.91, burjui (ok), 19:17, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Все, т.к. у них общий фронтенд. Что до критериев, достаточно посмотреть на систему типов и как с ней интегрированы такие фичи, как shared, который скорее мешает, чем работает. Точнее сказать сложно, я не эксперт в теории типов и прочей computer science, но разница между D и тем же Rust в этом плане разительная и не в пользу первого. Про Haskell я вообще молчу - вот где научный подход во всей красе.
     
     
  • 5.99, Аристарх (??), 23:04, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хацкел - вон он как раз СЛИШКОМ научен! Настолько, что ни один РЕАЛЬНЫЙ погромизд не будет на нём писать. Хацкел только и хорош, что "фибаначи в одну строку" карябать.
     
     
  • 6.109, burjui (ok), 10:05, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Haskell хорош как плацдарм для отработки научных основ программирования. Никто не заставляет на нём писать крупные проекты.
     
  • 6.126, Аноним (-), 19:34, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Хацкел - вон он как раз СЛИШКОМ научен! Настолько, что ни один
    > РЕАЛЬНЫЙ погромизд не будет на нём писать. Хацкел только и хорош,
    > что "фибаначи в одну строку" карябать.

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

     
  • 3.81, glebiao (ok), 14:25, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >багованый компилятор

    да ладно

     
     
  • 4.90, burjui (ok), 19:10, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    На этот баг, мой "любимый", я напарывался неоднократно:
    https://issues.dlang.org/show_bug.cgi?id=2043

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

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

     
     
  • 5.100, Аристарх (??), 23:15, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я не совсем понимаю полезность завязываться в функции на внешнюю ИТЕРАЦИОННУЮ переменную! Это цикл, где переменная цикла - временное явление, причём с undefined величиной по окончании цикла. Пример явно искусственный, есть какой-то реальный пример, где прям вот нужно именно переменную цикла?
     
     
  • 6.106, n00by (ok), 09:23, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я не совсем понимаю полезность завязываться в цикле на любой счётчик. Если его значение не используется за пределами цикла, м.б. оно вообще не нужно?
     
     
  • 7.120, burjui (ok), 17:37, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да хрен с ним, со счётчиком. Баг касается любой переменной, которую захватывает замыкание - не важно, в цикле или нет. В D нельзя сказать "захвати по значению", он всегда захватывает по ссылке, даже если переменная стековая. Это же бред, ведь GC в язык засунули именно для того, чтобы сделать работу с памятью безопасной, а тут такой косяк на ровном месте, который в любом другом языке с GC не существует, потому что там или копируют захваченные переменные, или они все изначально выделяются в куче, поэтому проблем с обращением нет. А в нелюбимом мной, по другим причинам, C++ вообще можно указывать, как захватывать переменную. А в D ты 14 лет ждёшь, пока поправят очевидный баг. Вот тебе и "безопасная" работа с памятью: GC есть, а толку нет.
     
     
  • 8.123, n00by (ok), 18:56, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это больше похоже на ошибку дизайна, если я правильно уловил суть Показалось, ч... текст свёрнут, показать
     
     
  • 9.128, burjui (ok), 19:50, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Решение найдётся, как только Уолтер займётся этим Будет ли это решение оптималь... текст свёрнут, показать
     
  • 5.138, glebiao (ok), 08:59, 11/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ну, "забагованность", это всё-таки "многолетнее игнорирование очевидных косяков".

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

     
  • 2.34, Аноним (34), 01:29, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, почему же не хайпанул? Очень даже. Вот только компилятор не опенсурсный был на пике хайпа, да чехарда с версиями, а это чуть питон не убило.
     
  • 2.76, Ф1 (?), 13:24, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Увы, но D не хайпанул, и на этом для него практически всё закончилось:(

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

     

  • 1.51, Аноним (51), 09:26, 08/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А есть же языки: A, B, E, F?
     
     
  • 2.58, Аноним (58), 10:43, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    F# есть, если нужно: https://fsharp.org/
     
  • 2.59, Hck3r (?), 10:59, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    A - APL если
    B K&R разработали перед Си
     
     
  • 3.70, Аноним (51), 13:01, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Про  В слышал что-то краем уха.  Вот выучу языка A,B,C,D,E,F сдам на права этих же категорий и пойму что потратил жизнь на ерунду.  
     
     
  • 4.71, Аноним (51), 13:03, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нашел. Ну все, мир держись! Буду учить! А главное выкладывать на гитхаб результаты.
    https://en.wikipedia.org/wiki/List_of_programming_languages
     
  • 4.78, Аноним (78), 14:22, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если C овладел, то сразу дают категорию M =)
     

  • 1.61, Аноним (64), 12:02, 08/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всё ждал, как они выпилят сборщик мусора из стандартной библиотеки, так и забил
     
     
  • 2.77, Hck3r (?), 13:56, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не всегда всё быстро происходит - это верно..
    Несмотря на то, что в браузерах GC нужны со спецификацией тоже пока не задалось сходу..
    https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2186r2.html

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

     
  • 2.79, glebiao (ok), 14:23, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Всё ждал, как они выпилят сборщик мусора из стандартной библиотеки, так и забил

    а зачем?

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

     
     
  • 3.92, Аноним (64), 20:36, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Затем, что если мне нужен GC, я на сишарпе напишу спокойно
     
     
  • 4.142, glebiao (ok), 09:27, 11/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ... и притащу 200 Мб рантайм. А так, ну да.
     
  • 3.127, Аноним (-), 19:38, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > а зачем?

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

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

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

     
     
  • 4.139, glebiao (ok), 09:01, 11/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    непредсказуемость производительности сильно преувеличена.
    да и движение в сторону @nogc имеет место, так-сказать, быть :)
     

  • 1.80, Аноним (78), 14:24, 08/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >  foo(ia.tupleof); // аналог foo(1, 2, 3);

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

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

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

     
     
  • 2.83, Hck3r (?), 14:40, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ждут пока свой PR закинешь :)
     
     
  • 3.85, Аноним (78), 15:08, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тут нужно свой язык делать тогда сразу что бы не связываться с непонятными людьми,
    а на это нужно время, деньги и желаание, а так то совет сказать и желание высказать это
    не тоже самое.

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

     
  • 2.84, Аноним (78), 15:04, 08/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ну и конечно нужны структуры данных в стандартной библиотеке: списки, графы, деревья и алгоритмы к ним, а так же пакетный менеджер зависимостей и C ABI в обе стороны и это будет в целом залог успеха нового языка... А да еще нужна нормальная библиотека для построенрия GUI-ни и HTTP/WSS серверов и бует просто пушка =)
     

  • 1.107, анонимчик (?), 09:25, 09/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чем он лучше swift? (ничем)
     
     
  • 2.141, glebiao (ok), 09:26, 11/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Swift под Windows или Linux — технически возможное, но неудобное и неполноценное решение.
    ((C) ) https://blog.skillfactory.ru/glossary/swift/
     
     
  • 3.143, анонимчик (?), 20:41, 11/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Swift под Windows или Linux — технически возможное, но неудобное и неполноценное
    > решение.
    > ((C) ) https://blog.skillfactory.ru/glossary/swift/

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

     

  • 1.108, abu (?), 09:47, 09/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хороший язык. Использую его в своем пет-проекте.
     
     
  • 2.116, Аноним (64), 15:52, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    что такое пет-проект?
     
     
  • 3.133, tmplsr (?), 10:52, 10/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >что такое пет-проект?

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

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

     
  • 3.144, abu (?), 14:13, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Просто проект-игрушка. Нравится программировать долгими зимними вечерами, теперь и не на С++.
     

  • 1.119, Аноним (119), 17:34, 09/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Приятный язык. Хорошо, что жив.
     
     
  • 2.124, Аноним (64), 19:00, 09/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Язык в целом хорош. Но не доведён до ума. Так и не появилось внятного GUI (а-ля Qt). Биндинги выглядят как попытка сделать из мыши ежа. По книжке Александреску вообще всё гладко. Когда начинаешь прогать сам, натыкаешься на всякие нелепости, типа захвата в лямбда только по ссылке (о чём burjui упоминал выше). Попытка обсудить это в сообществе, сводится к тому, что "сам дурак, не умеешь пользовать D". Ещё было пару аналогичных моментов, которые отталкивают. Лет 7 назад написал на нём аналог make для собственных проектов с полным отслеживанием зависимостей, параллельной компиляцией (получилось 2 файла на языке D по паре сотен строк). Но для чего-то более серьезного использовать просто побоялся. В этом плане C++ с его новыми стандартами 11,14, 17 мне нравится больше.
     
     
  • 3.132, Аноним (119), 10:10, 10/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален А вот какой вы могли бы предложить приятный компилируемы... большой текст свёрнут, показать
     
     
  • 4.134, Cooler (??), 11:09, 10/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тут зависит от задачи, для чего вы собираетесь использовать этот язык. Нужен ли GUI, нужна ли удобная IDE? Собираетесь программировать только для заработка (тогда нужно выбирать по вакансиям)?. Для меня С++ наиболее универсальный язык. Если начал что-то делать на нём, то можно быть уверенным, что не упрешься в какое-либо ограничение самого языка. Плюс самый широкий спектр библиотек. Не понимаю тех, кто противопоставляет C и C++. Второй является расширением первого. Но на самом деле, за вас выбор никто не сделает. Надо набраться опыта, чтобы сделать осознанный выбор. Для этого надо потыкаться в разные языки и разные предметные области. Проникнуться основными концепциями (функциональное программирование, ООП, метапрограммирование, сети, WEB, Windows, Linux и т.д.). При такой постановке вполне можно начать и с D. Rust - высокий порог вхождения. Тут надо просто пробовать (как вы уже попробовали Go).
     
     
  • 5.135, Аноним (119), 11:23, 10/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Для работы, понятно, нужно брать искать из популярного ... большой текст свёрнут, показать
     
  • 3.140, glebiao (ok), 09:24, 11/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Попытка обсудить это в сообществе, сводится к тому, что "сам дурак, не умеешь пользовать D"

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

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

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

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

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

     
     
  • 4.145, Аноним (145), 09:30, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Писать и наслаждаться: Rust, Haskell. Для меня в данный момент, естественно. Раньше был фанатом C++, Go тоже очень нравился, но отказался от него по довольно забавной причине: общий культурный и профессиональный уровень коллег-гошников оказался существенно ниже того, к которому я привык.
     
     
  • 5.146, glebiao (ok), 09:09, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    дык ответа на вопрос не дано.
    сколько надо времени?!

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

    для примера (не совсем честно, использована внешняя библиотека, но это тоже иллюстрация -- как можно писать за счёт средств языка):
    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);
             });
    }

     

  • 1.136, Аноним (136), 21:31, 10/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Язык занятный, но постоянно было ощущение - что-то с ним не так. Потом, когда попёрли малинки, апельсинки, и прочие армы, для которых dmd ещё не мог и не умел, пришлось оставить его в покое.
    А потом дошло, отчего всё не так: D придумали упоротые плюсовики.
     
     
  • 2.137, Hck3r (?), 23:18, 10/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А где всё хорошо?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру