LINUX.ORG.RU

dub 1.0

 , dub


1

8

Состоялся релиз dub 1.0 — пакетного менеджера и системы сборки для языка программирования D.

Основные изменения:

  • реализована поддержка однофайловых пакетов, включая поддержку скриптов с #!;
  • компилятор DMD в официальных сборках обновлен до 2.071.0;
  • удалены все устаревшие возможности из API, интерфейса командной строки и форматов данных;
  • теперь для использования на OS X необходима версия ОС 10.7 или выше;
  • dub переведен на использование std.stdio вместо std.stream;
  • исправлено множество ошибок.

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

★★★★★

Проверено: Falcon-peregrinus ()
Последнее исправление: cetjs2 (всего исправлений: 5)
Ответ на: комментарий от anonymous

А может и больше. Сейчас таких не осталось. Все ниши заняты.

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

Ну занято, так занято.

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

Опять таки - тыскозал?

Это просто смешно. Ну давай объясню: D излишне похож на C++, но по факту несовместим даже на уровне исходников. То есть толку от похожести ноль. D поддерживает ручное управление памятью, но библиотека зависит от GC, так что толку от этой поддержки ноль. D фиксирует размер типов типа int для переносимости, но вводит аппаратно-зависимый тип real и в качестве средства для чтения и записи бинарных данных предлагает забить на порядок байтов и читать напрямую в память, так что толку ноль. И так во всём.

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

Ну давай объясню: D излишне похож на C++

А еще на джаву, шарп и питон. И что?

То есть толку от похожести ноль.

Вах, какой аргумент!

но библиотека зависит от GC

В каком месте?

GC требует операция new, конкатенация строк и массивов и делегаты. Берешь и заменяешь на аллокаторы если тебе не нужен GC. Вместо стандартного string берешь String (который устроен на подсчете ссылок), вместо стандартного массива берешь std.container.array, который опять таки считает ссылкию

но вводит аппаратно-зависимый тип real

дабл и флоат есть. Не нужно - не используй. Ты еще на блоки условной компиляции пожалуйся - там на version(x86), или version(linux). Или на import core.sys.posix - ну а че, некроссплатформенно!

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

Ну, тип-суммы есть и в D если че

Из нет. Вариант из D - это просто позор какой-то.

Разве что паттерн-матчинга нет. Я так и не понял правда, что это такое и зачем это нужно, выглядит все равно как свитч (который в D вообще продвинутый, и к примеру там можно писать диапазоны)

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

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

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

Ну занято, так занято.

Ну и объясни почему ты сравниваешь машину с мельницей а не с лошадью? C++ из другой ниши. И только перед ним у D есть преимущества.... но ниша то другая.

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

И только перед ним у D есть преимущества.

Как по мне - у D куча преимуществ перед жабой и питоном.

но ниша то другая.

Ниша головного мозга какая-то

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

Как по мне - у D куча преимуществ перед жабой и питоном.

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

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

но ниша то другая.

Ниша головного мозга какая-то

Люди не задумывающиеся о «целевой аудитории» :) обречены на неудачу.

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

При чем тут вообще питон?

При том, что у питона есть юзабельный биндинг к Qt, а у ди - нету.

Qt заточен на свои велосипеды - которые были запилены, потому что кресты - шлак.

И чо?

А в D все это нахрен не нужно.

Не пользуйся.

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

А еще на джаву, шарп и питон. И что?

То, что в C++, например, слово auto было использовано потому что список ключевых слов давно зафиксирован. Использование его вместо var, val или let в D - это пример бездумного и бестолкового копирования. Зачем тянуть чужое уродство, если проку от этого копирования ноль?

Берешь и заменяешь на аллокаторы если тебе не нужен GC. Вместо стандартного string берешь String (который устроен на подсчете ссылок), вместо стандартного массива берешь std.container.array, который опять таки считает ссылкию

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

дабл и флоат есть. Не нужно - не используй.

Есть C/C++ в котором все типы платформозависимы, есть java, в которой типы фиксированы для переносимости и даже бинарное чтение спроектировано так, чтоб не запнуться неожиданно за порядок байтов платформы, а есть D, в котором вроде так, а может и нет. В этом плане даже C переносимее: если написал int32_t, то понятно, что нужно в этом месте ровно 32 бита и именно их и получишь.

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

Про целевую аудиторию я уже ясно все сказал. Универсальный язык, ниша - те, кто пишет на java/c++/python и хочет более удобный инструмент.

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

свитчнуться по строке нельзя разве что в Java

