LINUX.ORG.RU
ФорумTalks

Что думаете о проектах suckless?

 , , ,


1

6

Привет ЛОР, хочется узнать о вашем мнении о разрабах по имени suckless, точнее об их детищах вроде st, dwm, dmenu(тоже ведь от них вроде?) и тому подобных. Кто-то о suckless отзывается плохо, кто-то хорошо, а как о проектах suckless отзывается ЛОР - не слышал ни разу

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



Последнее исправление: daniyal (всего исправлений: 1)

Проектами не пользуюсь, только st когда-то пробовал, но с ним были какие-то проблемы.
Сама идея прикольная, типа элитный клуб для хакеров, буквально современный техно-гностицизм.
Тайное знание сишечки и юниксвея дает Спасение от блоатвари, а никчемные массы (гилики) обречены жить и страдать в мире говнястого софта.

vazgen05 ★★★
()
Ответ на: комментарий от vazgen05

Проблема в том что все это выродилось в эмулятор терминала, менюшку, wm и бесполезный браузер. Даже vaxry уже больше успел написать. Из клуба программирования вышел клуб взаимной ментальной мастурбации.

tinykey
()
Последнее исправление: tinykey (всего исправлений: 1)
Ответ на: комментарий от tinykey

Увы, но сама идея-то хороша. Пора делать suckless 2.0?
Меньше жесткого минимализма, больше фокуса на элитизме и высоком пороге входа, фокус на закрытие реальных проблем линукс-юзера?

vazgen05 ★★★
()
Ответ на: комментарий от vazgen05

Увы, но сама идея-то хороша. Пора делать suckless 2.0?

Сама идея так себе. Если патчи просто лежат, значит их никто не тестирует и там баги копятся. Если патчи можно интегрировать – почему бы их не интегрировать и не спрятать под конфигурационными опциями? Это очень странный подход – у нас есть код, мы вроде как говорим что он рабочий, но при этом делаем вид, что его нет в проекте, потому что он в патчах.

Меньше жесткого минимализма, больше фокуса на элитизме и высоком пороге входа, фокус на закрытие реальных проблем линукс-юзера?

Эти вещи расходятся сразу же, потому что элитизм дал нам Wayland с его сраным комитетом, который ни о чем договориться не может. Расхлебываем до сих пор.

tinykey
()
Последнее исправление: tinykey (всего исправлений: 2)
Ответ на: комментарий от tinykey

Мне кажется проблема с патчами именно из-за жескости принципа минимализма. Как будто он больше мешает уже на самом деле.

Эти вещи расходятся сразу же, потому что элитизм дал нам Wayland с его сраным комитетом, который ни о чем договориться не может. Расхлебываем до сих пор.

Да там не тот элитизм, порог входа нулевой, любой юзер может использовать вейленд, просто установив популярный дистрибутив. Вот компиляция для изменения конфигов, чтение документации вместо тыка мышкой, неюзабельный дефолт до настройки это правильный элитизм.
Можно для разработки использовать какой-нибудь обскурный язык, но возможно это тоже перебор.

vazgen05 ★★★
()
Ответ на: комментарий от vazgen05

Мне кажется проблема с патчами именно из-за жескости принципа минимализма. Как будто он больше мешает уже на самом деле.

Да, это всегда так и было.

Да там не тот элитизм

Я о том же. Нет никакой гарантии что элитизм окажется правильный :)

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

Это трата времени ради неясной цели. Правильный элитизм – это когда задача ставится правильно, а решается таким образом, что код остается поддерживаемым и не требует часов компиляции. Внезапно, systemd не самый плохой пример. У меня есть много эстетических претензий, но это моя вкусовщина.

tinykey
()
Последнее исправление: tinykey (всего исправлений: 2)

Пользуюсь софтом от suckless более 10 лет (dwm,st.dmenu) доволен,насчёт разрабов ничего не могу сказать,

xlam
()
Ответ на: комментарий от tinykey

Ну не знаю, systemd слишком много делает, там огромная кодовая база, куча фичей, сложно форкнуть. Короче systemd принадлежит Поттерингу, а не тебе юзеру.

Предлагаю в Suckless 2.0 взять принцип «Власть над кодом, власть над системой», а минимализм будет выводиться из основного принципа.

Власть над кодом

KISS
Быстрая компиляция, запрет на тяжелые зависимости.
Все в исходниках, все должно быть понятно, никаких бинарных блобов.
Кодогенерация допускается, но только тривиальная и без малейшей магии.

