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