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