metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-10-07 04:35 pm

Ненависть к systemd как психическая эпидемия

Напомните мне или дайте ссылку - я уже спрашивал, чего все на systemd так ополчились?
Выглядит, как средневековая эпидемия одержимости дьяволом, все псят, чего псят - непонятно.
Ну, не считая вот этого: http://metaclass.livejournal.com/889197.html?thread=20959341#t20959341 тут, несмотря на теорию заговора, хоть какое-то обоснование имеется.

[identity profile] ext_1684112 (from livejournal.com) 2014-10-08 09:52 am (UTC)(link)
Не читал, но скажу - вместо Баша давно пора втащить что-то нормальное общего назначение, например Lua. Чтобы и отладчик был, и everything is object, и прочие преимущества современных языков. А баш и шелл - пускай на них пузатые бородатики (или бородатые пузатики) пишут, это языки даже хуже встроенного в 1С .

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

О конспирологии - я очень сожалею, что не сохранил две злобные статьи из одного удаленного блога про Линуса вообще и опенсорс в частности. Вкратце "писали люди долго и академично, так и написали бы. Пришел хам-инженегр, быренько сделал кое-каку, теперь с этой кое-какой и окружением нам мучиться до конца жизни, а нормально сделанные системы не воспримут - зачем? у них распространенность меньше, а кое-кака - вот она, одевай свитер и пользуйся".

Кто против - посмотрите-ка на сравнение Postgres и MySql, где постгрес академичен, а MySql - распространенная кое-кака. К счастью, СУБД писать - это не драйвера на коленке лепить, не все инженегры на это способны, поэтому кое-какеры здесь не победили.

[identity profile] berezovsky.livejournal.com 2014-10-08 10:13 am (UTC)(link)
Да, такие статьи лучше сохранять и дублировать по разным местам - почта, бекапы, болванки, на бумагу даже печатать. Очень быстро вычищают из Сети.

[identity profile] dgu92sc.livejournal.com 2014-10-08 05:07 pm (UTC)(link)
березоффский, зачем ты цитируешь букварь?

[identity profile] tzirechnoy.livejournal.com 2014-10-08 12:44 pm (UTC)(link)
> вместо Баша давно пора втащить что-то нормальное общего назначение, например Lua.

Не возражаю. Вот, конкретно против четырёх вариантов возражать не буду: lua, scheme, perl, tcl.
Только пайпы присобачить (можно с другим синтаксисом).

>это языки даже хуже встроенного в 1С .

Ты просто не умеешь их готовить.

>писали люди долго и академично, так и написали бы.

Ни Танненбаум ни хурдовцы -- не написали бы.

[identity profile] ext_1684112 (from livejournal.com) 2014-10-08 01:12 pm (UTC)(link)
>lua,
Я потому пишу про Lua, что он очень компактный, и сможет работать даже во встроенных системах. При этом он весьма производителен, быстрее питона и перла, насколько я знаю. Си-подобный синтаксис, понятен будет вообще всем.

> scheme,

Префиксная запись все ж очень непривычна. Я решал SICP, но писать на этом не хотел бы.

>perl, tcl

Хорошее описание, как мысленно читаются программы на этих двух языках:

Дзынь-чпок-перечпок, тумблер щёлк, 543 фью гипертронный перещёлк. Клымаранг укутан чкрюмб 28, 28, 28, 28 тыргемот употаммм Индира Ганди чпокк. Конец связи. Натакано на Северной железной дороге в 2427 году.

Не надо. Я понимаю, что в 95 году ява не была доступна, а вебню уже трбовалось делать, вот люди и подсели на перл. Но это же в чистом виде импринтинг. Язык нечитабелен. Тикль - ах, у нас есть формочки... знаете, в swing тоже есть формочки, еще формее ваших. Очень уж бородаты (юзерпик витуса видели? оно самое) тикль с перлом. ЧСВ потешить - пойдет, а для массового использования неудобно.

