Dwm

Dwm
Логотип программы Dwm
Скриншот программы Dwm
Тип Фреймовый оконный менеджер X Window System и Dynamic window manager
Разработчик suckless.org
Написана на Си[1]
Операционная система Unix-подобная операционная система
Первый выпуск 14 июля 2006[2]
Последняя версия
Репозиторий git.suckless.org/dwm
git.suckless.org/dwm
Лицензия лицензия MIT[4]
Сайт dwm.suckless.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

dwm — динамический тайлинговый оконный менеджер для оконного интерфейса X11. Менеджер окон dwm написан на языке C и может быть сконфигурирован под любые потребности. Пользователю предоставляются широкие возможности настройки, так как dwm настраивается путём изменения исходных кодов, а основные настройки можно внести в заголовочный файл. Оконный менеджер оптимизирован для запуска на устройствах вывода с высокой разрешающей способностью.

Особенности

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

  • Отсутствие конфигурационного файла в привычном понимании и необходимость перекомпиляции и перезапуска для применения настроек.
  • Для выбора окна используется модель focus-follows-mouse (фокус следует за мышью), при котором оно становится активным по наведению мыши (режим легко отключается).

Философия

Философия dwm включает в себя принципов минимализма, которые лежат в основе разработки всего ПО от свободное программное сообщество программистов suckless.org. Сообщество следует философии Unix, которая ставит акцент на то, чтобы каждая программа делала одну вещь, но делала её хорошо. Вся концепция сводится к отказу от лишних функций и фич, которые могут только усложнить работу с программой.

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

Манифест

Many (open source) hackers are proud if they achieve large amounts of code, because they believe the more lines of code they've written, the more progress they have made. The more progress they have made, the more skilled they are. This is simply a delusion.

Most hackers actually don't care much about code quality. Thus, if they get something working which seems to solve a problem, they stick with it. If this kind of software development is applied to the same source code throughout its entire life-cycle, we're left with large amounts of code, a totally screwed code structure, and a flawed system design. This is because of a lack of conceptual clarity and integrity in the development process.

Code complexity is the mother of bloated, hard to use, and totally inconsistent software. With complex code, problems are solved in suboptimal ways, valuable resources are endlessly tied up, performance slows to a halt, and vulnerabilities become a commonplace. The only solution is to scrap the entire project and rewrite it from scratch.

The bad news: quality rewrites rarely happen, because hackers are proud of large amounts of code. They think they understand the complexity in the code, thus there's no need to rewrite it. They think of themselves as masterminds, understanding what others can never hope to grasp. To these types, complex software is the ideal.

Ingenious ideas are simple. Ingenious software is simple. Simplicity is the heart of the Unix philosophy. The more code lines you have removed, the more progress you have made. As the number of lines of code in your software shrinks, the more skilled you have become and the less your software sucks. [5]

перевод на русском языке

Многие хакеры (в мире открытого кода) гордятся тем, что пишут большие объемы кода, считая, что чем больше строк они написали, тем больше прогресса достигли. А чем больше прогресса, тем более опытными они становятся. Это всего лишь иллюзия.

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

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

Печальная новость: качественные переработки происходят крайне редко, потому что хакеры гордятся тем, что написали много кода. Они уверены, что понимают всю сложность своей работы, и поэтому не видят нужды переписывать код. Они считают себя мастерами, которые понимают то, что другим не под силу. Для таких людей сложность программы — это идеал.

Гениальные идеи просты. Гениальное программное обеспечение — тоже простое. Простота — основа философии Unix. Чем больше строк кода вы удаляете, тем большего прогресса достигаете. Чем меньше кода в вашем программном обеспечении, тем выше ваш уровень мастерства и тем меньше проблем в вашем продукте.

Примечания

Ссылки