Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

История [ править ]

В конце 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

Ссылки [ править ]

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