[devel] Языковые экосистемы

Андрей Бергман vkni на yandex.ru
Сб Мар 10 07:53:24 MSK 2018


Ну в данном случае надо разделять пользователя и разработчика.
Мало кто всё-таки склонен таскать всё-с-собой windows-style для
каждого пользователя отдельно. Каждый пользователь Sisyphus'а
 в основном пользователь всех этих языковых систем, и изредка - 
разработчик какой-то одной, ну двух.

У части систем есть lts релизы - texlive, stack (Haskell), opam switch (Ocaml).
Т.е. можно засовывать в компонентный репозитарий Sisyphus именно этот
lts релиз. Это, конечно, не cutting-edge, но вполне разумно-свежий сборник,
подпиленный мейнтейнерами языкового репозитария.

Некоторая проблема возникает в том, что часть этих экосистем
требуют общих библиотек (binding'и). И эти библиотеки могут конфликтовать.
Гипотетический пример: GSL старой версии требуется для последней версии OPAM'а,
а для Python'а уже нужна самая свежая версия GSL.

Т.е., возможно, придётся реализовывать механизм альтернатив по
общим библиотекам.

Кроме того, языковые репозитарии "дышат" - у них меняются внутренние
зависимости, какие-то пакеты уходят в deprecated и поэтому должны быть
удалены из Sisyphusa автоматом.

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

Андрей.

05.03.2018, 20:12, "Eugene Prokopiev" <enp на itx.ru>:
> 3 марта 2018 г., 16:02 Igor Vlasenko написал:
>
>>  ... ранее
>>  большинство языковых экосистем у нас были представлены
>>  только базовым компилятором или интерпретатором и ограниченным набором
>>  основных библиотек. На самом деле такая ситуация не очень
>>  хороша. Это как дать пользователю базовую систему
>>  (ядро+shell+cc) и сказать, а дальше собирайте сами.
>>  Тем не менее, большинство предпочтет полноценный дистрибутив
>
> Вот в этом месте ошибка. Большинство предпочтет тот способ, который
> рекомендует апстрим. Апстримы рекомендуют maven/gradle, npm/yarn,
> rubygems, cpan и прочие pip/virtualenv для библиотек, а еще
> sdkman/nvm/rvm и т.д. для выбора рантайма
>
> Разумеется, этот способ плох: мы тянем артефакты из чужого репозитария
> (а там свои тараканы), вдобавок некоторые еще и компилируем. Но у
> этого способа есть критически важное преимущество - он работает.
> Тысячи пакетов к любой языковой экосистеме в Сизифе не работают, а
> просто лежат мертвым грузом (хорошо, не к любой, но к актуальным для
> меня java и python, возможно в случае ocaml или texlive все иначе).
> Как только дело доходит до запуска прикладного ПО, которое умеет
> делать что-то полезное (от eclipse до webvirtmgr или собственно
> packages.altlinux.org :) ) - увы :(
>
> Для большинства полноценная поддержка языковых подсистем - это (в
> порядке убывания значимости):
>
> 1) актуальная версия компилятора/интерпретатора и прочих инструментов в Сизифе
> 2) работающая возможность установки библиотек рекомендуемым апстримом
> способом (т.е. не из Сизифа)
> 3) опакеченное в Сизиф популярное прикладное ПО на этом языке
> 4) возможность пользоваться Сизифом вместо родного для этого языка репозитария
>
> Да, еще (0) - возможность поставить хотя бы официальный пакет с сайта
> апстрима, если в Сизифе версия (как оно часто бывает) протухла ...
>
> Все это прямо таки взывает к призраку старой идеи о разделении Сизифа
> на компоненты. Даже формулировка полиси напрашивается: языковая
> экосистема может появиться в базовой части Сизифе тогда и только
> тогда, когда она в состоянии обеспечить сборку и поддержку
> необходимого для базовой части прикладного ПО на своем языке (в объеме
> не большем, чем необходимо для этого самого прикладного ПО), иначе она
> должна быть удалена из Сизифа. perl/python/lua похоже, проходят ценз,
> java/ruby/ocaml/nodejs/texlive с высокой вероятностью вылетают в
> дополнительные компоненты, в совсем отдельные компоненты вылетают
> тысячи импортированных библиотек, ценность которых стремится к нулю
> (потому что пользователю компонента java с высокой вероятностью не
> потребуются тысячи java-библиотек) ...
>
> Может большая часть обсуждаемых проблем сборочницы - это проблема
> отсутствия компонентов (не обязательно привязанных к языковым
> экосистемам, они просто под руку подвернулись)?
>
>>  Но сейчас ALTLinux вырастает из детских штанишек,
>
> Мне кажется, что сейчас мы больше обсуждаем автоматизацию смены
> памперсов ... Тоже полезное дело, однако рост выглядит иначе:
> упоминание ALT на апстримных страничках установки языковых экосистем
> как минимум и рекомендация там же использовать Сизиф уже как максимум.
>
> --
> WBR,
> Eugene Prokopiev
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel


Подробная информация о списке рассылки Devel