Власть над системой

Хакер может за вечерок на пиве разобраться в каждом компоненте системы и пропатчить под себя.
Ничего при этом неявно не сломав, у компонента есть четкий контракт, а не владение всеми возможными фичами вселенной.

В общем минимализм поощряется, но скалируются приложения лучше, можно придумать минимальный suckless blender.

vazgen05 ★★★
()
Ответ на: комментарий от vazgen05

Ну не знаю, systemd слишком много делает, там огромная кодовая база, куча фичей, сложно форкнуть.

А с чем мы сравниваем? В случае с «традиционным» инитом тебе надо форкать около двух десятков утилит, что превращается в такую же сложную задачу. А если тебе нужно запатчить какой-то конкретный компонент systemd, то бога ради – патчи в стиле suckless.

Короче systemd принадлежит Поттерингу, а не тебе юзеру.

Да любая полезная программа принадлежит автору, а не мне, юзеру. Потому что сложность не в коде, а в доменной области.

Хакер может за вечерок на пиве разобраться в каждом компоненте системы и пропатчить под себя.

Если хакер за вечерок на пиве может разобраться в программе, значит доменная сложность вынесена за пределы этой программы и разбираться с ней придется в каком-то другом месте.

Ничего при этом неявно не сломав, у компонента есть четкий контракт, а не владение всеми возможными фичами вселенной.

Или нет, и узнаешь ты об этом только в момент тестирования, когда выяснится, что на неявное поведение кто-то завязался. Вспомни сколько десятилетий(!) люди стандартизировали поведение grep между разными POSIX OS или недавние приключения с uutils.

tinykey
()
Ответ на: комментарий от vazgen05

Кодогенерация допускается, но только тривиальная и без малейшей магии.

Препроцессор, а вместе с ним половина C (где даже наследование делается через container_of, который выглядит как порождение инопланетного хтонического ужаса), вышел в окно.

tinykey
()
Последнее исправление: tinykey (всего исправлений: 1)
Ответ на: комментарий от tinykey

Сама идея так себе. Если патчи просто лежат, значит их никто не тестирует и там баги копятся. Если патчи можно интегрировать – почему бы их не интегрировать и не спрятать под конфигурационными опциями?

Идея только в ограничении количества строк кода. Вот и всё. Патчи это самодеятельность. Те, кто захотел интегрировать, выделились в awesome в своё время. Получился жирный глюкодром (как обычно). А вот dwm почти 20 лет уже работает как часики, там ничего лишнего и нечему ломаться. Хочешь, можно пропатчить до неузнаваемости, но поддерживать всё это добро разумеется автор не планировал никогда. И это правильно. Гномеры тоже расширения не поддерживают.

bread
()
Ответ на: комментарий от vazgen05

Ты описал BSD. Я фрю от нефиг делать патчил вечерами под пивко под себя.

spbzip
()
Ответ на: комментарий от tinykey

Сишный препроцессор в 2025 считается плохой практикой. Советуют писать без него. В plan9, например, (соседний тред) нет ниодного conditional compilation statement’а.

spbzip
()
Последнее исправление: spbzip (всего исправлений: 1)
Ответ на: комментарий от spbzip

Сишный препроцессор в 2025 считается плохой практикой.

Мало ли бреда в интернете.

tinykey
()
Ответ на: комментарий от ugoday

Это ты антисемит, если думаешь, что у них обрезано всё 😉

papin-aziat ★★★★★
()
Ответ на: комментарий от bread

Идея только в ограничении количества строк кода. Вот и всё.

Так их меньше не стало, их просто стало сложнее тестировать. Я понимаю что они верят во что-то другое.

Патчи это самодеятельность.

Они на официальной странице проекта и большинство написано разработчиками.

А вот dwm почти 20 лет уже работает как часики, там ничего лишнего и нечему ломаться.

Если тебе киоск нужен, то да. Все остальное туда добавляется костылями снаружи, которые работают как умеют.

Гномеры тоже расширения не поддерживают.

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

tinykey
()
Ответ на: комментарий от tinykey

Патчи там от кого угодно. Там в рассылку кидали эти патчи, и автор добавлял их на сайт. Многие давно заброшены. Это именно что патчи на коленке, а не какая-то усердная разработка. Как и сам dwm. Другие проекты вероятно такие же. Смысл как раз в том, чтобы не превращать кодинг мелких утилит в цирк с конями срущими мегабайты кода, как любят корпорации.

bread
()
Ответ на: комментарий от bread

