Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Является ли творчеством написание кода во всех его проявлениях?
Почему программирование доставляет удовольствие? Как вознаграждаются все усилия профессионала?
Первое — это абсолютная радость творчества. Как ребенок радуется, стряпая пирожки из песка, так взрослый наслаждается процессом создания вещей, особенно если он сам их придумал. Мне кажется, что прообразом этой радости творчества должно быть то удовольствие, с которым всевышний занимался сотворением мира и которое нашло свое отражение в оригинальности и красоте каждого листика, каждой снежинки.
Второе — это радость создания вещей, полезных другим людям. Где-то в глубине души мы хотим, чтобы другие использовали нашу работу и находили ее полезной. В этом смысле продукт программирования не слишком отличается от первой детской подставки для карандашей «в подарок папе».
Третье — это очарование, заключенное в самом процессе создания сложных, загадочных объектов, состоящих из взаимосвязанных, непостоянных частей, и наблюдения за тем, как они работают в запутанных циклах, сохраняя верность принципам, заложенным в них с самого начала. Вычислительная машина обладает притягательной силой биллиарда или музыкального автомата, доведенных до логической завершенности.
Четвертое — это возможность постоянно учиться, вытекающая из непрерывно меняющегося характера задачи. В том или ином отношении проблема оказывается новой, и человек, ее решающий, приобретает новые знания, иногда теоретические, иногда практические, а иногда и те, и другие вместе.
И последнее — это удовольствие работать с очень гибким материалом. Программист, как поэт, работает почти исключительно головой. Он строит свои замки в воздухе и из воздуха только силой своего воображения. Очень редко материал для творчества допускает такую гибкость, такую возможность столь частых улучшений и переделок и такими простыми средствами позволяет осуществлять громадные замыслы. (Но, как мы увидим позднее, эта же самая гибкость порождает свои проблемы)
Материал поэта — слова, и результат — те же слова; в отличие от стихотворца, программист создает программный продукт, реальный в том смысле, что сам программист движется и работает, производя видимый результат, отличный от него самого. Он печатает результаты, чертит рисунки, производит звуки, управляет движением руки. Волшебство мифов и легенд стало явью в наши дни. Вы печатаете на клавиатуре заклинание, и вот экран дисплея оживает, показывая объекты, которых не было и могло не быть никогда.
Программирование доставляет нам радость, потому что позволяет удовлетворить стремление к творчеству, глубоко заложенное в каждом из нас, и разделить это чувство радости с другими.
Любой человек оценит хорошую музыку
Программисты тоже творят. Но не эстетику, как музыканты и художники.
Любой человек оценит хорошую музыку, а вот хороший код (именно текст кода) практически никто не оценит.
— Human beings have dreams. Even dogs have dreams, but not you, you are just a machine. An imitation of life. Can a robot write a symphony? Can a robot turn a… canvas into a beautiful masterpiece?
— Can you?
программист == творчество || программист != творчество
программирование == творчество || программирование != творчество
программист == творческий человек || программист != творческий человек
== определен для типа выражения программист, а так же, как оператор || определен для типа результата вычисления оператора == над программист, примененный к творчество.== язык приводит операнды к одному типу. В данном случае значение выражения «ложь» едва ли возможно, зато возможны различные аварийные или исключительные сценарии развития событий, если типы выражений программист и творчество по каким-то причинам нельзя привести к общему знаменателю. Сюда же идут такие химеры, как боксинг/анбоксинг из Java.творческий человек — явная синтаксическая ошибка, хотя в некоторых, поощряющих развитие DSL, можно хитро настроить приоритет функции творческий так, чтобы вся конструкция была валидной.to be || ! to be
Является ли творчеством написание кода во всех его проявлениях?
А инженер это творческая профессия?
А токарь?
Мне, честно говоря, непонятно, почему программисты чаще себя сравнивают с музыкантами и художниками, а не с инженерами и токарями/сварщиками/слесарями.
А инженер это творческая профессия? А токарь?
Далее мое воображение пытается нарисовать в голове образ специалиста из области ИТ, сидящего в переходе с ноутбуком в руках, интенсивно нажимающего на клавиши пальцами, создавая какую-то программу или библиотеку. Ноутбук при этом подключен к большой панели, где виден его код. Рядом с ним стоит парень и смотрит ему в ноутбук, с горящими глазами, видя какой крутой код делает наш герой.
Далее мое воображение пытается нарисовать в голове образ писателя, сидящего в переходе с ноутбуком в руках, интенсивно нажимающего на клавиши пальцами, создавая какую-то книгу. Ноутбук при этом подключен к большой панели, где виден его текст. Рядом с ним стоит парень и смотрит ему в ноутбук, с горящими глазами, видя какой крутой текст делает наш герой.
Далее мое воображение пытается нарисовать в голове образ композитора, сидящего в переходе с ноутбуком в руках, интенсивно нажимающего на клавиши пальцами, создавая какую-то композицию. Ноутбук при этом подключен к большой панели, где видны его ноты. Рядом с ним стоит парень и смотрит ему в ноутбук, с горящими глазами, видя какую крутую музыку делает наш герой.
Пытаюсь провести параллель программиста с другими творческими профессиями, но почему-то у меня не получается. Возможно, для примеров использую не те профессии.
И если бы в нашем проекте я занимался исключительно написанием кода, уже давно поставил бы на себе крест, как на творческой личности.
Я все больше и больше прихожу к выводу, что программист — это переводчик. Человечество за последние семь десятилетий создало множество национальностей в лице вычислительных машин со своими языками. Чтобы они послушно выполняли требования людей, человечеству необходимы переводчики с языка людей
не было бы знаменитых музыкантов, на которых билеты отрывали бы с руками.
Да и качество конечного продукта (исполняемая программа) может вообще не зависеть от программиста, поскольку огромное влияние на работу программы оказывают качество компилятора, рантайм библиотек и операционной системы.
Многие (в том числе и я) склонны называть программой именно исходный код, а не то бинарное месиво, которое получается на выходе компилятора X и запускается на выполнение в операционной системе Y.
Тема вообще-то весьма холиварная, поскольку сугубо философская. :)
Однако программирование во многом не схоже ни с промышленностью, ни с искусством. Мне кажется, что в мире продукции программы — это скорее хэнд-мейд.
Творчество — процесс деятельности, создающий качественно новые материальные и духовные ценности или итог создания объективно нового. Основной критерий, отличающий творчество от изготовления (производства) — уникальность его результата. Результат творчества невозможно прямо вывести из начальных условий.
Программа, в которой поменяли все имена переменных на более читабельные — тоже творчество. Программа, написанная с нуля по точным спецификациям (например, решающая квадратное уравнение) — много ли творчества нужно?
Придумать полностью новую программу — я бы скорее сместил акцент на «придумать задачу и решение» или хотя бы только решение. Потому что программы — это не картины, которые возникают только из воображения, и не музыка, которая пишется под настроение. У любой программы есть задача, которую она решает.
Сверхзада́ча — термин, введённый К. С. Станиславским для обозначения той главной цели, ради которой создаётся пьеса, актёрский образ или ставится спектакль[1][2]. Термин получил широкое распространение в театральной практике и со временем приобрёл иносказательное значение: высшая цель, которую необходимо достичь[3].
Согласно Станиславскому, актёр, выходя на сцену, выполняет определённую задачу в рамках логики своего персонажа (то есть герой хочет что-то сделать и добивается или не добивается этого). Но при этом каждый персонаж существует в общей логике произведения, заложенной автором. Автор создал произведение в соответствии с какой-то целью, имея какую-то главную мысль. И актёр помимо выполнения конкретной задачи, связанной с персонажем, должен стремиться донести до зрителя главную мысль произведения, которая и является сверхзадачей[4].
По сути, «сверхзадачей» является режиссёрский замысел — индивидуальное толкование главной идеи произведения, той цели, ради которой оно было написано, или собственная цель режиссёра, иногда отличная от авторской, в любом случае — та общая задача, ради которой произведение ставится на сцене[5].
Мы так сразу и заявим: роман рассматривает человека на фоне и перед лицом глобальной, нечеловеческой силы. Не пугайтесь, мы имеем в виду не обязательно Саурона. Роман – это человек перед лицом судьбы, человек перед лицом войны, человек перед лицом страсти. Человек на фоне потрясений, коренных изменений социума, природных катаклизмов, стихии, перелома времен. «Век вывернул сустав» – хотя «Гамлет», безусловно, трагедия, а не роман. Иногда равнодействующее желание, стремление, результирующий вектор страстей, интриг и действий большого числа людей также превращается в нечеловеческую космическую силу.
То есть, мы берем МАКРОКОСМ, мало зависящий от желаний одного человека, который хочет по-другому устроить мир, от его стремлений, от его жизни – и МИКРОКОСМ, частную жизнь личности. Два мира, где разница – в радиусе горизонта. Именно это столкновение внутри романа позволяет автору обобщить человека до космических масштабов. Поэтому «Евгений Онегин» – роман. И «Собор Парижской Богоматери» – роман, и «Граф Монте-Кристо», и «Триумфальная арка». На фоне макрокосма личность, герой романа, приобретает совершенно другое качество и другое значение.
Иначе роман не разворачивает плечи.
Илья Муромец остается всю жизнь на печи, и никакие калики перехожие не спешат пройти мимо и подать чашу с волшебным питьем.
Вспомните настоящие романы, которые вы читали – вы везде это найдете. Можно ли назвать «Стальную Крысу» Гаррисона романом? Нельзя! Хотя по объему текста любой конвент мигом занесет «Крысу» в соответствующую номинацию. Но этого признака романности мы там не сможем найти. Это не ухудшает «Стальной Крысы», как цикла повестей; это не минус и не плюс.
Это качественные признаки жанровой разницы.
Когда автор пишет роман, он должен это понимать изначально. Иначе писателю не выйти на уровень обобщений. Иначе в литературной капле не проявится целый океан. Поэтому в романе всегда рассказывается больше, чем просто история. Если читатель за один вечер прочитал роман («Ой, там такая классная история!»), пролетел, проглотил…
Романы не глотаются за один вечер.
Космос нельзя выпить одним глотком.
В романе собственно рассказанная история является лишь одной, не всегда главной составляющей частью диалектики отношений микрокосма и макрокосма. История обрастает нюансами со всех сторон, у нее возникает подтекст, надтекст, контекст; она расширяется ассоциациями и аллюзиями; в конечном итоге, частная, она обобщается до глобальной. Под разными углами зрения история светится разными оттенками. И только поведение человека перед лицом силы, которая мало зависит или совсем не зависит от человеческого давления, заставляет нас вновь и вновь возвращаться к классическим романам.
Можно ставить фильмы по «Графу Монте-Кристо» тридцать восемь раз. С Жаном Маре в главной роли, с Авиловым, с Чемберленом, с Депардье, с кем угодно. Почему? Потому что в исходнике – РОМАН! Под каким углом повернул – под таким и засверкало. Мы можем получить вульгаризированного графа-Депардье, а можем – элегантного графа-Маре или демонического графа-Авилова. И не только из-за разницы в актерской игре и сценарии это будут совершенно разные люди. Один превращается в абсолютного аристократа, в другом до конца его дней сидит помощник капитана. Но в любом случае мы увидим Эдмона Дантеса, которого сожгла его судьба и его месть.
Микрокосм и макрокосм.
Хочется завершить разговор о первом признаке романа тем, что эпичность не противоречит комедийности, сатиричности или гротесковости текста. Ради бога – «Эфиоп» Штерна, «Мастер и Маргарита» Булгакова. Эпичность не обязательно шествует рука об руку с невероятным серьезом на трагической маске. Обобщать и подниматься до уровня космоса, сталкивая человека с надчеловеческими силами, можно и нужно смеясь.
Другое дело, что это надо уметь.
Что мы имеем в виду под реализованным принципом многоязычия?
Нет, отнюдь не литературный язык, которым написан текст.
По Бахтину, монологическая точка зрения на мир – это отдельный социальный язык. Допустим, вот это – социальный язык крестьянства, это язык «потерянного» поколения, а это язык религиозной общины, а это язык злобы политического дня. В данном случае мы понимаем под языком систему взглядов, принципов, умопостроений, принятой терминологии – и способ выражения всего этого. Например, язык нового поколения – это не только «превед, медвед!» в интернете. Отсюда вытекает целый поведенческий комплекс – привычки, неврозы, пристрастия, взгляды на быт и искусство…
Каждый такой язык – монолог. Отдельная точка зрения на мир. Пользуясь этим языком, я-автор отражаю точку зрения поколения, среды, социума и так далее. Так вот, роман строится ДИАЛОГОМ.
Роман не пишется одним социальным языком. В нем отражаются и сталкиваются несколько таких языков – целый набор в одном флаконе. Если вы внимательно посмотрите, то найдете в любом классическом романе несколько монологических языков. У Пушкина герои Евгений и Татьяна – это не просто два персонажа. Это два разных мира. Он давно чтенье разлюбил, она без романа заснуть не может. Это разные языки, которыми они изъясняются, разные принципы поведения, разные взгляды на жизнь, и Пушкин это обобщает на уровне поколений, слоев социума.
Многоязычие – принцип романа. Его закон. Многоязычие еще и показывает владение автора своим ремеслом, владение набором инструментов, позволяющим демонстрировать и обобщать. Когда мы читаем похождения космического авантюриста, и вот он все похождается и похождается, летает и летает, пьет и пьет (в город они входят – пьют, из города выходят – пьют, и в космолете пьют, и на планете лакают…) – мы видим, что автор не знает, чем заполнить пустоты, кроме как налить главному герою.
В данном случае автор не дотягивает даже до монологической точки зрения на мир. А о ДИАЛОГЕ и речи быть не может. Вспомните любой известный роман. «Идиот» Достоевского? – отлично! Вы и без наших комментариев сразу увидите, что там есть диалог как минимум пяти таких языков. «Поднятая целина» Шолохова? – пожалуйста! Макар Нагульнов с одной стороны и Островнов с другой. Кроме того, что это персонажи, это и социальные образы, обобщающие целые пласты изменений в обществе.
Когда в романе звучит многоязычие – это говорит о таланте автора, о его кругозоре, как это ни банально звучит, о его опытности, о философской подоплеке – если он способен переходить от языка к языку. Роман – коктейль. Пожалуй, мы еще добавим, что каждый из этих языков представляет ни мало ни много способ осмысления мира. И разные способы осмысления мира в столкновении характеризуют роман как жанр.
В этот «язык» входит не только манера речи героев, представителей той или иной социальной, возрастной, культурной среды, не только литературный язык писателя, который, кстати, тоже может меняться, но и фактически идейная составляющая. Идеи, противостоящие друг другу или не противостоящие, философские и действенные, разрушительные и созидательные – кроме того, что разнятся сами идеи, они излагаются совершенно разным языком: рубленые фразы, сложные построения и пр. В зависимости от решаемых в данный момент задач разнится язык как персонажей, так и автора, описывающего происходящее.
Это и есть многоязычность романа.
Интересно пофантазировать, что есть РОМАН для программирования? Это должно быть нечто такое, в чём каждый может открыть что-то своё, посмотреть под своим углом…
Итак, уважаемые хабаровчане, меня продолжает мучить вопрос
Программист == творчество || программист != творчество