|
О полезности знания принципов работы компьютера
Чем более дружественным становится интерфейс, тем большее число людей предпочитает при общении с компьютером переходить к принципу "черного ящика" - неважно, что внутри, но если нажать сюда, то получится то что нужно. Многим пользователям этого действительно достаточно, особенно если они постоянно работают с 1-2 программами (например, бухгалтер или секретарь-машинистка) и у них постоянно есть рядом более опытный коллега, способный в любую минуту ответить на вопрос или помочь выполнить то или иное сложное действие. Тем не менее я глубоко убежден, что подобный подход сильно ограничен, поэтому то и дело такие пользователи что-то делают неправильно. Особенно в нестандартных или неожиданных ситуациях (сбой компьютера, отсутствие файла, изменение настроек, нехватка места на диске и т.п.)
Я отчетливо понимаю, что преодолеть инертность мышления порой непросто и моих слов, как бы тщательно я их не подбирал и какими бы убедительными они мне не казались, все равно для многих недостаточно. Именно поэтому на данной страничке я начал собирать цитаты более авторитетных людей.
" Знать, как он работает, не менее важно, чем уметь работать с ПК. Вы можете вполне успешно пользоваться услугами компьютера, не понимая того, что в нем происходит. Однако чем глубже вы представляете процессы, происходящие в ПК, тем лучше будете использовать его возможности... Если что-нибудь случится в процессе работы с компьютером, вероятность того, что вы примите правильное решение, а не наделаете глупостей и не испортите все окончательно, будет выше. "
" Если в инструкцию к программе вкралась опечатка и какая-то команда не работает, то российский студент скорее всего посмотрит на аналогичную команду, попытается сообразить, что делает команда, какие у нее должны быть по логике вещей аргументы, разберется, исправит опечатку и продолжит работу.
Американский студент ни о какой логике вещей скорее всего и не подумает. Он найдет на последней странице номер бесплатного телефона, позвонит на фирму, получит указание, что делать, выполнит его и продолжит работу...
Важно... понимать, что эта вот привычка к пониманию логики вещей - сильная сторона российского образования. На эту привычку, умение, желание понять, разобраться в любом предмете в Америке есть сегодня большой спрос.
Я полагаю, что такой спрос и в Америке, и в России, и во всем мире с годами будет только увеличиваться. "
А.Г. Кушниренко,
автор одного из школьных учебников информатики
(см.
полный текст)
" Приходилось мне слышать и такое: "Народу нет дела до того, как работают компьютеры".
И это, по-моему, тоже верно. Мне, например, доставляет удовольствие узнавать, как работает
тот или иной прибор. Но при этом я предпочитаю выбирать, в чем я хочу разбираться, а в чем - нет. Мне, скажем, трудно без насилия над собой объяснить принцип действия холодильника.
И все же люди часто задают вопросы, которые подтверждают их интерес к внутреннему устройству
компьютера. Один из них: "В чем разница между оперативной и постоянной памятью?"
Это, без сомнения, очень важный вопрос. На подобных понятиях основан весь рынок персональных
компьютеров. Предполагается, что даже новичок понимает, сколько мегов в одной и
гигов другой потребуется его программам. Считается также, что в самом начале знакомства
с компьютером пользователь постигает концепцию файла и представляет себе, как файлы загружаются
из постоянной в оперативную память, и затем из оперативной записываются обратно в постоянную. "
Зачем знать машинный язык?
" Многие читатели без сомнения думают: "Почему Кнут заменил MIX другой машиной вместо того, чтобы просто перейти к языку программирования высокого уровня? Едва ли кто-то использует сейчас ассемблер."
Эти люди имеют право на свое мнение, и им не стоит утруждать себя чтением частей моей книги, связанных с машинным языком. Тем не менее, причины применения машинного языка, которые я приводил в предисловии к первому тому, написанному в начале 60-х, остаются в силе и сегодня:
- Одна из принципиальных целей моей книги состоит в том, чтобы показать, как конструкции высокого уровня на самом деле реализуются в машинах, а не просто показать, как они применяются. Я объясняю взаимодействие соподпрограмм, древовидные структуры, генерацию случайных чисел, арифметику повышенной точности, перевод из одной системы счисления в другую, уплотнение информации, комбинаторный поиск, рекурсию и т.д. с учетом мельчайших деталей.
- Программы, которые требуются в моей книге, как правило такие короткие, что их главные моменты могут быть легко осознаны.
- Людям, которые действительно интересуются компьютерами, следует знать по крайней мере некоторые идеи о том, что представляет собой используемое ими оборудование. В противном случае программы, которые они напишут, будут достаточно причудливыми.
- Машинный язык необходим во всяком случае как выходной для многих программ, которые я описываю.
- Представление основных методов таких, как например, алгоритмы сортировки и поиска, на машинном языке дает возможность провести всесторонее исследование влияния на них размера кэша и ОЗУ, а также других аппаратных характеристик (быстродействие памяти, конвейеризация,
multiple issue, буферы с записью lookaside, [затрудняюсь привести точный русский эквивалент терминов] размер блоков кэша и т.д.), сравнивая различные схемы.
Кроме того, если бы я действительно использовал язык высокого уровня, какой это был бы язык? В 60-х я, вероятно, выбрал бы Algol-W [версия Алгола, реализованная Виртом]; затем в 70-х мне пришлось бы переписать мои книги, используя Паскаль; в 80-х я непременно изменил бы все на C; в 90-х я был бы вынужден переключиться на C++ и, вероятно, на Яву. В 2000-х еще один язык несомненно будет de rigueur. Я не могу позволить себе тратить время на переписывание моих книг потому, что языки входят в моду и выходят из моды; языки не являются предметом моих книг, их предметом скорее является то, что вы можете делать на своем любимом языке. Мои книги фокусируются на "вечных истинах".
Поэтому я буду продолжать использовать в TAOCP [первые буквы слов в английском названии книги "Искусство программирования на ЭВМ"] английский как язык высокого уровня, и буду продолжать использовать язык низкого уровня, чтобы показывать, как машина на самом деле считает. Читателям, которые хотят видеть только алгоритмы, уже готовые к употреблению и написанные на наиболее часто используемом языке, следует покупать книги других людей. "
Д.Кнут,
автор фундаментальной серии книги "Искусство программирования на ЭВМ"
|
(Данная цитата взята с официального сайта Д.Кнута - см. текст после заголовка "Why have a machine language?" Перевод с английского мой собственный.)
|