Я гарантирую что если dwm станет 6k строк виесто 3k строк не изменится буквально ничего.

tinykey
()
Ответ на: комментарий от daniyal

чем больше хороших программ в истеме, тем лучше, не так ли?

Чем хорошЕе большие программы, тем лучше?

x22 ★★★
()

Что думаете о проектах suckless?

Наверно пойдут людям чисто для изучения линукса, программирования на си или в минималистичных системах, хз. Сам не пользуюсь, это как пользоваться отверткой, когда есть шуруповерт - гораздо более продвинутые и удобные аналоги, gnome-shell, например, терминалы типа ptyxis

masa ★★★
()
Последнее исправление: masa (всего исправлений: 1)
Ответ на: комментарий от daniyal
  1. dwm — не нравится идея тайлинга как такового применительно к системному WM. Чаще всего приложения в тайлингах запускают на отдельных рабочих столах (это уже не тайлинг), не видя альтернативы в стековых WM. Не нравится клавиатурное управление. Минимальная конфигурируемость — это хорошо, но не понятно зачем нужно было зашивать конфиг в исходный код.
  2. dmenu — не нравится сам по себе подход. Почему нельзя запускать из терминала? Да, неудобно, но неудобства можно сгладить, а в замен получить вывод, код возврата, редактирование команды, повторный запуск, однородность интерфейса. Из более мелких претензий: клавиатурное управление, отсутствие запоминания последнего ввода. Забавно, что конфиг не зашит в исходный код.
  3. st — эмуляция терминала как таковая — пережиток прошлого. Текстовые интерфейсы способны на большее. Но st хорош как альтернатива xterm, выбрав путь борьбы с эмуляторами терминала через урезание их функционала до минимума. Это решение имеет смысл, учитывая то, что ncurses как-то надо запускать.
kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 3)
Ответ на: комментарий от alt-tab-let

Дело не в памяти. Когда нет никаких ограничений, код постоянно раздувается и энтузиастам становится всё труднее его контролировать. Начинаются метания: а давайте всё перепишем с нуля, давайте притащим скриптовый язык для расширений, ну и так далее по всем кочкам. А юзер сидит и все грабли собирает. Это работает и в большем масштабе: КДЕ vs гном, например. Как бы я ни ругал гномеров, но они делают рабочий продукт в основном благодаря контролю за размером кодовой базы. Всё избыточное жестко вырезается, фичи добавляются очень дозированно. И этот тяжеловоз потихоньку летит, а не падает через каждые сто метров и переделывается каждые пару лет как у конкурентов.

bread
()
Последнее исправление: bread (всего исправлений: 1)
Ответ на: комментарий от bread

Всё избыточное жестко вырезается, фичи добавляются очень дозированно. И этот тяжеловоз потихоньку летит, а не падает через каждые сто метров и переделывается каждые пару лет как у конкурентов.

Поэтому такая базовая фича как трей ставится через плагин, ага. Который регулярно ломается на релизах. Зато кодовая база маленькая :)))

tinykey
()
Ответ на: комментарий от daniyal

Хороших больших програми не бывает. Чем программа блоатнее, тем она хуже

Ящитаю если все элементы в комбайне неплохо подогнаны, то почему бы и нет? Тот же блендер люди хвалят, я с удовольствием пользуюсь дубль-коммандером который по определению комбайн :)

frunobulax ★★★★
()
Ответ на: комментарий от vazgen05

Пора делать suckless 2.0?

Есть bitreich, но они настолько преисполнились, что существуют только в gopher (в www у них сайт-заглушка)

sn4il
()
Ответ на: комментарий от daniyal

Хороших больших програми не бывает. Чем программа блоатнее, тем она хуже.

Ждем suckless cc, kernel, X, libX11 …

x22 ★★★
()
Ответ на: комментарий от tinykey

Нет никакой базовой фичи. Есть несколько видов костылей, которые придумывали на разных этапах существования линукса. трей еще и 10 лет назад нигде нормально не работал, в гноме одно, в флюксбоксе другое и несовместимое.

Естественно никто это легаси у себя реализовывать не будет, а трей так вообще не нужен, если что.

masa ★★★
()
Ответ на: комментарий от bread

Дело не в памяти. Когда нет никаких ограничений, код постоянно раздувается и энтузиастам становится всё труднее его контролировать.

А когда есть, порой, даже такую базовую вещь, как трей, сделать не могут.

tiinn ★★★★★
()
Ответ на: комментарий от daniyal

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

