On Tue, Oct 01, 2019 at 06:10:05PM +0300, Andrey Jr. Melnikov wrote:
> Vladimir Zhbanov <vzhba...@gmail.com> wrote:
> > On Sun, Sep 29, 2019 at 10:50:02PM +0300, Andrey Jr. Melnikov wrote:
> > ...
> > > PS: Спор то ниочем. Из всех шеллов, которые есть в природе - 95% замшелый 
> > > шлак,
> > > сохраняющий совместимость с тем, что уже давно померло. Да, это наверное
> > > круто, что написанный сейчас xdg-open можно запустить на тазике 1992 года
> > > выпуска. Только вот нахрена? И что он там сделает?
> 
> > Если бы все люди предпочитали одинаковые горшки :-( Но кто-то
> > запускает ту же самую хрень на Debian, кто-то на Gentoo, Guix,
> > *BSD... А потом боремся с башизмами.  И сколько времени и нервов
> > тратится...
> 
> Тут всё наоборот. Есть "одинаковые горшки" - POSIX. И его адепты. 
> 
> Одни ходят в крестовые походы против bash'измов/xsi'змов и прочих расширений 
> - 
> ибо ересь и нестандарт.
> 
> Другие - академично написали по POSIX-compliant shell 20-30 лет назад и
> теперь его поддерживают, сдувая пыль и паутину. Отклонениния от POSIX -
> ни-ни, ересь! Вторая вариация - "минимальные" шеллы из busybox & co. 
> 
> Третьи - пишут на всём этом скрипты, бережно сохраняя совместимость с
> замшелыми комерческими юниксами, busybox'ами и прочей теоретически
> встерчающейся в природе фигней.
> Только вот их скрипты там никогда не будут запускаться.
> 
> PS: Вот хорошая ссылка про bashism's: https://mywiki.wooledge.org/Bashism
> можно посчитать, сколько нужных вещей отсутсвуют в POSIX (и dash).
> А если вчитаться в
> https://askubuntu.com/questions/976485/what-is-the-point-of-sh-being-linked-to-dash
> и https://wiki.ubuntu.com/DashAsBinSh то упорная борьба с башизмами
> напомниает "армянский комсомол" (тм).
> 

Да проблема не в bash itself, а в том, что есть куча людей (и
дистрибутивов), которым он как шёл, так и ехал.  В нашем проекте
(см. ниже) то и дело всплывают проблемы у людей, которые юзают
другие шеллы, или если в их дистрибутивах другие оболочки являются
умолчательными. Проблемы появляются то из-за башизмов, где другие
оболочки используются, то из-за гнутых расширений в не-гнутых
дистрибутивах.  И чё с этим делать в ближайшей перспективе (~50
лет :-)) -- неизвестно.  POSIX -- да, как вариант, со всеми его
замшелостями.  Иначе, нагрузка поддержки ложится на маинтейнеров.
Но нафига бы оно надо?  Для себя, как вариант, я выбрал стратегию
уменьшения шелл-скриптов, переписывая их части, где возможно, на
языке из пакетов, необходимых для сборки нашей программы.  В моём
случае Guile Scheme решает многие проблемы лучше *sh, а также
разновидностей *awk, которых тоже представлено немало, и решает их
одинаковым способом, потому-что одна и та же версия при сборке :-)
Млин, выбросить бы ещё autotools куда-нибудь...

-- 
  Vladimir

(λ)επτόν EDA — https://github.com/lepton-eda

Ответить