Минимализм (компьютерный)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В вычислительной технике минимализм означает применение минималистских философий и принципов при проектировании и использовании аппаратного и программного обеспечения . В этом смысле минимализм означает разработку систем, которые используют как можно меньше аппаратных и программных ресурсов.
История [ править ]
В конце 1970-х и начале 1980-х программисты работали в рамках относительно дорогих и ограниченных ресурсов обычных платформ. Восемь или шестнадцать килобайт оперативной памяти были обычным явлением; 64 килобайта считались огромным объемом и представляли собой все адресное пространство , доступное 8-битным процессорам, преобладавшим в самых ранних поколениях персональных компьютеров . Самым распространенным носителем информации была 5,25-дюймовая дискета емкостью от 88 до 170 килобайт. Жесткие диски емкостью от пяти до десяти мегабайт стоят тысячи долларов.
Со временем объем памяти персональных компьютеров увеличился на порядки, и основные программисты воспользовались дополнительным объемом памяти, чтобы расширить возможности своего программного обеспечения и упростить разработку за счет использования языков более высокого уровня . Напротив, системные требования для устаревшего программного обеспечения остались прежними. В результате даже самые сложные и многофункциональные программы прошлых лет кажутся минималистичными по сравнению с современным программным обеспечением.
Одним из примеров программы, системные требования которой когда-то принесли ей тяжеловесную репутацию, является текстовый редактор GNU Emacs , получивший название «Восемь мегабайт и постоянная замена» в эпоху, когда 8 мегабайт были большим объемом оперативной памяти. [1] Сегодня парадигма Emacs, в основном основанная на текстовых буферах , использует гораздо меньше ресурсов, чем настольные метафорические GUI IDE с сопоставимыми функциями, такими как Eclipse или Netbeans . [2] В своем выступлении на Международной конференции Lisp в 2002 году Ричард Столлман указал, что минимализм был проблемой при разработке GNU и Emacs, основываясь на его опыте работы с Lisp начального уровня и системных характеристиках мини-компьютеров того времени. [3]
Поскольку возможности и системные требования обычного программного обеспечения для настольных компьютеров и операционных систем росли в течение 1980-х и 1990-х годов, а в разработке программного обеспечения стали доминировать команды, поддерживающие противоречивые, причудливые методологии разработки программного обеспечения , некоторые разработчики приняли минимализм как философию и решили ограничить свои программы заранее определенного размера или объема. [4] Сосредоточение внимания на оптимизации программного обеспечения может привести к созданию минималистичного программного обеспечения, поскольку программисты сокращают количество операций, выполняемых их программой, чтобы ускорить выполнение. [5]
В начале 21 века новые разработки в области вычислительной техники выдвинули минимализм на первый план. В эпоху, которую назвали пост-ПК, больше нет необходимости покупать высококлассный персональный компьютер просто для выполнения обычных вычислительных задач. [6] Мобильные вычислительные устройства, такие как смартфоны , планшетные компьютеры , нетбуки и подключаемые компьютеры , часто имеют меньший объем памяти, менее производительные графические подсистемы и более медленные процессоры по сравнению с персональными компьютерами, которые они, как ожидается, заменят. Кроме того, интенсивное использование графических эффектов, таких как альфа-смешение, разряжает батарею быстрее, чем «плоский интерфейс». [7] Растущая популярность этих устройств сделала минимализм важной проблемой дизайна.
Google Chrome Браузер и ChromeOS часто называют примерами минималистского дизайна. [8] [9]
Другим примером является Windows 8 , где Microsoft реализовала «простой, квадратный» внешний вид Metro , который был менее требовательным к графике, чем предыдущий интерфейс Aero, использовавшийся в Windows 7 и Windows Vista . Это изменение было внесено отчасти из-за появления небольших устройств с батарейным питанием и необходимости экономить энергию. [10] [11] [12] В седьмой версии Apple от iOS были внесены аналогичные изменения из соображений удобства пользователей . [13]
Использование [ править ]
Разработчики могут создавать пользовательские интерфейсы максимально простые , устраняя кнопки и диалоговые окна , которые потенциально могут сбить с толку пользователя. Минимализм иногда используется в значении изобразительного искусства , особенно в промышленном дизайне аппаратного обеспечения или программного обеспечения .
Некоторые разработчики пытались создать программы для выполнения определенной функции с использованием наименьшего количества строк кода или наименьшего размера скомпилированного исполняемого файла, возможного на данной платформе. [14] [15] В некоторых дистрибутивах Linux в качестве цели упоминается минимализм. Alpine Linux , Arch Linux , Puppy Linux , Bodhi Linux , CrunchBang Linux , dynebolic [16] и Tiny Core Linux являются примерами. Ранняя разработка системы Unix происходила на маломощном оборудовании, и Деннис Ритчи и Кен Томпсон высказали свое мнение, что это ограничение способствовало «элегантности дизайна» системы. [17]
Разработчики языков программирования могут создавать минимальные языки программирования, избегая синтаксического сахара и обширных библиотечных функций . Такие языки могут оказаться тупицами Тьюринга из-за отсутствия стандартной поддержки общих задач программирования. Создание минимального интерпретатора Lisp — обычная учебная задача, которую ставят перед студентами, изучающими информатику . [18] Лямбда -исчисление , разработанное Алонзо Чёрчем, представляет собой минимальный язык программирования, который использует только определения функций и приложения функций. [19] [20] Схема , [21] [22] Далее , [23] и вперед [24] [25] приводятся в качестве примеров практических, минимальных языков программирования.
Увлечение программированием ( код-гольф) приводит к созданию минималистичного программного обеспечения. [26] но обычно это упражнения или поэзия кода , а не полезное прикладное программное обеспечение.
Джон Миллар Кэрролл в своей книге «Минимализм за пределами Нюрнбергской воронки» отметил, что использование минимализма приводит к появлению устройств «мгновенного использования», таких как видеоигры, банкоматы , машины для голосования и киоски в торговых центрах, с минимальной или нулевой кривой обучения , которые не требовать от пользователя чтения руководств. [27] Исследователи пользовательского интерфейса провели эксперименты, показавшие, что минимализм, иллюстрируемый принципами проектирования экономности и прозрачности , повышает эффективность и обучаемость. [28] Минимализм неявно присутствует в философии Unix «все представляет собой текстовый поток» и «делай одно дело и делай это хорошо», хотя современные дистрибутивы Unix/Linux не так строго придерживаются этой философии. [29]
См. также [ править ]
- Раздувание кода
- Рефакторинг кода
- Краткость : Кратко, лаконично.
- Не повторяйся
- Ползучесть функций
- ПОЦЕЛУЙ принцип
- Легкий дистрибутив Linux
- Мунцинг
- Принцип Парето Правило 80:20
- Правило наименьшей мощности
- Раздувание программного обеспечения
- Философия Unix
- Закон Вирта
- Чем хуже, тем лучше
Ссылки [ править ]
- ^ Хаген, Уильям фон (13 мая 2010 г.). Библия Ubuntu Linux: Ubuntu 10.04 LTS . ISBN 9780470881804 .
- ^ «Пять причин, почему Emacs всегда будет лучше» .
- ^ «Мой опыт работы с Lisp и разработка GNU Emacs» .
...Я стремился сделать абсолютно минимальную реализацию Lisp. Размер программ вызывал огромную озабоченность. В те времена, в 1985 году, были люди, у которых были одномегабайтные машины без виртуальной памяти. Они хотели иметь возможность использовать GNU Emacs. Это означало, что мне пришлось сделать программу как можно меньшей. Например, в то время единственной конструкцией цикла была while , которая была чрезвычайно простой. Не было никакого способа выйти из оператора while, вам просто нужно было выполнить catch и throw или протестировать переменную, которая запускала цикл. Это показывает, как далеко я зашел, чтобы сделать вещи маленькими. У нас не было «каар», «кадр» и так далее; «выжать все возможное» — таков был дух GNU Emacs, дух Emacs Lisp с самого начала.
- ^ «dwm — динамический оконный менеджер» .
- ^ ne был написан с целью экономного использования ресурсов.Были предприняты все возможные усилия, чтобы сократить использование процессорного времени ипамять, количество системных вызовов и количество выводимых символов.к терминалу. -- новая информационная страница
- ^ Стрикленд, Джонатан (12 февраля 2009 г.). "HowStuffWorks "Чем отличаются ноутбуки, нетбуки и ультра-моби" " . Computer.howstuffworks.com . Проверено 8 июля 2013 г.
- ^ «5 способов увеличить время автономной работы вашего приложения» .
- ^ «Google Chrome Cr-48, образец минималистского дизайна» . Журнал ПК . 13 декабря 2010 г.
- ^ Пилчер, Пэт (13 июля 2009 г.). «Битва браузеров – кто хозяин сети?» . Независимый . Лондон. Архивировано из оригинала 15 мая 2022 года.
- ^ Чанг, Александра (21 мая 2012 г.). «Microsoft отказывается от пользовательского интерфейса Aero Glass в Windows 8 | Лаборатория гаджетов» . Проводной . Wired.com . Проверено 8 июля 2013 г.
- ^ Маккракен, Гарри (22 мая 2012 г.). «Windows Aero: почему я рад, что он мертв | TIME.com» . Время . Techland.time.com . Проверено 8 июля 2013 г.
- ^ В 2009 году настольные компьютеры занимали 44% мирового рынка, а ноутбуки — 56%. Всего 3 года спустя более 61% проданных ПК составляют ноутбуки, и эта тенденция ускоряется — это глобальный показатель, если учитывать все проданные ПК с Windows. Среди потребителей в США, покупающих ПК в этом году, более 76% купят ноутбуки — абсолютное количество всех проданных настольных компьютеров в США будет меньше, чем количество планшетов в 2012 году!
- ^ «Почему Джони Айв убивает скевоморфизм в iOS 7» . 10 июня 2013 г.
- ^ «Создание крошечного исполняемого файла Mach-O» .
- ^ «Минималистическое программирование какао» .
- ^ «Дружелюбен к окружающей среде» . Архивировано из оригинала 2 февраля 2014 года . Проверено 31 января 2014 г.
Эта операционная система предназначена для работы на процессорах Pentium2 с 256 МБ оперативной памяти, при этом даже жесткий диск не требуется. Раскройте весь потенциал компьютеров даже с помощью подержанного ПК.
- ^ «Искусство программирования для Unix» .
В статье 1974 года, опубликованной в журнале Communications of the ACM, Unix впервые была представлена публике. В этой статье ее авторы описали беспрецедентно простую конструкцию Unix и сообщили о более чем 600 установках Unix. Все они были на машинах, недостаточно мощных даже по меркам того времени, но (как писали Ричи и Томпсон) «ограничения способствовали не только экономичности, но и определенной элегантности дизайна».
- ^ «Создайте свой собственный Лисп» .
- ^ Стюарт, Том (15 мая 2013 г.). Понимание вычислений . ISBN 9781449330118 .
- ^ «7 строк кода, 3 минуты: реализация языка программирования с нуля» .
- ^ «Эволюция Лиспа» (PDF) .
В первоначальном отчете о Scheme [Sussman, 1975b] описывается очень скудный язык с минимумом примитивных конструкций, по одной на концепцию. (Зачем брать два, если достаточно одного?)
- ^ "Схема-faq-общее" .
Схема — это диалект Лиспа, который подчеркивает концептуальную элегантность и простоту.
- ^ Бьянкуцци, Федерико; Хроматический (21 марта 2009 г.). Вдохновители программирования: беседы с создателями основных языков программирования . ISBN 9780596555504 .
Форт — компьютерный язык с минимальным синтаксисом.
- ^ "Идти" .
Go — это язык программирования с открытым исходным кодом, который позволяет легко создавать простое, надежное и эффективное программное обеспечение.
- ^ «Интервью с Кеном Томпсоном» .
... мы начали с идеи, что всех нас троих нужно обсудить с каждой функцией языка, чтобы в язык не добавлялось постороннего мусора по какой-либо причине.
- ^ «Wik Wiki Wiki на 1287 символов PHP» .
- ^ Джон Миллар Кэрролл (1998). Минимализм за пределами Нюрнбергской воронки . Кембридж, Массачусетс: MIT Press. ISBN 0-262-03249-Х . Проверено 21 ноября 2007 г.
- ^ Рен, К.; Рейнольдс, К. (2004). «Минимализм в повсеместном дизайне интерфейсов» (PDF) . Персональные и повсеместные вычисления . 8 (5). Спрингер: 370–373. дои : 10.1007/s00779-004-0299-2 . S2CID 14851897 . Проверено 29 июля 2008 г.
- ^ «Узбл — инструменты веб-интерфейса, соответствующие философии unix» .
Общая идея заключается в том, что Узбл по умолчанию очень простой.