[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Нужен ли bash



On Sun, Sep 28, 2008 at 11:46:41PM +0400, Dmitry E. Oboukhov wrote:
> смотри: ты говоришь "это неправильно поскольку не будет работать"
> я прошу пример
> ты начинаешь что-то про ssh
> я спрашиваю "в линуксе другой ssh? или в линуксе он не работает?"

Да, в линуксе другой ssh, сколько раз ещё это повторить?

> ты не видишь смысла продолжать разговор.

Трудно говорить с человеком, который никогда не разрабатывал переносимое
ПО и долдонит свое, совершенно не понимая приводимых аргументов.

> AK> ssh НЕ БУДЕТ РАБОТАТЬ с
> AK> линуксовым getopt,
> но работает? работает
> читд а то как он там внутрях реализован дело десятое если разработчики
> ssh сами парсят опции то это значит что getopt их не устроил никакой

Их устроил getopt из BSD, который работает как предписывает стандарт.
getopt в линуксе работает по-другому, нестандартно. Следовательно, им
приходится носить с собой свою реализацию, чтобы иметь возможность
работать в линуксе. Ты понимаешь, что своя реализация применяется только
в линуксе, в BSD работает системная?

> AK> т.к. этот getopt не соотвествует стандарту и под него
> AK> надо специально адаптироваться.
> стандарт тут вообще не при чем

А что тут причём? Почему бы не "улучшить" ещё пару функций: open, fread,
strncmp? Тогда каждой программе придётся с собой переть целую libc,
только ради того, чтобы по-человечески собираться в линуксе. Стандарты
существуют ради того, чтобы программисты имели возможность писать
кроссплатформенные программы.

> AK> И примеров таких программ, которые не смогут нормально работать с getopt
> AK> из glibc, можно привести множество. Это все программы, с синтаксисом
> AK> командной строки вида
> эти все программы под линуксом РАБОТАЮТ. как это решается внутри них
> мало кого волнует, важно что этих программ на фоне остальных -
> считанные проценты, а остальные теперь стали гораздо УДОБНЕЕ в
> использовании

Это феерическая глупость. Ради новой возможности сомнительной полезности
сломана переносимость. Причём ломать было абсолютно необязательно, эту
функцию можно было сделать опциональной и каждый программист мог бы её
самостоятельно включить, если она безопасна для его программы. Однако
такое поведение было включено по-умолчанию. Тот же getopt из BSD тоже
имеет расширения, но использовать их никто не заставляет.

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


-- 
Andrey V. Kiselev
ICQ# 26871517


Reply to: