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