stringtranslate.com

Минимализм (вычислительная техника)

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

История

В конце 1970-х и начале 1980-х годов программисты работали в рамках относительно дорогих и ограниченных ресурсов распространенных платформ. Восемь или шестнадцать килобайт оперативной памяти были обычным явлением; 64 килобайта считались огромным объемом и составляли все адресное пространство , доступное 8-битным процессорам, преобладавшим в первых поколениях персональных компьютеров . Наиболее распространенным носителем информации был 5,25-дюймовый гибкий диск, вмещавший от 88 до 170 килобайт. Жесткие диски емкостью от пяти до десяти мегабайт стоили тысячи долларов.

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

Одним из примеров программы, системные требования которой когда-то обеспечили ей репутацию тяжеловеса, является текстовый редактор GNU Emacs , который получил бэкроним «Восемь мегабайт и постоянная подкачка» в эпоху, когда 8 мегабайт были большим объемом оперативной памяти. [1] Сегодня парадигма Emacs, основанная в основном на текстовом буфере , использует гораздо меньше ресурсов, чем графические IDE- среды с метафорой рабочего стола с сопоставимыми функциями, такие как Eclipse или Netbeans . [2] В своей речи на Международной конференции Lisp 2002 года Ричард Столлман указал, что минимализм был проблемой при его разработке GNU и Emacs, основываясь на своем опыте работы с Lisp и системных спецификациях мини-компьютеров низкого уровня того времени. [3]

По мере того, как возможности и системные требования обычного программного обеспечения для настольных компьютеров и операционных систем росли в течение 1980-х и 1990-х годов, а разработка программного обеспечения стала доминировать среди команд, придерживающихся противоречивых, модных методологий разработки программного обеспечения , некоторые разработчики приняли минимализм как философию и решили ограничить свои программы предопределенным размером или областью действия. [4] Сосредоточение внимания на оптимизации программного обеспечения может привести к минималистичному программному обеспечению, поскольку программисты сокращают количество операций, выполняемых их программой, чтобы ускорить выполнение. [5]

В начале 21-го века новые разработки в области вычислительной техники вывели минимализм на передний план. В эпоху, которую называют пост-ПК, больше нет необходимости покупать высокопроизводительный персональный компьютер только для выполнения обычных вычислительных задач. [6] Мобильные вычислительные устройства, такие как смартфоны , планшетные компьютеры , нетбуки и подключаемые компьютеры , часто имеют меньший объем памяти, менее эффективные графические подсистемы и более медленные процессоры по сравнению с персональным компьютером, который они должны заменить. Кроме того, интенсивное использование графических эффектов, таких как альфа-смешивание, разряжает батарею быстрее, чем «плоский пользовательский интерфейс». [7] Растущая популярность этих устройств сделала минимализм важной проблемой дизайна.

Браузер Chrome и ChromeOS от Google часто приводятся в качестве примеров минималистичного дизайна. [8] [9]

Другим примером является Windows 8 , где Microsoft реализовала «простой, квадратный» внешний вид Metro , который был менее графически интенсивным, чем предыдущий интерфейс Aero, используемый в Windows 7 и Windows Vista . Это изменение было сделано отчасти из-за роста числа небольших устройств с питанием от батареи и необходимости экономить электроэнергию. [10] [11] [12] Версия 7 iOS от Apple внесла аналогичные изменения для удобства пользователей . [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] Scheme , [21] [22] Forth , [23] и Go [24] [25] приводятся в качестве примеров практичных минимальных языков программирования.

Увлечение программированием под названием «код-гольф» приводит к созданию минималистичного программного обеспечения [26], но это, как правило, упражнения или поэзия кода , а не прикладное программное обеспечение.

Джон Миллар Кэрролл в своей книге «Минимализм за пределами Нюрнбергской воронки» указал, что использование минимализма приводит к появлению устройств «мгновенного использования», таких как видеоигры, банкоматы , машины для голосования и торговые киоски с небольшой или нулевой кривой обучения , которые не требуют от пользователя чтения руководств. [27] Исследователи пользовательского интерфейса провели эксперименты, предполагающие, что минимализм, как показано на принципах проектирования экономии и прозрачности , способствует повышению эффективности и обучаемости. [28] Минимализм подразумевается в философии Unix «все есть текстовый поток» и «делай одно дело и делай это хорошо», хотя современные дистрибутивы Unix/Linux не придерживаются этой философии так строго. [29]

Смотрите также

Ссылки

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