Conversation
Интуитивность vs. Документация
Show content
Однажды я смотрел видео либо о Gentoo, либо об Arch, либо в принципе про проблемы Linux-дистрибутивов. В нём я услышал мнение, которые спустя несколько месяцев вновь появилось у меня в голове. Я бы хотел показать, почему считаю это мнение отчасти неправильным.

Мнение из видео (цитирую на память):
> В Linux-сообществе наличие Handbook считается почему-то плюсом для дистрибутива, хотя так быть не должно. Вот, Windows, разве кто-то ищет документацию по этой ОС? И с Linux должно быть так же, всё должно быть интуитивно понятно без хендбуков.

Вчера это мнение вновь оказалось в моей голове по двум причинам:
1. Я очень активно занят настройкой минималистичной ОС (это CachyOS, Arch based), все диски зашифрованы, для входа в систему ly, композитор picom, оконный менеджер i3, панелька polybar (думаю, что именно и как буду в ней менять), все утилиты преимущественно консольные, за редким исключением, из файловых менеджеров midnight commander. В процессе настройки я не раз обращался к YouTube, Arch Wiki и DeepSeek (про языковые модели как-нибудь в будущем тоже напишу, потому что некоторые люди, как мне кажется, слишком сильно полагаются на них, чего делать не стоит, ответственность за Вас ИИ не понесёт).
2. Именно это мнение вспомнилось мне из-за преподавателя с факультета ФН в МГТУ им. Баумана. Он отличался тем, что на лекциях по аналитической геометрии иногда писал огроменный и сложные выражения, после чего говорил «ну, доказательство я расписывать не буду, поскольку тут всё очевидно и интуитивно ясно». Надо ли говорить, что даже выражение стоило бы объяснить, не то что доказательство... Да, мы по идее сами должны были знать математические кванторы и следить за ходом мысли лектора с самого начала пары. Вот только думать тяжело и хотелось бы времени подумать, а препод, сказав «очевидно и интуитивно ясно», стирал выражение с доски и в моей голове не осталось вообще ничего, что для него было «очевидно и интуитивно ясно» (а вот то, что ему было не совсем понятно, я немного запомнил).

* * *

Перейдём непосредственно к Linux и документации к нему.

Хочу обратить внимание: я не согласен именно с тем, что хорошая документированность не должна быть достоинством дистрибутива. Должны ли дистрибутивы быть интуитивно понятными пользователям Windows — другой вопрос, о котором я не хочу рассуждать.

Сперва я бы немного раскрыл проблематику словосочетания "интуитивно понятный". Как видно из моего воспоминания 2, у разных людей разные вещи очевидны. Давным давно писать команды в терминале было очевидным, а ПАО «Эппл» делало программу, обучающую обращаться с манипулятором «мышь». Кому-то хочется открывать директории двумя кликами, кому-то одним, кто-то считает, что исполняемые файлы должны исполняться по двойному нажатию, кто-то считает это небезопасным. Кому-то проще использовать напоминающий Android и macOS GNOME, кому-то — напоминающие Windows Mate и KDE (отзывы реальных людей если что). Кому-то очевидны сочетания клавиш vim, а кому-то — сочетания клавиш в Emacs.

Более-менее все сходятся, пожалуй, в том, что в «интуитивных дистрибутивах для новичков» всё должно быть реализовано через GUI, все действия, которые можно выполнить автоматически, должны быть автоматизированы. В остальном же единого и общепринятого ответа на вопрос «что наиболее интуитивно?» не существует. Да даже крупные компании, такие как Microsoft, Apple, Google, проводят исследования, но всё равно часть пользователей не считает их нововведения позитивными или интуитивными.

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

* * *

Я понимаю, что автор видео имел ввиду не «не надо заморачиваться над документацией», а «надо тратить больше ресурсов на то, чтобы он был интуитивно понятным», хотя, разумеется, на мой взгляд это не какая-то обязанность разработчиков. В конце концов, никто не жалуется на Windows Server в редакции Tiny Core.

И да, я соглашусь, что иногда какие-то вещи могут не решаться в линуксовом ПО годами. Разумеется, ОС в первую очередь должна служить прикладным задачам, а её настройка и "оптимизация" для большинства пользователей не должны быть самоцелью.

И тем не менее документация очень важна.