Недельку-другую помучался, и у тебя есть максимально лёгкий и отзывчивый: терминал, меню, вм

Это какой-то бред, пользоваться терминалом в котором чтобы поменять цвет, нужно исходники править. или меню, в котором надо скрипт ваять просто чтобы история была. Хотя соглашусь, что с простым меню и терминалом, как заменой xterm еще можно смириться, то тот же dwm:

он отлично работает и с пиком, коль кому анимашки нужны, и с xcompmgr если минимальной композиции достаточно, и на голую, если уж совсем ничего этакого не требуется, и работает всё это шикарно

Без композитора не юзабельный — не очень приятно смотреть на разрывы экрана когда окна переключаешь. Да, это синкпад с интел встройкой и нет, TearFree не решил проблему. Вообще это смелое заявление ибо xcompmgr нерабочее фуфло какое-то, а picom течет и жрет проц. Композитинг впринципе нахер не нужен, если WM нормальный, а не калека с протухшими патчами

err
()
Ответ на: комментарий от hateyoufeel

Я хочу увидеть, как чуваки из Suckless породят, например, 3D редактор типа Blender.

Наверное, примерно так, как в 90е 3D-софт делали чуваки из Silicon Graphics?

Посыл ведь не в том, что сложный софт не нужен вообще, а в том, что не надо усложнять то, что делается просто.

Да даже хотя бы бухгалтерскую систему в философии suckless и plan9 нормально родить не получится

Зато есть множество примеров того, как пытаются делать программы домашней бухгалтерии, исходя из концепции профессиональных бухгалтерских систем. Получается просто эталонное suckmore. Вот тут бы немного suckless не помешало бы. Между тем, нормальная программа для этой задачи есть, но она проприетарная и windows-only.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от frunobulax

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

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Наверное, примерно так, как в 90е 3D-софт делали чуваки из Silicon Graphics?

Ты видел этот 3D-софт от Silicon Graphics?

Посыл ведь не в том, что сложный софт не нужен вообще, а в том, что не надо усложнять то, что делается просто.

Что именно делается просто-то? Проекты Suckless не делают почти ничего, от того такие простые.

Да даже хотя бы бухгалтерскую систему в философии suckless и plan9 нормально родить не получится

Зато есть множество примеров того, как пытаются делать программы домашней бухгалтерии, исходя из концепции профессиональных бухгалтерских систем. Получается просто эталонное suckmore. Вот тут бы немного suckless не помешало бы. Между тем, нормальная программа для этой задачи есть, но она проприетарная и windows-only.

Домашняя бухгалтерия – это не бухгалтерская система. Для домашней бухгалтерии тебе емакса с org mode за глаза хватит. Либо таблички в Excel (любой версии). Я пишу о бухгалтерской системе, в которой можно вести работу компании хотя бы человек на 200 и при этом не повеситься.

Сорян, сложные предметные области порождают сложный софт, просто потому что от софта требуется отражать процессы этой предметной области.

hateyoufeel ★★★★★
()
Ответ на: комментарий от masa

Нет никакой базовой фичи.

В макоси есть, в винде есть, в KDE есть. Базированная базовая база.

Есть несколько видов костылей, которые придумывали на разных этапах существования линукса. трей еще и 10 лет назад нигде нормально не работал, в гноме одно, в флюксбоксе другое и несовместимое.

Вот только давайте про костыли не начинать. XDG в нынешнем виде ещё хуже. XDG порталы, которые пилятся на самом деле флатпаком под свои нужды, а остальные как-то что-то сбоку прибивают. dbus, от которого даже systemd в ужасе сбегает.

Естественно никто это легаси у себя реализовывать не будет, а трей так вообще не нужен, если что.

Трей нужен, и это отлично показывает макось, где в трее есть даже календарь. В лялексе каждая DE героические реализовывает календарь заново. Я сегондя выяснил что умею ронять плазму, выключая календарик в KDE.

Вот, зацени: https://i.redd.it/afauj2j28ntc1.png

В лялексе это пилят КАЖДЫЙ РАЗ ЗАНОВО в плазме, в гомощели, в очередной панели для очередного композитора. И все равно оно все падает, показывает дуплицированные события и плохо синхронизируется.

tinykey
()
Последнее исправление: tinykey (всего исправлений: 2)
Ответ на: комментарий от err

Тут столько фундаментальных ошибок, что мне даже разбирать стало лень, так что отвечу пожалуй только на самый относительно адекватный высер:

