Введение
Минималистские философии в аппаратном и программном обеспечении
В вычислительной технике минимализм означает применение минималистских философий и принципов при разработке и использовании аппаратного и программного обеспечения. Минимализм в данном контексте подразумевает создание систем, использующих минимально возможное количество аппаратных и программных ресурсов.
История
В конце 1970-х и начале 1980-х годов программисты работали в условиях относительно дорогих и ограниченных ресурсов типовых платформ. Восемь или шестнадцать килобайт оперативной памяти были обычным явлением; 64 килобайта считались огромным объемом и представляли собой все адресное пространство, доступное для 8-битных процессоров, доминировавших в первые поколения персональных компьютеров. Наиболее распространенным носителем информации была 5,25-дюймовая гибкая дискета емкостью от 88 до 170 килобайт. Жесткие диски объемом от пяти до десяти мегабайт стоили тысячи долларов. Со временем емкость памяти персональных компьютеров увеличилась на порядки, и программисты стали использовать дополнительное пространство для расширения возможностей своего программного обеспечения и упрощения разработки с помощью языков программирования более высокого уровня. В отличие от этого, системные требования к устаревшему программному обеспечению оставались прежними. В результате даже самые сложные и многофункциональные программы прошлых лет кажутся минималистичными по сравнению с современными. Одним из примеров программы, чьи системные требования когда-то создали ей репутацию ресурсоемкой, является текстовый редактор GNU Emacs, получивший акроним "Восемь мегабайт и постоянный обмен" (Eight Megabytes And Constantly Swapping) в эпоху, когда 8 мегабайт считались большим объемом оперативной памяти. Сегодня парадигма Emacs, основанная главным образом на текстовых буферах, потребляет гораздо меньше ресурсов, чем графические среды разработки (GUI IDE) с сопоставимой функциональностью, такие как Eclipse или Netbeans. В своей речи на Международной конференции по Lisp в 2002 году Ричард Столлман отметил, что минимализм был важным фактором при разработке GNU и Emacs, основанным на его опыте работы с Lisp и спецификациях маломощных мини-компьютеров того времени. По мере роста возможностей и системных требований обычного настольного программного обеспечения и операционных систем в 1980-х и 1990-х годах, а также по мере того, как разработка программного обеспечения стала доминировать в командах, придерживающихся противоречивых и быстро меняющихся методологий, некоторые разработчики приняли минимализм как философию и решили ограничить свои программы предопределенным размером или масштабом. Ориентация на оптимизацию программного обеспечения может привести к созданию минималистичного программного обеспечения, поскольку программисты уменьшают количество операций, выполняемых программой, для повышения скорости работы. В начале XXI века новые достижения в области вычислительной техники выдвинули минимализм на передний план. В так называемую пост-ПК эпоху больше не требуется покупать высокопроизводительный персональный компьютер только для выполнения обычных вычислительных задач. Мобильные устройства, такие как смартфоны, планшетные компьютеры, нетбуки и подключаемые компьютеры, часто имеют меньший объем памяти, менее производительные графические подсистемы и более медленные процессоры по сравнению с персональными компьютерами, которые они призваны заменить. Кроме того, интенсивное использование графических эффектов, таких как альфа-смешивание, быстрее разряжает батарею, чем "плоский интерфейс" (flat UI). Растущая популярность этих устройств сделала минимализм важным аспектом дизайна. Браузер Google Chrome и ChromeOS часто приводятся в качестве примеров минималистичного дизайна. Другой пример – Windows 8, где Microsoft реализовала "простой, с четкими углами" интерфейс Metro, который был менее требователен к графическим ресурсам, чем предыдущий интерфейс Aero, использовавшийся в Windows 7 и Windows Vista. Это изменение было частично вызвано ростом числа небольших устройств, работающих от батареи, и необходимостью экономии энергии. Версия 7 iOS от Apple внесла аналогичные изменения в целях улучшения пользовательского опыта.
Использование
Разработчики могут создавать пользовательские интерфейсы максимально простыми, устраняя кнопки и диалоговые окна, которые потенциально могут запутать пользователя. Минимализм иногда используется в значении, принятом в визуальном искусстве, особенно в промышленном дизайне аппаратного обеспечения или программной темы. Некоторые разработчики пытались создавать программы для выполнения конкретной функции в минимальном количестве строк кода или с наименьшим возможным размером скомпилированного исполняемого файла на данной платформе. Некоторые дистрибутивы Linux заявляют о минимализме как о цели. Примерами служат Alpine Linux, Arch Linux, Puppy Linux, Bodhi Linux, CrunchBang Linux, dynebolic и Tiny Core Linux. Ранняя разработка системы Unix велась на маломощном оборудовании, и Деннис Ричи и Кен Томпсон утверждали, что это ограничение способствовало "элегантности дизайна" системы. Разработчики языков программирования могут создавать минималистичные языки программирования, избегая синтаксического сахара и обширных библиотечных функций. Такие языки могут оказаться "Тьюрингскими болотами" из-за отсутствия стандартной поддержки общих задач программирования. Создание минимального интерпретатора Lisp – распространенное учебное задание для студентов компьютерных наук. Лямбда-исчисление, разработанное Алонзо Черчем, – минималистичный язык программирования, использующий только определения и применения функций. Scheme, Forth и Go приводятся в качестве примеров практичных минималистичных языков программирования. Программистское хобби – code golf – приводит к созданию минималистичного программного обеспечения, но обычно это упражнения или программная поэзия, а не прикладное программное обеспечение. Джон Миллер Кэрролл в своей книге "Минимализм за пределами Нюрнбергской воронки" отметил, что использование минимализма приводит к созданию устройств с "мгновенным использованием", таких как видеоигры, банкоматы, устройства для голосования и киоски в торговых центрах, с незначительной или отсутствующей кривой обучения, не требующих от пользователя чтения инструкций. Исследователи пользовательских интерфейсов провели эксперименты, показывающие, что минимализм, иллюстрируемый принципами экономичности и прозрачности, повышает эффективность и обучаемость. Минимализм заложен в философии Unix "всё – это поток текста" и "делай одно дело и делай его хорошо", хотя современные дистрибутивы Unix/Linux не придерживаются этой философии столь строго.