"...сюда в двенадцать часов новогодней ночи, прорвавшись через пургу, пришли люди, которым было интереснее доводить до конца или начинать сызнова какое-нибудь полезное дело, чем глушить себя водкой, бессмысленно дрыгать ногами, играть в фанты и заниматься флиртом разных степеней легкости... Они были магами потому, что очень много знали, так много, что количество перешло у них наконец в качество, и они стали с миром в другие отношения, нежели обычные люди".
А. и Б. Стругацкие.
«В наше время считается общепризнанным,
что из всего, так или иначе касающегося искусства,
ничто более не может считаться общепризнаным»
Теодор Адорно
Все началось с того, как один человек пытался выяснить решение задачи контеста, который проходил в данный момент. Задача была очень простая, всем было очевидно, что этот человек не займет хорошего места, не получит футболку и т.п. Но тем не менее ни один из 5000+ членов сообщества не дал ни одной подсказки (ну или хотя бы из 30+ человек, которые это видели и знали ответ). Мне такой результат уже давно кажется закономерным и я попробовал объяснить его в двух словах. Теперь попробую чуть более подробно. Заранее прошу прощения у людей, которые в это понятие вкладывают не то, что я. Я лишь хотел изложить свой взгляд.
Сначала немного теории из википедии: Программирование, Олимпиады по программированию, Искусство. Обратите внимание, в последней статье указано "Понятие искусства крайне широко — оно может проявляться как чрезвычайно развитое мастерство в какой-то определённой области".
Мне всегда казалось, что программирование, это своего рода искусство. Вот есть узкая область - класс олимпиадных задач по программированию. Умение быстро и точно решать задачи схоже со спортом, и часто олимпиадное программирование называют спортивным, ведь здесь, как и в спорте, сначала несколько лет тренируешься, потом один раз выступаешь,сливаешь все нафиг и забиваешь на программирование достигаешь некоторых результатов и радуешься им. Но с другой стороны спорт - не сильно творческое занятие. Обычно стратегии составляются не главными участниками и они не блещут оригинальностью и красотой. А в программировании все не так.
Никто не будет спорить, что стихи - искусство. А ведь, что такое стихи? Стихи - это умение вкладывать свои мысли в четкие рамки ритма и рифмы, стиля и словарного набора. Есть множество ограничений, которые не дают просто излагать то, что ты хочешь. Зачем же они? Это добавляет стиху красоты и изящества, это показывает, что автор вложил усилия, чтобы выразить свои мысли таким образом, соответственно, эти мысли были тщательно обдуманы автором, обточены и получили материальную форму в виде стиха. Кроме того, язык мыслей сильно отличается практически от всех языков мира, будь это язык слов, язык изображений, язык звуков или язык архитектуры.
Похожим образом ситуация обстоит и с программированием. Если автор хочет написать стих, ему надо представить мысль, а затем создать стих, выражающий эту мысль. Для того, чтобы решить задачу, требуется сначала придумать решение, а потом последовательно превратить его в алгоритм, потом в программу на языке программирования. Но язык программирования плохо сочетается с языком мыслей, поэтому, мы должны найти способ выразить нашу мысль через этот язык. И мы год за годом улучшаем это умение создавая все более и более совершенные произведения искусства.
Вот вы видите доску в городском доме творчества. На доске сверху ровными буквами написано "Выставка детских рисунков", а под надписью уже не столь ровно изображены различные эпизоды из детского быта. Попробуйте ответить - это искусство? Мой ответ - да, безусловно. Эти дети нашли свой способ общаться с миром, показывать ему свои мысли. Пусть они весьма примитивны и грубо изображены (хотя, бывает по-разному, некоторые дети способны на шедевры, которые и не снились взрослым художникам), но это искусство. Возможно, когда нибудь, один из этих детей будет писать легендарные картины, и люди со всего света будут приезжать, чтобы посмотреть на них. Все начинается с малого.
Я бы хотел, чтобы подобные общества были своего рода клубами искусства программирования(как, например, будетляне), в которых люди общаются, делятся секретами, творят вместе, помогают новичкам, но никогда не будут выдавать чужие мысли за свои.
Буду поддерживать список неплохих комментариев и дополнений:
1. Дополнительная связь программирования и стихов
Сначала немного теории из википедии: Программирование, Олимпиады по программированию, Искусство. Обратите внимание, в последней статье указано "Понятие искусства крайне широко — оно может проявляться как чрезвычайно развитое мастерство в какой-то определённой области".
Мне всегда казалось, что программирование, это своего рода искусство. Вот есть узкая область - класс олимпиадных задач по программированию. Умение быстро и точно решать задачи схоже со спортом, и часто олимпиадное программирование называют спортивным, ведь здесь, как и в спорте, сначала несколько лет тренируешься, потом один раз выступаешь,
Никто не будет спорить, что стихи - искусство. А ведь, что такое стихи? Стихи - это умение вкладывать свои мысли в четкие рамки ритма и рифмы, стиля и словарного набора. Есть множество ограничений, которые не дают просто излагать то, что ты хочешь. Зачем же они? Это добавляет стиху красоты и изящества, это показывает, что автор вложил усилия, чтобы выразить свои мысли таким образом, соответственно, эти мысли были тщательно обдуманы автором, обточены и получили материальную форму в виде стиха. Кроме того, язык мыслей сильно отличается практически от всех языков мира, будь это язык слов, язык изображений, язык звуков или язык архитектуры.
Похожим образом ситуация обстоит и с программированием. Если автор хочет написать стих, ему надо представить мысль, а затем создать стих, выражающий эту мысль. Для того, чтобы решить задачу, требуется сначала придумать решение, а потом последовательно превратить его в алгоритм, потом в программу на языке программирования. Но язык программирования плохо сочетается с языком мыслей, поэтому, мы должны найти способ выразить нашу мысль через этот язык. И мы год за годом улучшаем это умение создавая все более и более совершенные произведения искусства.
Вот вы видите доску в городском доме творчества. На доске сверху ровными буквами написано "Выставка детских рисунков", а под надписью уже не столь ровно изображены различные эпизоды из детского быта. Попробуйте ответить - это искусство? Мой ответ - да, безусловно. Эти дети нашли свой способ общаться с миром, показывать ему свои мысли. Пусть они весьма примитивны и грубо изображены (хотя, бывает по-разному, некоторые дети способны на шедевры, которые и не снились взрослым художникам), но это искусство. Возможно, когда нибудь, один из этих детей будет писать легендарные картины, и люди со всего света будут приезжать, чтобы посмотреть на них. Все начинается с малого.
Я бы хотел, чтобы подобные общества были своего рода клубами искусства программирования(как, например, будетляне), в которых люди общаются, делятся секретами, творят вместе, помогают новичкам, но никогда не будут выдавать чужие мысли за свои.
Буду поддерживать список неплохих комментариев и дополнений:
1. Дополнительная связь программирования и стихов
даа..... этот человек изрядная свинья....
В качестве цитаты из Стругацких, я подразумевал то, что используется в Новогодних контестах:
"...сюда в двенадцать часов новогодней ночи, прорвавшись через пургу, пришли люди, которым было интереснее доводить до конца или начинать сызнова какое-нибудь полезное дело, чем глушить себя водкой, бессмысленно дрыгать ногами, играть в фанты и заниматься флиртом разных степеней легкости... Они были магами потому, что очень много знали, так много, что количество перешло у них наконец в качество, и они стали с миром в другие отношения, нежели обычные люди".
А. и Б. Стругацкие.
Возможно, первый абзац действительно уместнее на Новогоднем контесте, но второй, по-моему, на месте. Здесь действительно собрались люди, которые знают очень много и которые стали с миром программирования несколько в другие отношения. Им интересно не только зарабатывать этим на хлеб (пусть с маслом и икрой), но и программирование как искусство, его красота.
Идея 2. Разумеется, чтобы они могли
споритьвести научную дискуссию.Теперь можно таких умников посылать, написав им всего лишь один линк :) .
Как, разве кто-то ещё не знает, что Бог - программист?!
Правда, речь шла в основном либо о математике, либо обо всём подряд - это были Декарт, Адамар, Пуанкаре, Хинтикка, Пойа, де Боно, Альтшуллер...
Ну, а именно по программированию - есть ещё статейка Сергея Оршанского. Есть ещё моя прошлогодняя курсовая (собственно, откуда я всех этих людей и знаю - я на них ссылался), но, впрочем,
по моему рейтингупо динамике изменения моего рейтинга на TopCoder за тот период (2009/10 учебный год) можно видеть, насколько это было успешно. Нинасколько.Смотрим сюда. Особо пристальное внимание уделяем участку графика, соответствующему первой половине 2009 года. Это вот оно самое. Кстати, я в каком-то треде это уже говорил. Получил где-то -3 за коммент и ни одного ответа. Идиоты, видимо, не поверили и решили, что это я так стебусь. А что, я только рад - им же хуже.
Так а ты сам-то знаешь только "понаслышке" или как?
P.S. Перечитав этот и предыдущий свой коммент, понял, что в них можно увидеть противоречие. На самом деле, конечно, противоречия нет, во всём виновата синтаксическая неоднозначность русского языка. Эпитет "нинасколько" относился только к моей курсовой, а не к тому, что перечислялось до неё.
Правда на практике выходит так что специалисты решают свои задачи и выдвигают свои идеи без помощи Альтшуллеризма, а толпы альшуллерианцев наоборот заняты разработкой идей о разработке идей, но помимо этих идей ничего не разрабатывают... Или кто-то знает хорошие контрпримеры?
М-м-м... Правда трудно проводить границы... Возьмём например одного из классиков - Декарта и его "Размышление о Методе". Вроде бы человек серьёзно пытается объяснить что мыслить надо последовательно и логически. Но делает это так пространно (и в конце с такими наивными примерами) что читать как-то неприятно. И в то же время Галилей с его "мысленным экспериментом" о падении тел - гениальная игра ума - и притом вряд ли он сидел и курил Декарта чтобы узнать "как же это мыслить-то надо"...
В общем смысл "шифровки" был в духе "программирование - это процесс творческий, доставляющий удовольствие сравнимое с написанием стихов или сочинением музыки"... Причём это явно была цитата из какого-то более древнего источника.
Так что мысль не новая. Безусловно есть занятия, носящие оттенок креатива (хе-хе, модное словцо которое обычно суют куда ни попадя) - и соответственно доставляющие восторг от того что "ой, что-то интересное такое и выходит из под наших ручек". Наиболее чётко это известно каждому кто пытался писать, скажем, алгоритмы для игр в шашки-шахматы и т.п. "ой, оно меня обыгрывает - какая прелесть!"
Правда (ложка дёгтя, да) олимпиадное программирование я бы скорее отнёс не к искусству, а к спорту (хотя и с элементами искусства). Чистое "искусство" получается тогда, когда мы, уединившись вечером от родных, близких, телефонов и т.п. садимся и пишем программулины, которые никогда не будут участвовать в соревнованиях, которые не делают ничего достаточно полезного (или даже осмысленного) - но которые нас, как программистов, веселят, забавляют и т.п.
Примеры таких "творений" каждый найдёт в своей практике. У кого-то это "генератор псевдонаучных текстов" (Л.Броуди), у кого-то - программулина, раскладывающая пасьянс миллион раз для определения вероятности выигрыша, у кого-то - код который циклически копирует себя внутри сегмента памяти и переходит к выполнению копии на манер "самобеглого mov-а"...
И вот напишет человек немалыми усилиями такую программулину, довольный вылезает из-за компьютера и об одном жалеет - что не с кем поделиться, какая красота получилась (хоть и бесполезная).
Кстати, интересно спросить - кто за собой какие "бесполезные" творения припоминает...
Эм, tourist?
Да и чаще всего он пишет на паскале, это тоже не стоит забывать. :-)
Но под "шедеврами" я понимаю программы, которые не стыдно через пять лет показать работодателю со словами "а еше у меня очень красивый, акууратный, понятный, безбажный и легкорасширяемый код". Ну и еще на них должно быть приятно смотреть :)
Сытый голодного...Красный фиолетового не разумеет. :)Да и не стоит путать шедевральные исходники для СП и исходники промышленного программирования.
Ну, да. В таком случае я просто не понимаю, что значит "шедевральный код" в СП.
Ну не совсем я цвет имел, а скорее уровень умений и знаний.
А под шедевральным кодом я изначально имел в виду скорее идеи решения, чем сами исходники. Ну да ладно. :-)
В анимации использованы объекты, их свойства, направляющие движения и т.д.
Я считаю, что это тоже программирование и тоже искусство!
Но дело даже не в этом. Просто в реальной жизни это задача дизайнера. А так, в качестве учебной работы, конечно хорошо.
Кстати, если уж приводить примеры математической красоты, то нельзя не вспомнить про фракталы.