Программирование - искусство. Программисты - творцы
Злобин Евгений
🕛 20.07.2006, 11:43
Серьезное искусство, как и всякое
серьезное дело, требует всей жизни.
И.А. Гончаров
Hallo, я рад, что вы решили прочитать эту статейку, значит вы не равнодушны к программированию! А что на ваш взгляд значит программирование?! По-моему - это творчество, а творчество это своего рода искусство. Значит программист это "творец", человек искусства. Но все ли программисты такие, конечно же, нет. Большинство программистов используют уже готовые наработки его предшественников. Но это всё легко объяснимо, для этого давайте окунёмся в экскурс прошлого. серьезное дело, требует всей жизни.
И.А. Гончаров
Компьютеры, изначально созданные для узкоспециализированных военных задач, были восприняты как платформы с поистине безграничными возможностями. В то далёкое время математики занимались исключительно гипотетическими машинами, которые имели очень отдалённое отношение к действительности. Воплощенные в металле, инженерные идеи обогнали на десятилетия вперёд даже знаменитых математиков. Предложенная дискретная архитектура была совершенна и существует до сих пор, приведя к развитию соответствующей дискретной математики, большей частью описывающей то, что инженеры давно воплотили в жизнь. Так изначально практические компьютерные технологии оставили позади математические модели.
Сегодня трудно представить, что было время, когда компьютеры обслуживались технической элитой, решавшей рутинные, ''спущенные сверху" задачи. Впрочем, для начальства не было секретом, что свободное (и не только свободное) машинное время использовалось для личных нужд и исследований персонала. Так и зарождалась субкультура людей, которые открыли в грохочущем монстре вторую Вселенную, свое второе Я.
Чудовищное отставание нашей страны, в то время мы входили в СССР, в области вычислительной техники, жёсткая дисциплина, постоянные репрессии привели к тому, что субкультура программистов, возникла в стенах лабораторий США и уже оттуда распространилась на весь мир. Как следствие, эта сфера большей частью американизирована, особенно у нас, на фоне массового использования американской, а не "родной" программно-аппаратной базы.
Ну вот, мы и подобрались к цели этой статьи - научить читателя самостоятельно добывать необходимые ему знания и навыки, порой, не имея соответствующей литературы и информации, а также рассказать о программистах и программировании.
Современное информационное изобилие приводит к атрофированию навыка самостоятельного получения необходимых знаний. Парадоксально на первый взгляд, но недостаток литературы развивает и тренирует мозги куда лучше, чем её избыток.
Теперь давайте разберёмся с существующими типами программистов и объясним поставленное утверждение в начале этой статьи. На мой взгляд, существует два типа программистов, кардинально отличающихся друг от друга. Первый тип это как раз "творцы", которые создают новое, им интересно решать сложнейшие задачи, порой тратя на это огромное количество времени. Второй тип - коммерческие программисты. Коммерческий программист, какими бы не были его наклонности, имеет очень мало шансов стать гением своего дела, даже являясь профессионалом. Работая по заказу, ограниченному жесткими временными рамками, он просто не в состоянии углубляться в дебри кода или ценой трех бессонных ночей сокращать уже до предела оптимизированную программу на один байт.
В 60-х годах темпы развития вычислительной техники существенно отличались от сегодняшних и на разработку ПО отводилось достаточно много времени, так что познавательные эксперименты не были недостижимой роскошью. Особо хотелось бы отметить, что оптимизация тогда была не только показателем "крутости" программиста, но и необходимостью. При существовавших ограничениях памяти, скорости и возможностей периферии на той технике могли программировать лишь гении.
Язык определяет стиль мышления, поэтому мышление программиста постепенно преображается под воздействием используемой архитектуры в образ мышления её создателя. Чем мне нравится программирование в далёком прошлом, ещё, когда программирование только начало зарождаться, - критически низкие ресурсы служили мощным толчком к глубокому изучению команд процессора и заставляли программистов проводить бессонные ночи в поиске нужных комбинаций расположения сотен байт в скудной оперативной памяти. На больших машинах это было попросту ненужно: ресурсов хватало даже для выполнения достаточно "кривого" и необдуманного кода.
До конца шестидесятых годов программистов можно было сопоставить с античными мастерами. Программирование ассоциировалось с высшим профессионализмом и вытекающей из него культурой поведения. Картина до конца шестидесятых годов была следующая - в условиях полной замкнутости и отсутствия какой-либо связи между компьютерными центрами страны каждый программист должен был получить необходимые ему знания САМ. Это был долгий и тернистый путь. Информатика тогда лишь зарождалась, и даже эффективные алгоритмы и приемы ещё не были канонизированы и широко известны. Как бы ни был очевиден древовидный поиск или линейная сортировка, но до них нужно было додуматься самому и, - увы, - далеко не один раз. Как следствие, все алгоритмы десятки раз открывались заново, прежде чем информация о них успевала дойти до адресатов "естественным" путём - через книги и университеты.
Конец 60-х - начало 70-х годов - годы непрерывного совершенствования технологий программирования и аппаратного обеспечения. Росла вычислительная мощь ЭВМ, ёмкость периферийных накопителей и быстродействие центрального процессора. Собственно говоря, в то время всё упиралось скорее в деньги, чем в технологии. Если клиент хотел решать с помощью компьютера серьезные задачи, то получение необходимой машинной мощности зависело только от его кошелька. Производители компьютеров заметно обгоняли в те годы потребности клиентов. И необходимость в высокопрофессиональных программистах и тщательно оптимизированном коде мало-помалу начала отпадать. Могли ли программисты представить такое расточительство хотя бы пару лет назад? Си (язык программирования) стал первым кирпичом в фундаменте быстрых средств проектирования, на котором сегодня построены такие чисто визуальные системы как Visual Basic и Delphi.
Время обучения программистов резко сократилось, и былые профессионалы становились во многих местах просто не нужны. Было бессмысленно оплачивать их квалификацию, когда множество людей соглашалось работать на куда более худших условиях.
И тут началось самое интересное. Если прежде, в отсутствие конкуренции, время, отведённое на разработки, было, как правило, практически не ограничено, а конечная стоимость не критична, то теперь каждый стремился обогнать другого. Это соревнование не проходило безболезненно. И в первую очередь страдал код, вернее его качество. Если бы этим всё и ограничилось, то было бы полбеды, и конце концов настоящий художник проявил бы себя и в таких условиях. И код, написанный даже в условиях этой сумбурной спешки настоящим программистом, все равно бы нес в себе долю оригинальности и собственного "я".
Однако, стремясь максимально эффективно использовать труд людей, руководство разделяло коллектив на небольшие группы из трех-пяти человек, каждый из который решал свою локальную задачу, тесно зажатый её рамками.
Творить и показывать свою индивидуальность в этих условиях стало попросту невозможно. И профессионалы начали потихоньку разбегаться. Красивые решения уже никому не были нужны и никого не интересовали. Возможности компьютеров того времени были уже достаточны, чтобы "небрежно" написанный код удовлетворял заказчика по всем параметрам (скорости, объёму). "Железо" дешевело куда быстрее программного обеспечения. Легче было купить вчетверо более мощный компьютер для небрежно написанной дешёвой программы, чем приобретать для дешёвой машины оптимизированный до последнего байта код. Очень жаль, что никогда не вернуть того времени, тех машин, тот исследовательский дух, когда компьютеры были ещё чисто научной, но никак не коммерческой игрушкой. А как жаль, что не удалось пожить в то время!
Вот так, постепенно мы переходим в нынешнее время. На данный момент за окном век информационных технологий, революций в вычислительной технике и программном обеспечении. Обратите внимание как быстро компьютер вошёл в жизнь практически каждого человека. Сейчас компьютер это не роскошь, а необходимая вещь почти в каждом учреждении и доме, для некоторых это даже средство существования. Сегодня можно творить и создавать новое, хотя это и кажется очень сложным, ведь всё уже изобретено, но вы только попробуйте и тогда вы поймёте, что вся суть в процессе творчества, создания новых программ.
Я думаю, что теперь понятно, что профессионалами не рождаются, ими становятся. И если вы занимаетесь программированием, то я надеюсь, что вы будете не просто коммерческим программистом, а творцом!