Можно начиная с Java 7, которая вышла 5 лет назад.

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

Зачем тянуть чужое уродство, если проку от этого копирования ноль?

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

D, в котором вроде так, а может и нет

Там типы фиксированы.

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

у D куча преимуществ перед жабой

Да, таких преимуществ куча, пока GC отключен. А затем GC необходимо включить - и все преимущества внезапно превращаются в тыкву. Не пытайтесть соперничать с JVM на ее поле - не надо.

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

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

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

В ди даже есть специальная опция компилятора, которая на каждое место, где будет необходим ГЦ - выдавать варнинг, так что при необходимости - код можно писать и без него, просто он будет другим. Ну и @nogc

Зачем тянуть чужое уродство, если проку от этого копирования ноль?

Эээ, я не понял - это ты типо агришься, что взяли auto и придется писать 4 буквы вместо 3х? Ты серьезно???

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

и все преимущества внезапно превращаются в тыкву

Например?

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

Про целевую аудиторию я уже ясно все сказал. Универсальный язык, ниша - те, кто пишет на java/c++/python и хочет более удобный инструмент.

Как бы помягче выразиться. Ты сказал что Мельница, Ракета и Трактор вполне заменяются вот эти удобным погрузчиком. Это 3 разных ниши. Очевидно ты вообще не понимаешь о чем говоришь.

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

Ты сказал что Мельница, Ракета и Трактор вполне заменяются вот эти удобным погрузчиком

Попрошу ссылку на пост, в котором я что-то говорил про мельницу, ракету и трактор.

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

Это 3 разных ниши

Шо, правда?

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

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

Там типы фиксированы.

Фиксированы. Кроме real, который максимальный доступный платформе. Вроде в x87 это были 80битные, в SSE и AVX 64битные, так что, чисто теоретически, размер может меняться даже в рамках одной платформы. В итоге и тут ни рыба, ни мясо, и платформозависимости для какого-нибудь эмбеддеда нет, и переносимость тоже не гарантирована.

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

Что ты имеешь в виду под поддержкой ООП? В Rust есть все кроме наследования от неинтерфейсов, которое уже давно признано harmful и не рекомендуется использовать и в других языках.

Си - портабельный ассемблер с минимальным сахаром, он останется жить и Rust ему не конкурент. Java тоже будет жить.

Читая документацию Rust у меня складывается впечатление, что это язык-рефакторинг C++: грабли выпилены, best practice отражены в синтаксисе и библиотеке, самые недостающие фичи запилены, самые трюкастые и не особо нужные фичи выпилены в пользу простоты.

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

Вместо стандартного string берешь String (который устроен на подсчете ссылок), вместо стандартного массива берешь <еще какие-то костыли>

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

А Java, Go и Rust стоят в сторонке и смотрят на данные потуги этого недоязычка с недоумением. Единая экосистема - это очень и очень хорошо. У C++ таковой нет по веским причинам. У D - ну просто так сложилось.

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

Шо, правда?

Ерничениье не поможет скрыть твою глупость.

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

Э... Как бы помягче выразиться. Поменять одно на другое могут только в редких случаях. Когда программа переросла уровень или изменила назначение. Типа прототипирования на Python и переписывания на C. Или Разработка на Java, уперлись в требования работы с железяками или необходимости огромных ресурсов и перепесилаи на C.

Остальные переходы - это неправильный изначальный выбор без учета ниши.

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

Читая документацию Rust у меня складывается впечатление, что это язык-рефакторинг C++: грабли выпилены, best practice отражены в синтаксисе и библиотеке, самые недостающие фичи запилены, самые трюкастые и не особо нужные фичи выпилены в пользу простоты.

И главное часть ниши ( :) думаю тут уже бесятся от этого слова) с C++ пересекается.

Думаю лет через 10-15, когда на пенсию пойду :), он дозреет.

Буду его как замену шахматных задач и кроссвордов использовать. :)

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

Ясно. Начались переходы на личность. Пора переставать кормить.

А по твоему «Шо правда?» Это не переход на личности? Иди - душь прими.

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

Не слушай анонимуса. О преимуществах есть куча статей, в т.ч. на русском (в т.ч. на Хабре). Он как раз для некоторых конкретных задач может оказаться хорошим выбором.

А если сомневаешься - пиши на Common Lisp и не парься.

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

Фиксированы. Кроме real, который максимальный доступный платформе

Ну тут ты придираешься, по моему. Если на то пошло, то есть ещё size_t и ptrdiff_t - тоже размер зависит от платформы. Но ведь это бывает нужно.

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

