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

Re: Нужен ли bash



На Mon, 15 Sep 2008 11:50:41 +0400
Alexey Pechnikov <pechnikov@sandy.ru> записано:

> Hello!
> 
> В сообщении от Sunday 14 September 2008 23:25:14 Stanislav Kruchinin 
> написал(а):
> > Python/Ruby/Perl сложнее, их знают значительно меньше людей, чем
> > тот же shell. Поддерживать сложную, но быструю систему
> > инициализации мало кому охота. Нестандартные системы инициализации
> > хороши только в десктоп-ориентированных дистрибутивах,
> > предназначенных только для того, чтобы в чем-либо догнать и
> > перегнать Windows. Дистрибутиву, который в основном используют на
> > серверах, которые мягко говоря не часто перезагружают, все эти
> > гонки за скоростью загрузки ни к чему. Для Debian более полезно
> > будет устранить ошибки в init-скриптах из пакетов, т.к. с ними есть
> > проблемы.
> 
> Как раз шелл _знают_ значительно меньше людей, чем Python/Ruby/Perl -
> в этой рассылке периодически появляются вопросы касаемо шелловских
> скриптов, почему-то по остальным языкам не возникает вопросов вида
> "как отрезать имя файла или расширение" и т.п. Понятно, что вызвать
> sed для обработки многогигабайтного дампа базы разумно, но для
> обработки имени файла вызов sed выглядит мягко говоря неоправданным,
> и тем не менее, в множестве шелловских скриптов sed зачастую
> вызывается для обработки одной строки - код это делает весьма
> муторным.
> 
> Скорость загрузки мне вообще не кажется значимым параметром. Но вот
> устранить ошибки явно проще в килобайтном тиклевском скрипте, чем в
> 10 - 100 килобайтном шелловском. 
> 
> Best regards, Alexey.
> 
> 

А баш выучить не трудно, да и Ruby тоже. :-P
Вот отрывок моего jabber бота на Ruby:

m.on_message { |time,nick,text|
  print_line time, "<#{nick}> #{text}"
    unless time
    # Bot: exit please!
    if text == "exit please!"
        puts "exiting"
        m.say("Меня кикнули. :-(")
        m.exit "Exiting on behalf of #{nick}"
        mainthread.wakeup
    end

Сделал его без знаний самого Ruby (интуитивно) -> так как знаком с
С/C++. Код основан на libxmpp-ruby (что-то типо того... входит в Debian
4.0 etch). А bash - это альтернатива системного интерпретатора. Это
стандарт. Но можно заменить другим Shell'ом. Например sh, сsh и так
далее. Я думаю что будут появляться много направлений. Часть
дистрибутивов дебиан будет основана на init скриптах bash, а часть на
каких то других скритах. Как обычно. Дистрибы же развиваются в
геометрической прогрессии. ;-)

-- 
Курю CAMEL и программирую GTK+ прогу. Развиваю мозг, а доктор GLADE мне
помогает! >:P ...t$> g++ -x c++ object.cpp -o object


Reply to: