stringtranslate.com

Минимализм (компьютерный)

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

История

В конце 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] В седьмой версии 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: с Ubuntu 10.04 LTS. ISBN 9780470881804.
  2. ^ «Пять причин, почему Emacs всегда будет лучше».
  3. ^ «Мой опыт работы с Lisp и разработка GNU Emacs». ...Я стремился сделать абсолютно минимальную реализацию Lisp. Размер программ вызывал огромную озабоченность. В те времена, в 1985 году, были люди, у которых были одномегабайтные машины без виртуальной памяти. Они хотели иметь возможность использовать GNU Emacs. Это означало, что мне пришлось сделать программу как можно меньшей. Например, в то время единственной конструкцией цикла была while , которая была чрезвычайно простой. Не было возможности выйти из оператора while, нужно было просто выполнить catch и throw или протестировать переменную, которая запускала цикл. Это показывает, как далеко я зашел, чтобы сделать вещи маленькими. У нас не было «каар», «кадр» и так далее; «выжать все возможное» — таков был дух GNU Emacs, дух Emacs Lisp с самого начала.
  4. ^ «dwm - динамический оконный менеджер» .
  5. ^ ne был написан с целью экономного использования ресурсов. Были предприняты все возможные усилия, чтобы уменьшить использование процессорного времени и памяти, количество системных вызовов и количество символов, выводимых на терминал. -- новая информационная страница
  6. Стрикленд, Джонатан (12 февраля 2009 г.). «HowStuffWorks «Чем отличаются ноутбуки, нетбуки и ультра-моби»». Computer.howstuffworks.com . Проверено 8 июля 2013 г.
  7. ^ «5 способов увеличить время автономной работы вашего приложения» .
  8. ^ «Google Chrome Cr-48, образец минималистского дизайна» . Журнал ПК . 13 декабря 2010 г.
  9. Пилчер, Пэт (13 июля 2009 г.). «Битва браузеров – кто хозяин сети?» . Независимый . Лондон. Архивировано из оригинала 15 мая 2022 года.
  10. Чанг, Александра (21 мая 2012 г.). «Microsoft отказывается от пользовательского интерфейса Aero Glass в Windows 8 | Лаборатория гаджетов» . Проводной . 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. ^ «Минималистское программирование какао» .
  16. ^ «Дружелюбен к окружающей среде» . Архивировано из оригинала 2 февраля 2014 года . Проверено 31 января 2014 г. Эта операционная система предназначена для работы на процессорах Pentium2 с 256 МБ оперативной памяти, при этом даже не требуется жесткий диск. Раскройте весь потенциал компьютеров даже с помощью подержанного ПК.
  17. ^ «Искусство программирования для Unix». В статье 1974 года, опубликованной в журнале Communications of the ACM, Unix впервые была представлена ​​публике. В этой статье ее авторы описали беспрецедентно простую конструкцию Unix и сообщили о более чем 600 установках Unix. Все они были на машинах, недостаточно мощных даже по меркам того времени, но (как писали Ричи и Томпсон) «ограничения способствовали не только экономичности, но и определенной элегантности дизайна».
  18. ^ «Создайте свой собственный Lisp».
  19. Стюарт, Том (15 мая 2013 г.). Понимание вычислений. ISBN 9781449330118.
  20. ^ «7 строк кода, 3 минуты: реализация языка программирования с нуля».
  21. ^ «Эволюция Лиспа» (PDF) . В первоначальном отчете о Scheme [Sussman, 1975b] описывается очень скудный язык с минимумом примитивных конструкций, по одной на концепцию. (Зачем брать два, если достаточно одного?)
  22. ^ "Схема-faq-general" . Схема — это диалект Лиспа, который подчеркивает концептуальную элегантность и простоту.
  23. ^ Бьянкуцци, Федерико; Хроматический (21 марта 2009 г.). Вдохновители программирования: беседы с создателями основных языков программирования. ISBN 9780596555504. Форт — компьютерный язык с минимальным синтаксисом.
  24. ^ «Иди». Go — это язык программирования с открытым исходным кодом, который позволяет легко создавать простое, надежное и эффективное программное обеспечение.
  25. ^ «Интервью с Кеном Томпсоном». ... мы начали с идеи, что всех нас троих нужно обсудить с каждой функцией языка, чтобы в язык не добавлялось постороннего мусора по какой-либо причине.
  26. ^ "Wik Wiki Wiki в 1287 символах PHP" .
  27. ^ Джон Миллар Кэрролл (1998). Минимализм за пределами Нюрнбергской воронки. Кембридж, Массачусетс: MIT Press. ISBN 0-262-03249-Х. Проверено 21 ноября 2007 г.
  28. ^ Рен, К.; Рейнольдс, К. (2004). «Минимализм в повсеместном дизайне интерфейсов» (PDF) . Персональные и повсеместные вычисления . Спрингер. 8 (5): 370–373. дои : 10.1007/s00779-004-0299-2. S2CID  14851897 . Проверено 29 июля 2008 г.
  29. ^ "Узбл - инструменты веб-интерфейса, соответствующие философии unix" . Общая идея заключается в том, что Узбл по умолчанию очень простой.