Это какой-то бред, пользоваться терминалом в котором чтобы поменять цвет, нужно исходники править.

Если выдрать из контекста, то, конечно, звучит бредово, но дело в том, что если рукой закрыть unsigned int, то мы увидим нечто, очень похожее на синтаксис среднестатистического линуксового конфига

daniyal
() автор топика
Ответ на: комментарий от daniyal

Если выдрать из контекста, то, конечно, звучит бредово, но дело в том, что если рукой закрыть unsigned int, то мы увидим нечто, очень похожее на синтаксис среднестатистического линуксового конфига

Это все классно, но зачем мне работать пакетным менеджером собирая руками из гита, если я могу этого не делать и хранить конфигурацию в конфигурационном файле, а пакет брать из репозитория? Правильно, незачем. Поэтому suckless тихо и умер.

tinykey
()
Ответ на: комментарий от hateyoufeel

Проекты Suckless не делают почти ничего, от того такие простые.

Они как раз делают то, что должны делать. менеджер окон dwm управляет окнами, эмулятор терминала st эмулирует терминал, меню dmenu показывет меню

daniyal
() автор топика
Ответ на: комментарий от hateyoufeel

Проекты Suckless не делают почти ничего

Они делают то что требуется. Вы так я понимаю любитель чтобы браузер вам кофе варил? Тут такого нет, да. Советую вам попробовать последнюю версию Nero. Уверен она придется вам по вкусу.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 2)
Ответ на: комментарий от tinykey

Поэтому suckless тихо и умер.

Когда ты его похоронить успел - не ясно.

Правильно, незачем.

Ну, разве что чтобы suck less, но ты видать этого не особо желаешь

daniyal
() автор топика
Ответ на: комментарий от daniyal

Ну, разве что чтобы suck less, но ты видать этого не особо желаешь

Это мантры какие-то. QA усложнилось, распространение софта усложнилось, собрать подписанный образ с таким терминалом нельзя, зато сэкономили на библиотеке для парсинга какого-нибудь toml. Вот это да, вот это suck less.

tinykey
()
Ответ на: комментарий от daniyal

Проекты Suckless не делают почти ничего, от того такие простые.

Они как раз делают то, что должны делать. менеджер окон dwm управляет окнами, эмулятор терминала st эмулирует терминал, меню dmenu показывет меню

Они делают самый минимум. Поэтому ими и пользуются задроты-минималисты. Кам он, в панельке dwm даже трея нет, о чём тут вообще речь-то?

hateyoufeel ★★★★★
()
Ответ на: комментарий от vbcnthfkmnth123

А зачем собирать руками из гита, если там можно просто пересобрать пакет?

Предварительно положив патч в PKGBUILD, сделав пуш в Git, пропустив все через какой-то сборочный пайплайн… простите, это безумие, которым (ожидаемо) никто не захотел заниматься.

tinykey
()
Ответ на: комментарий от vbcnthfkmnth123

Советую вам попробовать последнюю версию Nero.

Самое интересное, что когда Nero выпустили версию для линукса, они трезво оценили ЦА, и там, в отличие от виндокомбайна, была только писалка и ничего более. И у меня это работало гораздо стабильнее, чем k3b, например.

hobbit ★★★★★
()
Ответ на: комментарий от tinykey

Вот, зацени: https://i.redd.it/afauj2j28ntc1.png

В лялексе это пилят КАЖДЫЙ РАЗ ЗАНОВО в плазме, в гомощели, в очередной панели для очередного композитора. И все равно оно все падает, показывает дуплицированные события и плохо синхронизируется.

Ну это даже близко не трей, это часть панели, в гноме нормально сделано, у меня список встреч показывает не дублируется. Но я ничего не синхронизирую, синхронизации и всякие интеграци с виндовс софтом плохо работают.

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

В линуксе же проги могут запускаться просто в терминале, им трей не нужен. Они даже могут запускаться в средах без графического интерфейса и монитора.

masa ★★★
()
Последнее исправление: masa (всего исправлений: 2)
Ответ на: комментарий от masa

Про трей, как я его понимаю, это чисто историческая виндоус фишка, чтобы запустить демона.

Нет, не понимаешь. Демоны в Windows есть как отдельная сущность, только называются «сервисами», и никакой трей им не нужен.

В линуксе же проги могут запускаться просто в терминале, им трей не нужен. Они даже могут запускаться в средах без графического интерфейса и монитора.

Как и в Windows.

hateyoufeel ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)