Кіріспе
Аппараттық және бағдарламалық жасақтамадағы минималистік философиялар
Есептеу саласында минимализм – аппараттық және бағдарламалық жасақтаманы жобалау және пайдалану кезінде минималистік философиялар мен қағидаларды қолдануды білдіреді. Осы контексте минимализм дегеніміз – мүмкіндігінше аз аппараттық және бағдарламалық ресурстарды қолданатын жүйелерді құру.
Тарих
1970 жылдардың соңы мен 1980 жылдардың басында бағдарламашылар жалпы қолданыстағы платформалардың салыстырмалы түрде қымбат және шектеулі ресурстары шегінде жұмыс істеді. Сегіз немесе он алты килобайт RAM жиі кездесетін; 64 килобайт үлкен көлем деп есептелді және 8 биттік CPU-дың толық адрестік кеңістігі болып табылды, ол дербес компьютерлердің алғашқы буындарында басым болды. Ең көп таралған сақтау ортасы – 88-ден 170 килобайтқа дейін сыйымдылығы бар 5,25 дюймдік дискет. 5 мегабайттан 10 мегабайтқа дейінгі сыйымдылықтағы қатты дискілер мыңдаған доллар тұратын. Уақыт өте келе, жеке компьютерлердің жады сыйымдылығы экспоненциалды түрде өсті және бағдарламашылар қосымша жадты пайдаланып, бағдарламалық жасақтама мүмкіндіктерін арттырды және жоғары деңгейдегі тілдерді қолдану арқылы әзірлеуді жеңілдетті. Ал, ескі бағдарламалық жасақтамаға қойылатын жүйе талаптары өзгеріссіз қалды. Нәтижесінде, тіпті өткеннің ең күрделі, мүмкіндіктерге толы бағдарламалары да қазіргі бағдарламалармен салыстырғанда қарапайым көрінеді. Жүйе талаптары бір кезде оған салмақты бедел берген бағдарламаның мысалы – GNU Emacs мәтіндік редакторы, ол 8 мегабайт жадтың көп болған кезінде "Сегіз мегабайт және үнемі ауыстыру" деген атқа ие болды. Бүгінде Emacs-тің негізінен мәтіндік буферге негізделген парадигмасы Eclipse немесе Netbeans сияқты ұқсас мүмкіндіктері бар десктоп метафоралық GUI IDE-лерге қарағанда әлдеқайда аз ресурстарды қолданады. 2002 жылғы Халықаралық Lisp конференциясындағы сөйлеген сөзінде Ричард Столлман GNU және Emacs-ты әзірлеуде минимализмнің маңызды болғанын, бұл оның Lisp-пен және сол кездегі төменгі деңгейдегі мини-компьютерлердің жүйе талаптарымен алған тәжірибесіне негізделгенін айтты. 1980 және 1990 жылдары жалпы десктоп бағдарламалық жасақтамасы мен операциялық жүйелердің мүмкіндіктері мен жүйе талаптары өскен сайын, бағдарламалық жасақтаманы әзірлеуге қарама-қайшы, сәнді бағдарламалық жасақтаманы әзірлеу әдістемелерін қолдайтын командалар басымдық алды, кейбір әзірлеушілер минимализмді философия ретінде қабылдады және өз бағдарламаларын алдын ала белгіленген өлшеммен немесе ауқыммен шектеуді жөн көрді. Бағдарламалық жасақтаманы оңтайландыруға назар аудару минималистік бағдарламалық жасақтамаға әкелуі мүмкін, өйткені бағдарламашылар орындалу жылдамдығын арттыру үшін бағдарламалары орындайтын операциялар санын азайтады. XXI ғасырдың басында компьютерлік технологиядағы жаңа жетістіктер минимализмді алға шығарды. "ПК-ден кейінгі дәуір" деп аталатын заманда, жалпы есептеу тапсырмаларын орындау үшін жоғары деңгейдегі жеке компьютер сатып алудың қажеті жоқ. Мобильді есептеу құрылғылары, мысалы смартфондар, планшеттік компьютерлер, нетбуктер және қосылатын компьютерлер, көбінесе, олар алмастыруға тиіс жеке компьютерлермен салыстырғанда, кішкентайрақ жад сыйымдылығына, нашаррақ графикалық қосалқы жүйелеріне және баяу процессорларға ие. Сонымен қатар, альфа-араластыру сияқты графикалық эффекттерді көп пайдалану батареяны "жазық UI" -ден гөрі жылдам тоздырады. Бұл құрылғылардың танымалдылығы артып, минимализмді маңызды дизайн мәселесіне айналдырды. Google Chrome браузері мен ChromeOS жиі минималистік дизайнның мысалдары ретінде келтіріледі. Windows 8 тағы бір мысал, онда Microsoft "жауапты, тікбұрышты" Metro интерфейсін енгізді, ол Windows 7 және Windows Vista-да қолданылған бұрынғы Aero интерфейсіне қарағанда графикалық жүктемесі аз болды. Бұл өзгеріс ішінара кішкентай, батареямен жұмыс істейтін құрылғылардың көбеюіне және қуатты үнемдеу қажеттілігіне байланысты болды. Apple iOS-тің 7-ші нұсқасы да пайдаланушы тәжірибесін жақсарту мақсатында ұқсас өзгерістер енгізді.
Қолданылуы
Жасаушылар пайдаланушы интерфейстерін мүмкіндігінше қарапайым ету үшін, пайдаланушыны шатастыруы мүмкін батырмалар мен диалогтық терезелерді жою арқылы құра алады. Минимализм кейде көркем өнер мағынасында қолданылады, әсіресе аппараттық құрылғының немесе бағдарламалық жасақтама тақырыбының өнеркәсіптік дизайнында. Кейбір әзірлеушілер белгілі бір функцияны кодтың ең аз жолдарында немесе берілген платформадағы ең кішкентай компиляцияланған файл көлемінде орындайтын бағдарламалар жасауға тырысты. Кейбір Linux дистрибутивтері минимализмді мақсат ретінде көрсетеді. Alpine Linux, Arch Linux, Puppy Linux, Bodhi Linux, CrunchBang Linux, dynebolic және Tiny Core Linux – мысалдардың ішінде. Unix жүйесінің бастапқы дамуы төмен қуатты аппараттық құралдарда жүрді, ал Деннис Ричи мен Кен Томпсон бұл шектеу жүйенің «дизайнның әсемдігіне» үлес қосқанын айтты. Бағдарламалау тілінің дизайнерлері синтаксистік қант пен кең кітапханалық функцияларды қабылдамау арқылы минималды бағдарламалау тілдерін құра алады. Мұндай тілдер, ортақ бағдарламалау міндеттеріне стандартты қолдау көрсетілмегендіктен, Тьюринг қабықтары болуы мүмкін. Лисп интерпретаторының минималды нұсқасын жасау – компьютерлік ғылым студенттеріне берілетін оқу міндеті. Алонзо Черч жасаған Ламбда есебі – функцияның анықтамалары мен функцияның қолданылуын ғана пайдаланатын минималды бағдарламалау тілі. Scheme, Forth және Go – практикалық минималды бағдарламалау тілдерінің мысалдары ретінде келтіріледі. Код-гольф хоббисі минималистік бағдарламалық жасақтаманы тудырады, бірақ бұл көбінесе жаттығулар немесе код поэзиясы, пайдалы қолданбалы бағдарламалық жасақтама емес. Джон Миллер Кэрролл «Минимализм Нюрнберг шұңқынан тыс» кітабында минимализмді қолданудың нәтижесінде пайдаланушыға оқулықтарды қажет етпейтін, «бірден қолдануға болатын» құрылғылар пайда болатынын – мысалы, бейне ойындар, банкоматтар, дауыс беру машиналары және сауда орталықтарындағы киосктер пайда болатынын көрсетті. Пайдаланушы интерфейсі зерттеушілері минимализмнің, үнемділік және ашықтық принциптерімен көрсетілгендей, тиімділікті және үйренуге қабілеттілікті арттыратынын көрсететін тәжірибелер жүргізді. Минимализм Unix философиясында «барлығы мәтін ағыны» және «бір нәрсені жаса және оны жақсы жаса» түсінігінде жатыр, бірақ қазіргі Unix/Linux дистрибутивтері бұл философияны бұрынғыдай қатаң ұстанбайды.