>Ты просто не умеешь их готовить

На уровне "найти все файлы по маске" они еще работают. Дальше начинается черт-те что, EQ, GT, и т.д., пробел не там поставили... просто авторы языка - сисадмины, парсер написать были не в состоянии.

[identity profile] tzirechnoy.livejournal.com 2014-10-08 02:00 pm (UTC)(link)
Это говорит только о том, что лично ты знаешь Си и Lua, и не знаешь (ну, не умеешь) perl, sh, scheme и tcl.

И да, для незнающего человека программа на Си точно такжэ будет выглядеть безсмысленным шумом.

[identity profile] tzirechnoy.livejournal.com 2014-10-08 02:08 pm (UTC)(link)
И да, прикол тикля -- не в формочках. Tk -- это хорошо, но в общем я совершэнно не его имел в виду. Более того, дажэ и не представлял, чтобы загрузка и всякое админство было с Tk.

Тикль, например, один из очень немногих нетипизированных языков (по-моему кроме него был ещё какой-то, сейчас не помню, какой). И у него синтаксис проще scheme (оцэни размер man tcl -- это именно оно).

При этом -- классический язык, императивный (ну, с элементами, но в основе -- да), с близким к классическому синтаксисом (дажэ не perl и не python).

for, while и break, которые можно переписать на самом языке с сохранением семантики -- это прекрасно.

И да, я тожэ бородат и немолод, и мне глубоко плевать на возраст технологии. Для меня тот факт, что язык появился всего 4 года назад -- никак не является плюсом. А тот факт, что что-то распространено у хипстеров моложэ 25 -- вообще не является аргументом (поскольку миллионы мух и всё такое).

[identity profile] tzirechnoy.livejournal.com 2014-10-08 02:12 pm (UTC)(link)
Ещё одно: в 95-ом -- ява была примерно доступна, а редкие люди, делавшые вебню -- делали её на чём угодно. Поскольку технология была очень молодой, и каких-то преимуществ у чего-то не было.

К 2000 -- ява была ужэ доступна во всю, но в общем большынству инжэнеров всё с ней было ужэ понятно. Я, правда, был молодой и глупый -- и кое-что (не web) попробовал написать. Жопорукостью авторов рантайма был сильно удивлён, сам язык не впечатлил ни разу.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 04:26 pm (UTC)(link)
Видите ли, bash далеко не так прост, как кажется. В bash'е, скажем, есть ленивые вычисления - конвееры, есть элементы функциональщины.

Поэтому, если его менять, то менять нужно на что-то явно не масштаба lua.

[identity profile] tzirechnoy.livejournal.com 2014-10-08 07:16 pm (UTC)(link)
В lua как раз всё замечательно с элементами функцыональщины. functions -- first-class, closure есть, tail call optimisation есть.

А пайпы да, нужны. Конечно, необязательно в виде символа |, по сути, конкретно в lua -- хорошо бы дерево выполнения описывать в виде lua table, с каким-нибудь спецыфическим синтаксисом для перенаправлений дескрипторов и очевидным -- для вставки lua-фунцый.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 10:51 pm (UTC)(link)
Нужны не столько пайпы, сколько ленивые вычисления с потоками, а, может быть, и более серьёзными структурами.

У баша же задача склеивать разные кубики в единую систему => если между кубиками идут потоки данных, аналог bashа не должен их накапливать, он должен их легко, почти без обработки, передавать дальше. Это не всегда возможно и с ленивыми вычислениями, но на одних энергичных это вообще не получится.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 10:58 pm (UTC)(link)
Да, ещё желательно иметь всё-таки типизацию, т.к. без типизации особо ничего не поменяется:

1. Замыкания в bash'е очень активно используются лишь в find -exec ...

2. Хвостовая оптимизация для скриптового языка высочайшего уровня вообще неважна (в цикле нижнего уровня обязательно есть запуск программы, а это очень медленно по сравнению с вызовом функции). Разве что предотвращает лишние переполнения стека.

