Окончательно поняв, что моя судьба и судьба страны, в которой я живу, уже не просто расходятся, а прямо-таки разбегаются, я решил провести ревизию своих знаний и умений, пригодных к использования ЗА пределами России и стран бывшего СССР. Обнаружив, что за пределами бывшего СССР(а) слова "программист 1С" вызывают в лучшем случае недоумение, а в худшем -- гомерический хохот, я понял что срочно надо переквалифицироваться. В управдомы я не хочу, решил попробовать себя в каких-нить объектных языках широкого профиля. Поставил себе SQL-сервер, ВижуалСтудию и начал решать некую задачку (вполне себе реальную, ну не "Привет, мир" же писать программисту с 15-летним стажем).
И вот тут я натолкнулся на некую свою внутреннюю проблемку. Я НЕ МОГУ принять СТИЛЬ программирования на Си шарп. Не ПОНЯТЬ, а именно ПРИНЯТЬ. И "виной" этому то, что у меня были ОЧЕНЬ ХОРОШИЕ учителя программирования. Вот только учили они не тому, что нужно сейчас. Когда я начинал учится программированию, в мире было только ОДИН подход к тому, что такое программирование и как должна быть устроена ХОРОШАЯ программа. Этот подход предельно четко и лаконично выразил великий Никлаус Вирт в своей книге-манифесте "Алгоритмы+структуры данных=программы". Сейчас этот подход называют ДЕКЛАРАТИВНЫМ программированием. Вот этот подход и вложен, да что там вложен -- буквально ВБИТ в мои мозги. Основательно вбит -- со всем талантом моих преподавателей.
Но с тех пор прошло чуть более тридцати лет. Для информационных технологий вообще и для программирования в частности -- это все равно, что несколько столетий. Декларативное программирование потихоньку отползло куда-то на задворки мировой программистской культуры и осталось там для каких-то крайне специальных целей (что-то вроде ручной ковки или гончарного круга в век точного литья и станков с ЧПУ). На смену ему пришло программирование ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ, в котором основным понятием стали не ДАННЫЕ, а КЛАССЫ и ОБЪЕКТЫ. Объекты, у которых есть СВОЙСТВА и к которым могут применяться МЕТОДЫ. И вот это самое объектное программирование я так до сих пор и не могу принять. Я его ВЫУЧИЛ, я в нём работаю, но внутренне я его НЕ ПРИНЯЛ. Я его постоянно "корёжу" под привычное мне декларативное программирование и постоянно, сам того не замечая, пытаюсь относится к объектам как к особому типу данных... Хотя если меня попросить прочитать на эту тему лекцию -- я очень хорошо расскажу, почему объект -- это не данные, точнее, не просто данные. ЗНАНИЯ-то у меня есть...
И вот в связи со всем этим у меня в голове крутится крамольная мысль -- а может было бы лучше, если бы мои преподаватели программирования были чуть-чуть ПОХУЖЕ? Может быть не надо ВБИВАТЬ в головы учеников умения и навыки профессиональной работы НАСТОЛЬКО хорошо? Ведь ничто не вечно под луной -- особенно в 21-ом веке. Сейчас на смену объектно-ориентированному программированию приходит программирование функциональное. И что будут делать те нынешние студенты-старшекурсники и выпускники ВУЗ(ов), которые великолепно усвоили объектно-ориентированный подход и пишут прекрасно работающие программки на том же Си шарпе (или обджектив Си, неважно...) через 15-20 лет, когда на задворки мировой программистской культуры отползут уже объектные языки и понадобится умение не просто писать на каком-нить Haskell-е, а ДУМАТЬ соответствующим образом. Сейчас общим местом стала фраза про то, что знания быстро устаревают и потому их ценность резко снижается. Я больше скажу -- ценность знаний, а особенно связанных с ними умений и навыков может не просто падать до нуля, а быть ОТРИЦАТЕЛЬНОЙ величиной...
И что с этим делать, я не не знаю... Думать надо.
Journal information