Rambler's Top100
 
 
  05 декабря 2008 года Компьюлента
CIO
Терралаб
Бизнес-журнал
в поле зрения | обзоры и тесты | своя игра | интерактив
Информатики не проходили?
Автор: ГЕОРГИЙ КУЗНЕЦОВ
Опубликовано в журнале "Компьютерра" №20 от 25 мая 1998 года

Когда Анатолий Левенчук изъявил намерение заняться школьной информатикой, я, хоть и не воспротивился, но выразил крайний скептицизм. Тогда Левенчук объяснил, что его "тема" будет не о нехватке компьютеров и педагогов, не о "ершолах", и вообще, никакой социальности он разводить не намерен. Речь пойдет о том, какую пользу навыки программирования могут принести среднему человеку, который компьютеры в лучшем случае юзает, а может, и вообще с ними не сталкивается.

Процедурное программирование учит внятно и непротиворечиво описывать сложные действия. Это может пригодиться каждому - чтобы сочинять кулинарные рецепты или инструкции, например. От общения с другими программистскими инструментами и задачами тоже может получиться какая-то общечеловеческая польза. Не поручусь, что так говорил Левенчук, но так я его понял.

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

Начну с оговорок, или, говоря профессиональным языком, с disclaimer'а. Программирование бывает разное, в зависимости от потребностей программиста и от привычного для него способа мыслить. Широко известно программирование математиков (это не математическое программирование и не математиков при этом программируют), затем, аналогично, программирование естественников и технарей, бухгалтеров и экономистов, и так далее.

Не знаю, каков программистский опыт Анатолия Левенчука. Основываясь на его высказываниях, могу предположить, что он системщик, для которого программирование начинается на уровне процессора, с простых команд, ветвлений и циклов. Мое же программирование, это программирование разработчика цифровой электронной аппаратуры. Не считая команд процессора PDP-11 и кое-каких юношеских грехов, можно сказать, что начинал я с Fortran и Pascal, вырос в Unix и нашел свой программистский рай в системе Smalltalk.

Двадцать лет назад мы с Левенчуком могли бы только гадать о том, как компьютеры повлияют на своих пользователей. Теперь многое уже сбылось, и чем больше Россия отстает от других стран, тем легче предсказывать будущее на этой части суши.

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

Из компьютерного дела пришли некоторые важнейшие социальные идеи. Так называемые плоские корпорации, одна из которых неплохо работает, выпуская еженедельник "Компьютерра", воплощают парадигму объектно-ориентированного программирования. Даже термины при их описании используются те же самые.

Как известно, программа на "структурированном" процедурном языке, от Agol до C, представляет собой иерархию процедур или функций, пересекающуюся с другими иерархиями. Настоящая объектно-ориентированная система (речь, конечно, не о C++) состоит из независимых, изолированных, целостных объектов, которые знают друг о друге и оказывают друг другу услуги.

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

Каждый такой объект ведет себя совершенно самостоятельно. Есть даже такая метафора: контрактное программирование. Конечно, можно сконструировать в каком-то смысле иерархическую структуру, но только если придумать этот смысл и привнести его извне.

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

Недавно я слышал, как одна радиостанция проводила викторину. Составитель заложил в студийную PC вопросы и правильные ответы на них. Эфирный ведущий читал с экрана вопрос, принимал по телефону ответ, вводил его в компьютер, и тот проигрывал соответствующий звуковой клип: правильно или неправильно. Вопросы были разные. Например, такого типа: "Сколько пуговиц на рукаве у милиционера". Правильный ответ: "Три". Или вот такого: "Почему у милиционера на рукаве три пуговицы". Правильный ответ: "Чтобы нос не утирал". Легко представить себе, как шла у них игра.

В точности такие ожидания можно было наблюдать у пользователей на заре компьютеризации. Как видите, и поныне люди не могут взять в толк, до чего же компьютер туп. Кулинарные рецепты говорят: нарежь, размешай, взбей, вари до готовности. Только программист способен объяснять процедуру нарезки в стиле оператора for и получать от этого удовольствие. Есть, конечно, непроцедурный подход, когда пользователь может командовать исполняющей системе: "Сделай мне вот это, сама знаешь, как". Но и такое программирование лишь несколько более соответствует ожиданиям обычного человека. Удивляться, а тем более подражать тут тоже нечему.

По существу, обсуждаемая здесь гипотеза состоит в том, что через программирование можно научить управлять. Немного зная программистов, смею вас уверить, что повышенных способностей к управлению (хотя бы самим собой) у них не наблюдается. На самом деле, более непредсказуемых и неуправляемых работников в истории промышленности, пожалуй, не бывало.

Чтобы управлять созданием программ, надо мыслить сетевыми графиками и держать в уме критический путь. Большинство людей удивительно плохо справляется с такой работой, и программисты - ничем не лучше прочих. Управление проектами не имеет аналога в их деятельности. Такие задачи возникают на другом уровне, при управлении выполнением программ, а этим занимаются только проектировщики компиляторов и операционных систем.

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

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

Я отвечаю только по электронной почте. Письма читателей по умолчанию считаются конфиденциальными. Мой адрес:

me@snarky.com

ТАКЖЕ В РАЗДЕЛЕ
18 августа 1998 года
На смерть юзера 
10 августа 1998 года
Ручка к метле? 
27 июля 1998 года
Пятая колонка  
13 июля 1998 года
Азиатский способ 
29 июня 1998 года
Осажденная крепость 
 
САМОЕ ПОПУЛЯРНОЕ
Много лучше воровства
Куда деть домашнюю видеоколлекцию? Покупать винчестеры - как самые дешевые, самые быстрые, и, возможно, самые надежные хранители информации. Но тут возникает следующий вопрос: купил, а что дальше?
Самый быстрый на планете
Пока продажи процессоров Core i7 только начинаются, мы подводим итоги знакомства, ибо работаем на новой платформе без малого месяц. Действительно, ничего быстрее Intel еще не делала. Но как почувствовать эту скорость?
Ноутбучные отчеты
Никакого повидла - Сергей Голубицкий отчитывается по ноутбукам, с которыми провел последние три года. Как сломать ASUS, чем хороша Toshiba и сколько стоит Sony.  
Как самураи финнов выгнали
Крупнейший в мире производитель мобильных телефонов - финская компания Nokia - сунулся в Японию, в надежде получить 10% местного рынка. Но не тут-то было.
/  бумажный номер

Тема номера: Кризис в ИТ Читайте на сайте тему номера "Кризис в ИТ" и другие статьи из журнала "Компьютерра" от 04 ноября 2008 года
  Архив номеров журнала

О проекте | Реклама на сайте | Рассылки сайта | КПК–версия | RSS-трансляция

© ООО «Компьютерра–Онлайн», 1997 — 2008.
При цитировании и использовании любых материалов ссылка на портал «Компьютерра–Онлайн» обязательна (для Интернет–изданий — www.computerra.ru)
Редакция сайта: site@computerra.ru
Техподдержка сайта: websupport@computerra.ru
Редакция журнала: inform@computerra.ru
Отдел рекламы: reklama@computerra.ru
Телефон: (495) 232–22–61, (495) 232–22–63
Работает на «Битрикс: Управление сайтом»
Почта защищена сервером «СПАМОРЕЗ»
Трилан — продвижение сайта,
поисковая оптимизация сайта

Сайт работает на сервере DEPO Computers
Rambler's Top100