3. Передача функций - см. find: интересна, но не сильно.

4. Опыт PowerShell показывает, что объектно-ориентированность в скриптах имеет отрицательную ценность.

Но с типизацией летит к чертям grep, sed и прочие мелкие утилиты.

[identity profile] permea-kra.livejournal.com 2014-10-09 07:25 am (UTC)(link)
> Разве что предотвращает лишние переполнения стека.

Это достаточно важно, чтобы этого просить. Но и цена соответствующая - отсутствие стэктрейсов многих вгоняет в уныние (я, правда, это понимаю с трудом)
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-09 01:49 pm (UTC)(link)
Это скриптовый язык сверхвысокого уровня. В нём можно реализовать стек хоть на расширяемом массиве - скорость обращения к этому стеку практически неважна. Соответственно, так убирается и переполнение стека.

[identity profile] tzirechnoy.livejournal.com 2014-10-08 07:17 pm (UTC)(link)
Но ничего, во что были бы вменяемо интэгрированы пайпы -- всё равно нет.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 10:47 pm (UTC)(link)
Ну, стало быть, ничего на место баша и не подходит. Просто с пистоном-луа и прочими сями получается пролёт на типичной задаче - конвеере из 3-х программ, гоняющем данные общим объёмом гигабайт в 40.

[identity profile] tzirechnoy.livejournal.com 2014-10-09 07:53 am (UTC)(link)
Добавить пайпы в lua или tcl -- не rocket science нифига.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-09 01:43 pm (UTC)(link)
Нет, разумеется. Но язык, являющийся полным аналогом bash'а не нужен. Стоимость перехода на него будет слишком велика и не будет окупаться фичами.

Т.е. bash может заменить система принципиально превосходящая bash по какому-то важному параметру и не сливающая bash ни на одном другом. Иначе это Wayland vs X11.

Кстати, то же самое относится и к systemd vs SysVInit - выигрыша никакого (я свой ноут не выключаю, а пользуюсь pm-suspend), зато есть геморрой: переобучение, недоотлаженность, плохая ремонтопригодность.

[identity profile] avnik.livejournal.com 2014-10-09 01:00 am (UTC)(link)
и даже хвостовая рекурсия
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-09 01:43 am (UTC)(link)
Это вещь не столь важная скриптовом языке (сверхвысокого уровня), а ленивые вычисления в конвеерах позволяют делать tee, запускать sed/wc/grep на многогигабайтных файлах (и т.п.).

Поэтому замена bash'а на язык без ленивых вычислений обломится очевидным образом.

[identity profile] avnik.livejournal.com 2014-10-09 12:57 am (UTC)(link)
а много ли вы кода на луа написали?

[identity profile] norguhtar.livejournal.com 2014-10-09 03:37 am (UTC)(link)

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

Угу. Люди к примеру в openfirmware используют forth. В целом идея конечно здравая, но смысл в чем? Вот sysvinit частично тоже бинарный и ничего.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-09 01:52 pm (UTC)(link)
Смысл - лучшая ремонтопригодность. Проблема systemd не в том, что это говно, а в том, что у него нет принципиальных приемуществ перед sysVinit'ом. Скорость загрузки? Это смешно.

При этом недостатков масса: необходимость переучиваться, недоотлаженность системы, продолжающиеся изменения в systemd (вы мало того, что должны переобучиться, так ещё и регулярно тратить время на переобучение), плохая ремонтопригодность.

Итого, сплошные минусы.
develop7: (dero)

[personal profile] develop7 2014-10-09 03:43 pm (UTC)(link)
у него нет принципиальных приемуществ перед sysVinit'ом
$ /etc/init.d/smbd status
stopped
$ sudo /etc/init.d/smbd status
running, pid 1234
необходимость переучиваться
это ужасно
продолжающиеся изменения в systemd
да, при царе такого не было