Может ли программист ничего не понимать в своем деле?
08.07.2010 13:10, Рубрика: Жизнь
Заглавие в высшей степени странное. Читатель явно недоумевает. Мне, кстати, делали такой комплимент.
Сначала я расстроился. Как же так? Опыт длительный.
Начинал еще с ЕС ЭВМ. Масса сменяющей друг друга техники прошло через
мои руки, разные системы, языки – и я вдруг «ничего не понимаю». Потом
призадумался. А что, вообще, означает
«программист»? Естественно, человек, который пишет программы. От
последнего слова и возник этот термин. Но сейчас в него вкладывают
несколько более широкое понятие. Программистами называют и системщиков,
и сетевиков, и администраторов. Сами они программы не пишут, но
программистами считаются. А программирование управляющих программ для
станков с числовым программным управлением? Программист УП для станков
с ЧПУ. Так это звучит. Даже просто периодическое ухаживание за
компьютерами, поддержание их работоспособности тоже относят к
разновидности работы программиста. Вернемся к
истокам, когда вычислительная техника делала только первые шаги. Не
было языков высокого уровня. Мизерная память, и всегда недостаточно
места. Программы писались в машинных кодах. Гораздо позже появился язык
ассемблера, приближенный к этим кодам, но уже язык! Более легкий для
понимания и требующий транслятора в эти коды. Когорта программистов
резко расширилась. Знание кодов конкретной машины перестало быть
актуальным, а работа с ними из ранга искусства превратилась в ненужный
хлам. Новый виток ознаменовался появлением
языков высокого уровня. Они требовали больше памяти и места, но то и
другое было уже в избытке. Я помню, как сам возился с операторами
ассемблера, выискивая, как бы сократить память хотя бы на несколько
байтов. За скорость тоже шла непрерывная борьба. И за место. Ох, уж это
место на диске! Приходилось удалять все лишнее и не только, чтобы
отладить новую программу. Еще один
душещипательный фактор всплывает в памяти. Машинное время. Мы за него
дрались! Образно выражаясь, конечно. Эра персональных компьютеров
начисто ликвидировала эту проблему. Но, стоп!
Я увлекся. Не лекцию о развитии техники я читаю. Главная мысль в том,
что никакая наука, никакое производство так стремительно не
прогрессировало, как компьютеры. Математика, к примеру, – наука вечная.
Ряды Фурье, какими они были век назад, такими и остались. Значения
синуса тридцати градусов не изменится и через столетия. А
вычислительные машины… Их представить себе невозможно даже через
двадцать лет. В фантастических романах тридцатилетней давности ЭВМ
описывались огромными с необозримым количеством проводов, кабелей и
кнопок. Разве такие сейчас ноутбуки с беспроводным выходом в Интернет? Менялась
техника, системы, менялись и языки программирования, приемы и подходы.
И все это на протяжении одного инженерного поколения, которое еще,
кстати, вполне активное. Переход всего лишь на новую версию Windows
требует определенного приспособления и на определенное время замедляет
работу. А что можно сказать о шифровальщике машинных кодов, перепрыгни
он из своего времени в наше? Многое, конечно, он счел бы более удобным,
простым, даже фантастически легким, но не сразу. Нужно время для
адаптации. И смог бы он быстро освоить современное программирование?
Весь его опыт сводился к самой сложной для того времени проблеме:
составить машинные коды и заставить их работать. А тут совершенно
другая идеология! Точно так же при любом
качественном скачке программист предыдущего уровня может растеряться на
следующем, не сразу понять его и даже не стать осваивать, всеми силами
цепляясь за знакомое и понятное. А скачков было достаточно. Много
времени и сил я отдал операторному программированию. Когда стало
преобладать обьектно-ориентированное, мне тяжело было в него вникнуть.
Надо было взглянуть на все с непривычной точки зрения. Помню, как
молодые специалисты, которых вскормили новым подходом еще на
институтской скамье, легко ориентировались в классах, объектах и их
свойствах. Связать же два оператора им было трудно. Они сразу начинали
искать уже написанный где-то компонент, чтобы быстро присоединить его к
программе. Я же в то время – наоборот: мог элементарно создать сто
операторов, но не видел, как найти всего лишь одну команду, заменяющую
добрую половину из них. Возникает ассоциация с кульманом. Конструктора,
создающие сложные чертежи, в свое время не видели больше ничего, кроме
хорошего карандаша, ластика и исправного кульмана. Когда появилась
возможность делать все на компьютере, многие из них испугались да так и
не перешли на новые рельсы. Легкость проектирования чертежа виртуально
– без бумаги и кульмана – не всеми была понята. Качественным
скачком было появление персональных компьютеров. Потом переход к
многооконному режиму. До сих пор сменяют друг друга системы Windows.
Самым изумительным явлением и скачком в развитии стало появление
Интернета. Когда с Запада хлынули готовые программные системы,
собственное программирование оказалось в загоне. Многие разработки были
переведены еще с нашей собственной неуклюжей техники и имели старую
идеологию. Развиться они просто не успели. Готовые иностранные системы
имели отличный интерфейс и решали нужные нам проблемы. Поэтому многие
программисты стали переквалифицироваться в пользователей новых систем.
Свое писать оказалось не нужно. Появление
Интернета снова потребовало создания программ – программ для мировой
Сети. Программисты сейчас там востребованы. Но требуется новый уровень
знаний и умения. Появилось множество языков web-программирования. И
каждый из них требует скрупулезного освоения. Зачастую программист с
большим опытом оказывается в ситуации: могу, хочу, но нужно освоить.
Вот и получается, что он вдруг не подготовлен и ничего не может сразу
сделать. И все это из-за быстроты сменяемых декораций. Программист как
бы едет в привычном поезде, где все до боли знакомо. А за окном мимо
проносятся новые экспрессы. Скоро поезд устареет, а как взять билет на
экспресс? Меня не раз посещала мысль, что
несколько последних лет развитие техники идет вперед большими
прогрессивными шагами. Но это наращивается количество. Наращивается
удобно, хорошо. А впереди предстоит новый качественный скачок.
Возможно, он настолько изменит наши подходы и к технике и к
программированию, что мы пока этого себе даже не представляем.
Вероятно, где-то уже идет зарождение нового, но оно еще не приобрело
законченные формы. Какими же будут компьютеры всего через десять лет?
http://www.domik.net/mod/main/news/life/news95942.html
|