Гм. Теперь мне все окончательно стало ясно.

Удачи.

Умница, дайте таких джва.

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

прототипирования на Python и переписывания на C

Это достаточно реалистичный вариант, только скорее всего переписываться будет только часть логики (иначе слишком долго/дорого).

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

Это бред и такого не бывает. Если на данной железке завелась OpenJDK, то с поддержкой такой железки далее все будет хорошо. Если не завелась - то Java в проекте не будет изначально. Про необходимость огромных ресурсов - это хипстерские причитание фейсбукеров, которые не хотели жабу для своей инфраструктуры - потому что она жаба (и выбрали они уж точно не C). В гуглах/твитерах используют жабу в огромных количествах и не жужжат.

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

Растаманы - как из раста дернуть код на крестах?

Никак. Только заворачивать в экстерн С.

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

переносимость тоже не гарантирована

Её можно самому себе гарантировать. Вообще, это норма для нативного языка - иметь и фиксированные типы, и платформозависимые. От всяких size_t, один фиг, никуда не денешься.

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

Ты это как недостаток что-ли расписываешь? Скачать и поставить .NET - дело 5 минут (или 4, если скачать и носить вместе с программой). В чем проблема-то вообще? Или ты и на Линуксе пользуешься только тем, что ставится с диска?

конечно. обратная совместимость - это правило хорошего тона, особенно для framework, который является базовым в системе. а поставить за 5 минут... это если тырнет есть, и канал хороший. а бывает еще что этот .NET тупо не ставится, или что для 30-килобайтной программы нужно тянуть несколько мегов нета... а еще бывает что интернета нет совсем, или он за проксёй, которую нетовая качалка не понимает. короче гемора с ним можно отгрести столько, что мало не покажется

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

как из раста дернуть код на крестах

Реалистичный пример такого кода можно? У подавляющего числа библиотек plain-C API. Если это монстр вроде Qt, то наверняка что-то готовое есть. Если in-house крестовая библиотека - то 100500 вариантов, начиная с ее переписывания на Rust.

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

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

Я и говорю: бестолковая фича. GC или его отсутствие - это слишком серьёзное отличие, чтоб делать его опциональным. Это, фактически, 2 разных языка получаются.

Эээ, я не понял - это ты типо агришься, что взяли auto и придется писать 4 буквы вместо 3х? Ты серьезно???

А кроме количества букв никаких причин для агра не видишь? Ну, скажем, почему мне не понравилась бы замена auto на fj, хоть последнее набирать удобнее?😂 Случай с auto - это пример бестолковости самой философии языка D, автор никак не смог определиться умный он или красивый, а также слишком страдал от деревенского синдрома «не хуже чем у людей», в итоге и получилось чудо, ничем не примечательное, не целостное, совершенно ненужное.

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

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

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

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

Спалившийся знаток о себе в 3-ем лице. Совсем с дуба рухнул.

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

При чем тут пакетный менеджер. Велиспедисты велосипедят систему сборки очередную(на этот вопрос я анониму уже отвечал). На вопрос нахрена никто не отвечает. NIH синдром?

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

тут смотри как сделаны биндиги в питоне.
ещё было что-то на карго.ио, какая-то обертка.

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

А ты предлагаешь взять жабью систему сборки? Мейвен какой-нибудь? И наслаждаться xml-дрянью?

Или как ты предлагаешь собирать проекты? А dub написан на d, без виртуальных машин и ни от чего не зависит.

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

совершенно ненужное

Ну, не совсем. Если их хвалёное взаимодействие с крестами - не утка, то сообщество ди ещё может собраться, сделать биндинги к Qt и попробовать немного подвинуть кресты в нише кроссплатформенного десктопного софта.

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

Как и С, и С++ и много чего. Че makefile использовать религия не позволяет? Тем более если они стремятся занять место плюсов в системе. Да народ просто не посмотрит в их сторону если ради непроверенных фич языка придется переворачивать с ног на голову весь билд процесс.

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

Ну, не совсем. Если их хвалёное взаимодействие с крестами - не утка, то сообщество ди ещё может собраться, сделать биндинги к Qt и попробовать немного подвинуть кресты в нише кроссплатформенного десктопного софта.

Чем они лучше Python c Qt или Java?

А так да. Фича. Но как кто-то здесь заметил. Для одного конкретного компилятора. Жесткое ограничение. Понятно, что тут проблема скорее C++. Но все же.

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

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

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