Я понимаю, что расписывание «Перед Вами появится рабочий стол, представьте, что это Ваш настоящий рабочий стол, Вы можете положить на него бумаги (файлы) и складывать их в папки...» — это не самая полезная затея. Но чем реже используется какая-то функция, тем меньше о ней написано.

Более-менее везде написано, как настроить автоматическое монтирование внешнего щапоминающего устройства при загрузки системы через редактирование файла /etc/fstab

Многие рассказывают о том, как шифровать диск. Но вот информацию о том, как настроить автоматическое монтирование зашифрованного диска после загрузки найти гораздо труднее. Всё ещё не трудно, но её гораздо меньше, даже на Arch Wiki не упомянуто о том, что надо писать luksAddKey, этой строки в 2 статьях по теме вообще нет (других я не читал, вполне вероятно, где-то ещё на Arch Wiki это есть, читал на английском, да).

И это был на самом деле очень маленький пример. А таких много: почему mtpfs не работает, а go-mtpfs работает, почему при попытки копировать захват экрана flameshot в сессии i3 вылетает (до сих пор вроде issue на GitHub есть), почему midnight commander не умеет по умолчанию паковать zip из menu (f2), почему unzip -P password a.zip -d Dir не работает, а 7z x a.zip -oDir -ppassword сработает... Это всё какие-то мелочи, но когда-то кто-то вдруг столкнётся с чем-то подобным, будет не лишним иметь под рукой форумы, ютубы и вики.

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

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

Поэтому я считаю, что хорошая документация — действительно преимущество любого дистрибутива. Впрочем, в случае с Linux очень многие вещи по сути похожи везде... Но специфические для ПО вещи точно нужно документировать. Вот.
2
0
1
Интуитивность vs. Документация
Show content

@zvezdochetia @rur так как уже начали делать агентные системы типа operator от openai, то вполне вероятно они будут нуждаться просто в исходном коде однажды и все тебе прекрасно либо расскажут как надо, либо за тебя сделают. Без промежуточной документации :)

1
0
0
re: Интуитивность vs. Документация
Show content

@zvezdochetia Очень правильную проблему ты затронул. От себя добавлю, что то, что кажется интуитивно понятным, ещё во многом зависит от предполагаемого уровня подготовки пользователя и эпохи. Например, в 1990-ые аналогии с оффлайновым миром были уместны, а сейчас это воспринимается как что-то странное. Зато сейчас постепенно сформировалась прослойка, которая смартфон взяла в руки раньше, чем села за полноценный компьютер. И для них аналогии и отсылы к мобильным — уместны, а у меня это дикий крен мозга вызывает. Равно как и просто использование мобило-подобного интерфейса на desktopе.

1
0
1
re: Интуитивность vs. Документация
Show content

@3draven @zvezdochetia @rur эх, не хотел бы я жить в мире, где это станет единственным интерфейсом.

0
0
1

Несерьёзный Выдумщик

re: Интуитивность vs. Документация
Show content

@zvezdochetia Пара моментов упущена, а потому вся пирамида рассуждений должна быть обрушена :) И не важно, насколько они логичны и корректные ли — из ложных посылов можно абсолютно нормальной логики дойти до тотально абсурдных выводов.

Есть руководство пользователя, есть руководство администратора. Есть handbook, а есть справочные материалы (справочники). Всё это подпадает под определение и семантику термина «документация».

Руководство пользователя по дистрибутиву не тоже самое, что руководство по user space миру — отдельно взятому прикладному софту.

Далее, есть разные жизненные циклы у каждого из упомянутых видов документации. появление systemd изрядно изменило ситуацию — надо переписывать Handbooks и в контексте отдельно взятых дистрибутивов. И вообще пособия для админов, т.к. эта система (systemd) во многом одинакова на разных линуксах, примерно как Samba и оперирование SMB-шарами.

Получается сложная структура, когда есть некие единые вещи, вроде стандартных подходов к организации разных вещей во всех ОС использующих Linux Kernel. Но с поправкой на то какие подсистемы обвязки используются вокруг ядра — не везде glibc, не везде systemd — это документация по дистрибутиву. Но документация может быть handbook или tutorial / manual, а может быть справочником для повседневного использования, а не только лишь для погружения и однократной настройки/разворачивания.

Люди не всегда идиоты и ты не всегда Д‘Артаньян в белом посреди толпы гандурасов. Часто то, что кажется идиотией и вакханалией с хаусом — это просто следствие сложности высокой из-за обилия взаимосвязей разнородных.

@4X_Pro

0
0
0