From: "Андрей Бергман" <vkni@yandex.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] Языковые экосистемы
Date: Sat, 10 Mar 2018 07:53:24 +0300
Message-ID: <4278121520657604@web4o.yandex.ru> (raw)
In-Reply-To: <CANM4RujAuAVkfdUJuWzCR83u3dMm_BMrq-K=J+jdooHkqQ4Pnw@mail.gmail.com>
Ну в данном случае надо разделять пользователя и разработчика.
Мало кто всё-таки склонен таскать всё-с-собой 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
prev parent reply other threads:[~2018-03-10 4:53 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-05 17:12 Eugene Prokopiev
2018-03-06 9:43 ` Paul Wolneykien
2018-03-09 18:01 ` Vladimir D. Seleznev
2018-03-09 21:16 ` Yury A. Romanov
2018-03-10 0:34 ` Vitaly Lipatov
2018-03-06 12:33 ` Igor Vlasenko
2018-03-10 4:53 ` Андрей Бергман [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4278121520657604@web4o.yandex.ru \
--to=vkni@yandex.ru \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git