The OpenNET Project / Index page

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

Вышел компилятор языка D 2.082

04.09.2018 23:07

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

В новой версии:

  • Расширены возможности пакетного менеджера DUB: улучшена обработка зависимостей, добавлена поддержка переменных в настройках сборки и убрана автоматическая ежедневная проверка обновлений (обновления теперь проверяются только при запуске "dub upgrade");
  • Добавлены сборки для платформы Windows, заверенные цифровым сертификатом;
  • Расширен синтаксис определяемых пользователем атрибутов;
  • В подмножество языка "-BetterC", которое позволяет разрабатывать на D полностью совместимые с Си библиотеки, добавлена возможность использования литералов массивов в инициализаторах (например, "Sint[6] a1 = [Sint(1), Sint(2), Sint(3), Sint(1), Sint(2), Sint(3)];");
  • Добавлена опция командной строки "--DRT-trapException=0" для отключения генерации исключений;
  • В модуль std.array добавлена функция staticArray.

Кроме этого следует отметить выпуск компилятора LDC 1.12.0-beta1, развиваемого на базе наработок проекта LLVM. В новой версии обеспечена поддержка LLVM 6.0, проведена оптимизация математической библиотеки, добавлена поддержка LTO-оптимизаций для платформы Win64.

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


Обсуждение (102) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Дуплик (ok), 00:08, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда этот D в GCC включат уже? Ведь были подвижки!
     
     
  • 2.2, Аноним (2), 00:19, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Первый раз Дуплика плюсанул.
     
  • 2.12, Аноним (12), 08:51, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы таки не поверите
     

  • 1.3, Аноним (3), 00:23, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    D так костылями облеплен, что не так уж от C++ ушел, но C++ при этом быстрее и обеспечен гигантским числом библиотек, которые не надо биндить, а просто использовать
     
     
  • 2.4, Аноним_ка (?), 01:11, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Список костылей в студию.
    >но C++ при этом быстрее

    Пруфца бы
    >которые не надо биндить, а просто использовать

    Ругая чертов язык и десятистраничные сообщения об ошибках с шаблонным говном?

     
  • 2.5, Crazy Alex (ok), 01:34, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а потом ты хочешь написать range for но понимаешь, что тебе нужен и индекс то... большой текст свёрнут, показать
     
     
  • 3.6, _ (??), 01:51, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >Впрочем, всё это D вряд ли спасёт

    Походу - так.
    >против повсеместно используемых плюсов и продвигаемого гуглом Go один хрен не вытянет.

    Ну-да, ну-да! Виноват кто угодно, но не Королева?! :)
    А ещё желательно ткнуть где же это гуголь продвигает Go? Не 5 лет назад, а вот сейчас? Сюрприз - оно уже давно само ... 8-)
    >А жаль.

    А нас ... орда! :) Всё суета сует, всё сущее уже было и ещё будет (С)

     
     
  • 4.33, Аноним (33), 13:47, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ну-да, ну-да! Виноват кто угодно, но не Королева?! :)

    Так никто не виноват же, просто ресурсы не сопоставимы.

     
  • 4.49, Аноним (49), 18:53, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А ещё желательно ткнуть где же это гуголь продвигает Go? Не 5 лет назад, а вот сейчас?

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

     
     
  • 5.82, Аноним (82), 22:18, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > хотя изначально авторы были против

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

     
  • 5.92, _ (??), 03:19, 08/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Вот прямо сейчас в Go впиливают дженерики,

    один пропозал от ХЗ кого для Go v2.0 == прямо сейчас впиливают?!?!? Ню-ню ... :)

     
  • 3.7, нона (?), 05:34, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > продвигаемого гуглом Go один хрен не вытянет.

    Почему продвигаемый? Отличный язык.
    Людям нравится, он естественно становится популярным.

     
     
  • 4.8, qwerty123 (??), 08:03, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    >Почему продвигаемый?

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

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

     
     
  • 5.10, qrKot (?), 08:42, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >> Если бы это частная была разработка пары олдскульных чуваков, то мало вероятно мы бы узнали о нем.

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

     
     
  • 6.30, qwerty123 (??), 13:16, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Просто оказалось, что это правильные олдскульные чуваки

    Правильные для чего? Для понижения стоимости разработки в ближайшем периоде?
    Для того, что бы можно было нанять сотрудников подешевле?


    И что-то отменяет факт вмененной политики разработки в крупной компании?
    И сопутсвующих инвестиций в разработку?


     
     
  • 7.93, _ (??), 03:25, 08/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А ты знаешь хоть один язык для промышленности который делали для повышения стоимости ***blah-blah-blah*** ?  ;-)
     
  • 6.38, freehck (ok), 14:38, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> Если бы это частная была разработка пары олдскульных чуваков, то мало вероятно мы бы узнали о нем.
    > Собственно, изначально оно примерно так и было. Просто оказалось, что это правильные олдскульные чуваки, и их гугл прикупил.

    Разработка Go началась в 2007 году. Пайк работает в гугле с 2002го. Томпсон с 2006го. "Примерно так оно и было", ага.

     
     
  • 7.94, _ (??), 03:37, 08/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Пайк работает в гугле с 2002го. Томпсон с 2006го.

    Ну дык - плюс Гуглу, прибирают талантливых перцев, а не средневонючее ****о
    И заметь результат - ЕСТЬ.
    Go lang живёт уже сам по себе, сам себя раскручивая. Гугел с его помощью уже  выкинул кучу С++ кода (dl.google.com - первый и полностью) и сЪэкономил бабла уже больше, чем когда то вложил ... "так что же тебе ещё надобно, пёс смердячий?!" (С) ИВмп.

     
     
  • 8.100, freehck (ok), 04:00, 10/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Суть не в вашеском cраче хорош го или плох Суть в том, что гражданин в сообще... текст свёрнут, показать
     
  • 4.13, Аноним (12), 08:54, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Отличный язык, а библиотеки на шитхабе. NPM-hell вас ничему не научил?
     
     
  • 5.32, qwerty123 (??), 13:19, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >NPM-hell вас ничему не научил?

    На экранах TV, скоро, новый сериал "GO-бардак" и "Новые костыли всегда лучше".


     
  • 3.27, dq0s4y71 (ok), 13:05, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Впрочем, C++14 и дальше стали весьма приличным языком, тут не поспорить.

    Как это? C++14 перестал включать в себя большинство правил из предыдущих стандартов? Или вы думаете, что с помощью очередных костылей из "неприличного" языка можно сделать "приличный"?

     
     
  • 4.53, Аноним (49), 21:10, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    move semantic порешал многие проблемы с выстрелами в ногу, например.
     
  • 4.73, Crazy Alex (ok), 15:09, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю, как насчёт костылей, а с помощью новых возможностей - запросто. А дальше - - берёшь C++ guidelines и пишешь, как там рекомендовано. И на ревью то, что им противоречит, не пропускаешь.
     
     
  • 5.86, glebiao (ok), 07:45, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Не знаю, как насчёт костылей, а с помощью новых возможностей - запросто.
    > А дальше - - берёшь C++ guidelines и пишешь, как там
    > рекомендовано. И на ревью то, что им противоречит, не пропускаешь.

    я даже больше скажу. компактность бинарного (исполняемого) кода и быстродействие у C++ всегда будет выше.

    но "затраты" на написание практически не уменьшается и => скорость написания кода, практически не увеличивается. Облегчается, но не радикально. Ну невозможно одновременно пытаться притягивать язык к железу и в то же время наращивать новые и новые абстракции, да ещё в шаблонном коде, разобраться в котором может только автор и только под мухой.

     
     
  • 6.91, dq0s4y71 (ok), 15:34, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/

    > я даже больше скажу. компактность бинарного (исполняемого) кода и быстродействие у C++
    > всегда будет выше.

    У джавы же!

     
  • 3.98, ZhNavigator (?), 07:08, 08/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Уже энное количество лет слежу за развитием этого языка, так вот с самого первого знакомства наткнулся на такую "МАЛЕНЬКУЮ" фичу: если в деструкторе использовать выделение памяти, то о сборище мусора можно забыть. Т.е. я создаю объекты, и вручную их не удаляю, т. е. полагаюсь на GC. Так, вот если в деструкторе будет выделение памяти, а она выделяется если, например, нужно отформатировать строку, то прога падает... хе.хе. Да, писал в багтрекер, сказали: да, есть такое. И как бы ВСЁ?!
    Смотрел на те немногие проекты что на нем написаны. Так, как раз используют ручное освобождение памяти. По моему скромному мнению, такой язык так и останется так где он сейчас.
     
  • 2.25, Аноним (25), 12:25, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >но C++ при этом быстрее

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

     
     
  • 3.40, Аноним (3), 15:45, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда уж C#, у D нет ниши
     
     
  • 4.44, J.L. (?), 17:25, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Но когда нужно прожку попой в инет выставить, то D видится более безопасным, чем C++ и уж, тем более, чем C.
    > Тогда уж C#, у D нет ниши

    у C# нет ниши, или вы прожки в инет выставляете с винды?

     
     
  • 5.56, Аноним (3), 22:33, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Каким образом C# привязан к винде? Хотя не отвечай. Уровень твоего понимания темы уже понятен и твое мнение не интересно никому
     
  • 4.60, Аноним (25), 10:54, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Тогда уж C#

    С# в машинные коды могёт, чтоб без всяких там CLI? А D могёт.

     
  • 4.66, Аноним (25), 11:26, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    C# ? Тогда представь, у тебя MIPSEL, 16 Мбайт Flah, 32 Мбайт ОЗУ, OpenWRT. И тут ты такой, пытаешься на это Mono вкорячить.
     

  • 1.9, Аноним (9), 08:33, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    любимый досуг программистов - писать новые языки программирования.
    чтобы их потом изучать и спорить о достоинствах и перспективах :)
     
     
  • 2.19, Попугай Кеша (?), 11:00, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Вообще да, так приятно посмеяться над программистами. Не так ли?

    А вы то у нас умный, образованный, небось этот, бизнесмен или еже еси капиталист? Нет? Владелец производства или блогер? Короче, реальный пацан, достигший успеха, ведь так? Или как?

    Программисты создают, все остальное - паразиты, которые пользуются плодами их труда. Кто-то даже пользу приносит (UX/UI-специалисты), а кто-то так, паразитирует на чужом труде, продавцы разные, менеджеры эффективные и иже с ними

     
     
  • 3.79, Аноним (79), 17:26, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А у меня инстак приносит в месяц больше (и это за три месяца с нуля на уникальном контенте - тупо тревел-блог), чем приносила основная работа (программистом, кстати). Так что не надо ляля про паразитов. Кто нужнее показывает размер доходов.
     
     
  • 4.97, _ (??), 03:48, 08/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ты торгуй кайфом! Будешь ещё более уважаемым и нужным (судя по доходам) :-)
     
  • 2.28, dq0s4y71 (ok), 13:08, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Досуг это для школоты, для программистов это - крайняя необходимость.
     

  • 1.11, Аноним (11), 08:45, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Время тратят на этот D; могли бы помогать улучшать Rust, Swift
     
     
  • 2.14, Клыкастый (ok), 09:36, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +10 +/
    в зависимости от вкуса названия языков можно переставлять.
     
  • 2.15, glebiao (ok), 10:02, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Время тратят на этот D; могли бы помогать улучшать Rust, Swift

    Это РАЗНЫЕ языки. Воспринимай D как "компилятор Питона": язык, допускающий или точнее, даже *заточенный* на очень *быстрое* написание достаточно надёжного нативного кода. Скорость написания рабочего кода на D лишь совсем незначительно уступает Питону. Скорость выполнения на порядок больше.

    У Раста другая парадигма. Для малых коллективов/малобюджетных проектов и одиночек, D просто спасение.  Но порог вхождения в D сильно выше, чем в Питон.

     
     
  • 3.16, Gemorroj (ok), 10:18, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и еще, в отличие от питона, D - красивый язык)
     
     
  • 4.21, Попугай Кеша (?), 11:00, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну я даж не знаю. Это чистая вкусовщина же. Разве нет? Мне вот LISP нравится. Вот он - красивый с моей точки зрения.
     
     
  • 5.41, HyC (?), 16:05, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну я даж не знаю. Это чистая вкусовщина же. Разве нет? Мне вот LISP нравится. Вот он - красивый с моей точки зрения.

    Красивый. Но как язык общего назначения неудобный. Языки общего назначения красивы от дядюшки Вирта. Потому-что там под грамматику подведена математическая база, а не система костылей "а давайте мы еще вот такую фичу зопилим". Но их принято гнобить, потому-что на них нельзя без танцев с саблями стрелять себе в ногу в духе "смотрите пацаны как я могу (ц)".

     
     
  • 6.55, Аноним (55), 22:21, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Потому-что там под грамматику подведена математическая база

    Почитай про лямбда исчисление что ли.

     
  • 4.59, glebiao (ok), 10:38, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >и еще, в отличие от питона, D - красивый язык)

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

     
  • 3.23, Аноним (11), 11:19, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сомнительно, потому что насколько помню, D позиционировали как универсальный язык.
    На rust и swift быстрее найти работу, потому что есть вакансии на эти языки.
    А на D вакансий нет.
     
     
  • 4.35, Аноним_ка (?), 13:52, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >потому что есть вакансии на эти языки.

    Ну на swift допустим, а вот про rust врать не надо.

     
     
  • 5.42, гугл (?), 16:10, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    не прошел собеседование в мазилу? Иди к нам, на игого переучим!
     
     
  • 6.67, Аноним (25), 11:52, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Иди к нам, на игого переучим!

    iPony, почему не под своим ником?

     
  • 6.95, _ (??), 03:39, 08/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Там единственное условие чтбы ты в дупу давал ... как и на чём ты программируешь мазилоффцев даааавно не интересует!

    Кстати - я так понял что тебя взяли? :-))))))

     
  • 4.61, glebiao (ok), 10:56, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Сомнительно, потому что насколько помню, D позиционировали как универсальный язык.

    а в чём противоречие? D даёт возможность *быстро* написать код (не в ущерб современным приёмам), безопасность которого вполне на должном уровне. Это качество считается чрезвычайно важным, настолько, что даже отражено в официальном кличе "write fast, read fast, run fast". Узкой специализации при этом не заметно.

    Раст заточен на максимальные гарантии безопасности кода, но в ущерб скорости написания, так как держать в голове придётся заметно больше, чего. И никто и не говорит, что процесс написания кода на Расте должен быть очень быстрым делом.

    >А на D вакансий нет.

    Ну да, *практически* нет. В СНГ, во всяком случае :)

    но меня тут греют ностальгические воспоминания: когда я в 1995 году познакомился и даже немного популяризировал Python в наших краях, питоновских вакансий тоже было ровно ноль. Есть ли шансы на распространение, вопрос интересный. Имхо, шансы есть, смысл рекламироваь язык есть. Дело упирается в 1) уже написанную кодовую базу, которая пока бедновата 2) слишком уж разработчики любят словечко deprecated 3) нет хорошего учебника. Тем более, нет (для наших реалий), русскоязычного учебника. Книга Александреску хороша и даёт отличное введение в философию D, но не пригодна для начального обучения. Книга Çehreli охватывает базовый язык, но не даёт системного введения для начинающих.

    как-то так.

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

     
     
  • 5.74, Crazy Alex (ok), 15:13, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В бумаге - не уверен, а вот краудфандинг какой-то не помешал бы
     
  • 5.96, _ (??), 03:42, 08/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Это качество считается чрезвычайно важным, настолько, что даже отражено в официальном кличе "write fast, read fast, run fast".

    Ага, а внизу мааалюсенькими буквами - "But you can take only __two__ of them." :-))))

     
  • 3.83, Аноним (83), 07:33, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Впервые на него вглянул. Довольно тяжело воспринимается - не в пример Пайтону!
     
     
  • 4.85, glebiao (ok), 07:41, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Впервые на него вглянул. Довольно тяжело воспринимается - не в пример Пайтону!

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

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

     
  • 2.18, анон чик (?), 10:42, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А может наоборот - тратят время на этот rust/swift - могли бы на D писать?
     
  • 2.26, Аноним (25), 12:29, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Время тратят на этот D; могли бы помогать улучшать Rust, Swift

    Идите вы своей Ржавчиной кобыле под хвост. D хотя бы гвоздями не приколочен к LLVM и Шлангу.

     

  • 1.17, Аноним (17), 10:33, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Писал на D и на Python. После D Python просто ужасен. В здравом уме проекты больше 100 срок на нем делать бы не стал.
     
     
  • 2.20, Crazy Alex (ok), 11:00, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну с динамикой всегда так - после перехода (и освоения) современных статически типизируемых языков обратно возвращаться не интересно ни для чего, кроме мелочи
     
     
  • 3.22, Попугай Кеша (?), 11:01, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всегда так для кого? Зачем по себе людей судите? Нет, не все такие как вы.
     
     
  • 4.24, Аноним (24), 11:59, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет, мы все такие.
     
  • 3.29, dq0s4y71 (ok), 13:13, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня наоборот. После знакомства с языками с динамической типизацией, я теперь знать не хочу, какой ширины у меня там int и int ли это вообще.
     
     
  • 4.34, Аноним_ка (?), 13:51, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А дишечка она не как сишка/кресты, с типами-хрен-пойми-какого-размера-в-зависимости-от-платформы-компилятора-фазы-луны, у нее как раз размер точно определен.
     
     
  • 5.43, dq0s4y71 (ok), 16:35, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А нафига мне вообще о нём знать? В Си[++] я, по крайней мере, его учитываю как аппаратную особенность платформы. А в этих языках "высокого уровня", которые от платформы якобы не зависят, - нафига он мне? Мы работаем с алгоритмами и абстракциями, но при этом должны помнить, какого размера у нас int, чтобы не получилось переполнения, и сколько места выделять под стэк, чтобы пережить рекурсию...

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

     
     
  • 6.45, J.L. (?), 17:32, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А нафига мне вообще о нём знать? В Си[++] я, по крайней
    > мере, его учитываю как аппаратную особенность платформы. А в этих языках
    > "высокого уровня", которые от платформы якобы не зависят, - нафига он
    > мне? Мы работаем с алгоритмами и абстракциями, но при этом должны
    > помнить, какого размера у нас int, чтобы не получилось переполнения, и
    > сколько места выделять под стэк, чтобы пережить рекурсию...
    > С другой стороны, Ди - это очередная вариация на тему "Каким на
    > самом деле должен был бы быть Си", поэтому я не удивлён.

    вы похоже путаете что такое динамическая типизация
    это вот такое
    a = 5 + "5"
    внимание вопрос! какого типа a ? и что за ёжоуж будет внутри?

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

    а это как с динамической типизацией вообще связано???

     
     
  • 7.47, аноним_очка (?), 17:48, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >a = 5 + "5"

    Ну, формально, это камень в сторону слабой, а не динамической. В питоне она таки сильная, и такой фокус не прокатит.

     
  • 7.58, dq0s4y71 (ok), 00:47, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > вы похоже путаете что такое динамическая типизация

    Может, и путаю, гуглить лень. Динамическая - это, вроде, когда тип задаётся в момент присваивания, а не в момент описания, нет?

    > это вот такое
    > a = 5 + "5"
    > внимание вопрос! какого типа a ? и что за ёжоуж будет внутри?

    Да мне какбе пофигу. Будет число или строка - в зависимости от правил, принятых в данном конкретном языке. Я на это смотрю сугубо с практической точки зрения. Мне ведь нужно работать, допустим, арифметику считать, а не ставить эксперименты, что будет, если сложить число со строкой. И вот для того, чтобы считать арифметику, мне тип редко когда нужен. В нём может возникнуть необходимость только во время ввода/вывода.

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

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

     
     
  • 8.70, Анонимный Алкоголик (??), 12:25, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы использовать целые вам тип редко когда нужен, вероятно - А то вот уже с ... текст свёрнут, показать
     
     
  • 9.71, J.L. (?), 12:37, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    неограниченные числа много где есть, всякие BigDecimal и тд, если маленькие - жи... текст свёрнут, показать
     
  • 7.65, нах (?), 11:25, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > вы похоже путаете что такое динамическая типизация
    > это вот такое
    > a = 5 + "5"
    > внимание вопрос! какого типа a ? и что за ёжоуж будет внутри?

    integer, 55 (разьве тут что-то не так?)

    только для полного вдохновения надо a=b+c, а b и с определить как 5 и "5" где-нибудь пятью уровнями выше и через пятьдесят килобайт сложноотлаживаемого кода.

     
     
  • 8.89, Аноним (-), 10:45, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    у меня задергался глаз... текст свёрнут, показать
     
  • 5.54, Аноним (49), 21:17, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > какой ширины табуляция в пробелах и пробелы ли это вообще

    fixed

     
  • 4.62, glebiao (ok), 10:57, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >У меня наоборот. После знакомства с языками с динамической типизацией, я теперь знать не хочу, какой ширины у меня там int и int ли это вообще.

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

     
     
  • 5.68, dq0s4y71 (ok), 12:02, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да. И я на таком языке, в основном, пишу :) Но когда ты пишешь не драйвер для конкретной железяки, а приложение, там важнее иметь удобные инструменты для работы с абстракциями, а не с отдельными байтами.
     
     
  • 6.69, glebiao (ok), 12:15, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Да. И я на таком языке, в основном, пишу :) Но когда
    > ты пишешь не драйвер для конкретной железяки, а приложение, там важнее
    > иметь удобные инструменты для работы с абстракциями, а не с отдельными
    > байтами.

    а в чём проблема? в чём неудобство абстракции real или int? нет автоматического "расширения" типа при необходимости? А в *компилируемых* языках такой механизм вообще, имеет смысл?

     
     
  • 7.72, dq0s4y71 (ok), 14:21, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ветка началась с утверждения о том, "какие хорошие типизированные языки и какие плохие нетипизированные". Я с этим не согласен. Когда ты делаешь арифметические вычисления в уме, ты не думаешь о типе. Тип - это костыль, который важен для низкоуровневого представления твоих данных. Но, когда ты работаешь с абстракциями, какой смысл ещё тратить время на выбор типа для арифметической переменной?
     
     
  • 8.76, Crazy Alex (ok), 15:21, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так тип - это и есть хорошо именованная и определённая абстракция, именно для то... текст свёрнут, показать
     
  • 8.84, glebiao (ok), 07:36, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    здрасьте, пожалуйста Когда я делаю прикидки в уме, то по крайней мере, деление ... текст свёрнут, показать
     
  • 8.102, Анонимный Алкоголик (??), 16:02, 11/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Внезапно только потому что тип предопределён, один единственный и подразумеваетс... текст свёрнут, показать
     
  • 6.90, нах (?), 11:21, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Да. И я на таком языке, в основном, пишу :) Но когда
    > ты пишешь не драйвер для конкретной железяки, а приложение, там важнее
    > иметь удобные инструменты для работы с абстракциями, а не с отдельными
    > байтами.

    и мы валимся в core при попытке прочитать собственную базу, записанную на той же самой железке, с тем же bit order, но в 32битной системе, а читаем в 64.

    Или просто все делаем максимальной разрядности, а когда нас запускают не на единственноверной платформе, тормозим не вдвое, а в двадцать раз, поскольку даже пресловутые 5+5 складываем в две итерации с ручным переносом переполнения между половинками (мы ж не знаем заранее, 5 там или MAXINT+1 для этой платформы). Или в четыре ;-)

    что мешает выдумщикам новых-модных язычков предусмотреть тип byte, а все остальное делать через sizeof() - то ли авторитет Ритчи, то ли свое скудоумине - неведомо.


     
  • 4.75, Crazy Alex (ok), 15:15, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Значит, большое/сложное не пишете. Иначе быстро захотите такие вещи контролировать, когда нарвётесь на неожиданные падения быстродействия из-за преобразований, не влезание в кэши или тупо неизвестно откуда взявшиеся слабо повторяемые падения, так как где-то кто-то асинхронно передал совсем не ту структуру, что вы ждали.
     
     
  • 5.78, dq0s4y71 (ok), 15:39, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если большое/сложное писать без хорошо продуманной идеологии и интерфейсов между компонентами, то оно так и будет. Оно так и будет даже если использовать типизированные языки, просто с нетипизированными хаос наступает быстрее :)
     
  • 2.99, ZhNavigator (?), 07:10, 08/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Уже энное количество лет слежу за развитием этого языка, так вот с самого первого знакомства наткнулся на такую "МАЛЕНЬКУЮ" фичу: если в деструкторе использовать выделение памяти, то о сборище мусора можно забыть. Т.е. я создаю объекты, и вручную их не удаляю, т. е. полагаюсь на GC. Так, вот если в деструкторе будет выделение памяти, а она выделяется если, например, нужно отформатировать строку, то прога падает... хе.хе. Да, писал в багтрекер, сказали: да, есть такое. И как бы ВСЁ?!
    Смотрел на те немногие проекты что на нем написаны. Так, как раз используют ручное освобождение памяти. По моему скромному мнению, такой язык так и останется так где он сейчас.


     
     
  • 3.101, glebiao (ok), 13:10, 10/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > самого первого знакомства наткнулся на такую "МАЛЕНЬКУЮ" фичу: если в деструкторе
    > использовать выделение памяти, то о сборище мусора можно забыть. Т.е. я

    ну. не любое выделение памяти, а выделение в куче, которое в свою очередь, должно управляться сборщиком.
    выделение вручную и/или std.container... или @nogc --- работает.

    > выделяется если, например, нужно отформатировать строку,

    ну. выражения типа writefln("%s %d", s... работают, так как см выше

    > то прога падает... хе.хе.

    не, не падает. а получает core.exception.InvalidMemoryOperationError@core
    хотя, что сову о пень...

    > писал в багтрекер, сказали: да, есть такое. И как бы ВСЁ?!

    а деструктор не предназначен для выполнения в нём сложных действий :)

    > Смотрел на те немногие проекты что на нем написаны. Так, как раз
    > используют ручное освобождение памяти. По моему скромному мнению, такой язык так
    > и останется так где он сейчас.

    насколько понимаю, GC никому не нравится и подвергается существенному пересмотру


     

  • 1.31, Аноним (31), 13:17, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "косвенное определение типов" -- это что? alias this или что-то другое?
     
  • 1.36, yet another anonymous (?), 14:01, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В новой версии:
    >
    >    Расширены возможности пакетного менеджера DUB: улучшена обработка зависимостей, добавлена поддержка переменных в настройках сборки и убрана автоматическая ежедневная проверка обновлений (обновления теперь проверяются только при запуске "dub upgrade");

    Замечательная часть _компилятора_.

     
     
  • 2.39, аноним_очка (?), 14:59, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это не часть компилятора. Побуквоедствовать захотелось?
     

  • 1.37, Анонь (?), 14:25, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А вот так обстоят дела с вакансиями под этот ЯП.

    On Sunday, 8 January 2017 at 22:34:33 UTC, eugene wrote:
    > Hello, everyone,
    > could you share, please, your knowledge, where can i search D lang remote junior developer jobs?

    Currently there are barely any employers who require D programmers.

    If you really want to work with D outside of hobby, then your best bet is probably freelancing and/or starting your own company.

    There's just far too little companies using D, more even allowing you to work remotely.

    You could take a look at this list and perhaps send in your job application, resume etc. and perhaps they might hire you for remote work, but honestly it's a shot in the sky.

     
     
  • 2.48, Аноним (11), 18:24, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Есть сомнения, что D это тупиковый язык, по сути бесполезный.
    Потому что на тот же Rust уже давно есть вакансии.
    А количество вакансий на Rust продолжает увеличиваться.
    Тем более, что Rust - это более продуманный язык изначально в своей основе
     
     
  • 3.50, nirek (?), 19:15, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В таком случае, все языки по сути бесполезны, кроме js.
    >Потому что на тот же Rust уже давно есть вакансии.

    Вот лично вы пишете на rust на постоянке за деньги? Или может быть кто то другой в этом треде?
    >Rust - это более продуманный язык изначально в своей основе

    Эта мерзкая мешанина? Это даже не смешно.

    Кстати, следуя этой логике, нужно выбросить на помойку 99% опенсорца, а сидеть на винде и прочем.

     
     
  • 4.51, Аноним (11), 19:55, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>Вот лично вы пишете на rust на постоянке за деньги?

    ещё нет, но планирую

    >>Кстати, следуя этой логике, нужно выбросить на помойку 99% опенсорца, а сидеть на винде и прочем.

    Насколько я знаю, компилятор DMD не является свободным.

     
     
  • 5.52, nirek (?), 20:05, 05/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >ещё нет, но планирую

    А я планирую стать первым человеком, высадившимся на марсе

    >Насколько я знаю, компилятор DMD не является свободным.

    А насколько я знаю, компилятор dmd распространяется по лицензии BSL-1.0

     
  • 5.64, glebiao (ok), 11:07, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    несвободная часть была "отпущена" владельцем (Symantec?) в прошлом году (или даже ранее, точно не помню)
     
  • 3.63, glebiao (ok), 11:06, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Rust это язык с другими целями, причём поддерживаемый крупной компанией и находящийся на волне хайпа. Хотя последнее уже начинает спадать.

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

    D ставит другую задачу: дать инструмент *быстрого* написания достаточно надёжного и шустрого кода.

    Есть обоснованные надежды, что общая стоимость(*) кода общего назначения на D должна быть существенно ниже, чем аналогичного кода на C++ или Rust.

    (*) включая "стоимость" (во всех смыслах) времени разработчика, времени отладки и затрат на ревью и рефакторинг

     
     
  • 4.80, Аноним (80), 17:37, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > поддерживаемый крупной компанией

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

     

  • 1.46, J.L. (?), 17:47, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вообще весьма интересно
    https://wiki.dlang.org/Build_D_for_Android
    "Build D for Android"
    "Build a sample OpenGL ES 1.0 GUI app ported to D"
     
  • 1.57, Zunek (?), 22:47, 05/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нехватка UFCS для методов класса/структуры немного напрягает. Замечальный язык, беда лишь с написанием binding-ов, особенно если одна внешняя библиотека в аргументах функций/методов хочет типы из другой библиотеки.
     
     
  • 2.77, Crazy Alex (ok), 15:23, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, круче UFCS, чем в D, кажется, нигде нет. А что за кейс такой у вас?
     
     
  • 3.81, Zunek (?), 22:15, 06/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да просто на хватает. Есть структура, которая имеет индекс внутри что ссылается на элемент массива с другими структурами... И так несколько раз, естественно это просто данные из файла которые неким образом сходные с реляционной базой данных. Из этого следует что один тип не имеет смысла без массива с другими типами. При помощи UFCS, с методами класса который хранит все эти массивы, можно было бы организовать виртуальное свойство которое возвращает данные на которые ссылается структура. Не хочется разделять DiskType и MemoryType где это возможно сделать простыми указателями, а так индекс есть - вперед. Наверное я немного запутал... Для явного примера можно посмотреть типы данных в файлах BSP от серии игр Quake/Half-Life. Не то чтобы это сильно горит, но в D столько удобных вещей, что отсутствие данной просто удивляет.
     
     
  • 4.87, glebiao (ok), 07:51, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/

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

    DIP оформлен? что ответили? :)

     
     
  • 5.88, Zunek (?), 09:55, 07/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Где-то я читал что это было сделано специально, ибо UFCS для методов может внести "неясность" ТМ. Но добрые люди показали как-то трюк (уже забыл как он выглядит, нужно будет Discord пнуть еще раз) который через хитрую схему позволяет UFCS для них, но это было весьма не так удобно. Может действительно DIP всунуть, или попробовать компилятор помучить...
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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