>>> Что ты называешь "нормальным" ООП? Как в java? Как в C++? Как
>>> в Haskell? Как в gtk? Какой из ООП нормален?
>> ООП с наследованием, где методы и свойства наследуются автоматически.
> Deref/DerefMut тебе в помощь.И где тут автоматическое наследование? Всё же руками приходится делать, не?
>> ООП в низкоуровневых языках - это всего лишь синтаксический сахар.
> Дайте мне определение синтаксического сахара. Всё это синтаксический сахар. asm -- это синтаксический сахар над бинарным представлением машинного кода, позволяющий не считать адреса и смещения вручную.
Да.
>Python -- это синтаксический сахар над интерпретатором, позволяющий дёргать те или иные функции интерпретатора.
Нет. поскольку питон - язык интерпретируемый.
> Если ты нашёл свой комп на помойке, то что ты вообще делаешь в разработке ПО? Не, ну реально.
Так и запишем - "вход только для потреблятелей".
> Тут вполне нормально и регулярно приходится пересобирать половину системы только для того, чтобы иметь отладочную информацию к ней, и иметь возможность протрейсить выполнение программы внутрь библиотеки, чтобы понять почему оттуда вылетает сегфолт.
> Я пользуюсь генту, потому что тут без проблем можно отладочную информацию складывать рядышком с библиотеками и бинарями и подгружать её по мере необходимости, если я нечаянно закопался в какую-то библиотеку, про которую впервые слышу. Если бы этого не было, я бы давно забил на всё и вернулся бы в слакварь устанавливать программы при помощи make install.
Так и запишем - "не смогли реализовать хранение отладочной информации во внешних файлах и подгрузку по мере надобности, даже имея перед глазами готовую и отполирванную реализацию от Microsoft".
>> Современный язык должен уметь в бинарные пакеты-модули. Без исходника, без многочасовой сборки. При этом линарные пакеты должны быть обязательно подписаны приватным ключём автора.
> А, ты о том, чтобы _пользоваться_ компьютером, быть пользователем и ставить программы себе в систему? Не о том чтобы разрабатывать?
Нет, я и о разработке, и о пользовании. Потому что разработка включает в себя использование. И пересобирать мир для этого не надо. Проприетарасты это поняли и реализовали первыми, почему до адепты СПО страдают фигнёй, пересобирая мир, мне тоже понятно: потому что в отличии от проприетарастов, которым клиенты платят деньги в том числе за сервис, у спошников каждый сам за себя и некоторым даже бинарные пакеты через спонсируемый корпорациями CI распространять западло.
> В задачи cargo не входит быть системным пакетным менагером. Чтобы устанавливать программы тебе следует пользоваться apt или что у тебя там стоит. То есть cargo -- это просто другой инструмент, если он попадает в класс пакетных менагеров, это не значит, что он задуман как замена для apt или emerge.
По-моему все пакетные менеджеры, которые я встречал, глубокь ущербны.
>> * сделать пакеты не так уж и трудно. У дебиана конечно просто
>> отвратительный инструментарий для пакетирования, но есть на ГХ один репозиторий с лучшим инструментарием, который дёргается из питона, а не из баша.
> В случае rust'а -- это не так. Nightly, beta и stable сосуществуют.
> Фиксы идут во все три ветки. Stable лучше чем nightly в плане стабильности и надёжности. Более того, ты можешь столкнуться с проектом, который под nightly не работает. Последнее время таких breaking changes немного, и как правило работает, но всё же есть вполне неиллюзорные шансы.
Именно поэтому надо выпилить стейбл и бету - они развращают разработчиков. Если что-то сломалось в пакетах в результате запланированного изменения API, значит это проблема пакета. И её по любому придётся исправлять, если пакет не выброшен на свалку истории: когда-то nightly станет stable, stable станет obsolete dino shit, и пакет - вместе с ним, потому что с новым stable он будет несовместим, с новым nightly и подавно, и править всё это придётся пользователям, которым больше всех нужно, при этом создавая свой форк, потому что остальные предпочтут не закрывать свою гору технического долга, а объявить дефолт и сказать "мы сидим на на старой версии, новая не нужна". Проходили уже с python 2 такую хрень. В отличие от раста в питоне есть 2to3 и изменения косметические, пофиксить элементарно, в расте скорее всего либа так и останется непофикшенной, то есть фактически исчезнет, соответственно будет ещё один аргумент в пользу "в гробу я видал этот хипстерский раст". Поэтому фиксить несовместимости с самой новой версией нужно как можно раньше и пользоваться преимуществами nightly.
> Потому что есть много чего зависимого от тулчейна. Все библиотеки, например, должны быть перекомпилированы под каждый тулчейн: windows сборка пакета для x86 бесполезна для unix'а нarm64.
Библиотеки-то да, я говорю про тулчейн.
> Затем, разные версии rustc имеют разные возможности.
> У них есть общности, типа llvm (в смысле той прослойки llvm которая между фронтендом и бекендом), но это маленькая прослойка, на фоне всего остального.
Я имею в виду что со CLangом не нужен десяток тулчейнов, нужен 1 шланг + стандартная библиотека для платформы. Один и тот же шланг строит и под винду используя MinGW, и под винду, используя msvcrt, и под линукс x86, используя мюсл, и под ведро, и под карты NVidia, и под карты AMD и под айфоны. Почему так не сделано для раста?