Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Программирование - вид искусства?

Автор From_Odessa, июля 23, 2019, 00:44

0 Пользователи и 1 гость просматривают эту тему.

From_Odessa

Я уже когда-то поднимал эту тему в другом топике, но хотелось бы поговорить еще раз.

Мысль о том, что программирование превратилось в вид искусства, пришла мне в голову зимой-весной 2003 года, на первом курсе, когда я как раз уже несколько месяцев как вникал в суть программирования (алгоритмизация и программирование на С++). Думал я над этой мыслью и даже хотел поделиться со своим преподавателем, программистом с 25-30-летним стажем, но так этого не сделал.

Я думал о том, что в процессе программирования в большинстве случаев программист или просто тот, кто этим занимается, оказывается в ситуации, когда он может писать программу разными путями, придумывать какие-то хитрые ходы, нестандартно использовать синтаксис языка и так далее. И все это, как мне показалось, можно назвать искусством, ибо масштабы всего этого в программировании очень велики, особенно, когда речь идет о написании огромных и очень ветвящихся программ, а также решении сложных и нестандартных задач.

Разумеется, если это и вид искусства, то весьма специфический. И свободы в нем, видимо, куда меньше, чем в других. И, тем не менее...

Easyskanker

В некотором смысле слова да, искусство, но такого же рода, как ручная сборка автомобилей на конвейере, например. Не более.

Timiriliyev

Если вы как минимум Деннис Ритчи или хотя бы Джон Кармак, то да. Если вы пишете свои первые хеллоуворлды, то тоже да. Но если вы обычный раб на галере, как 99% программистов (что само по себе очень широкое понятие, как «медик»), то нет.
Правда — это то, что правда для Вас.

From_Odessa

Мне тут в качестве программирования-искусства привели Демосцену (о которой я раньше ничего не слышал):

(wiki/ru) Демосцена

И еще:

ЦитироватьУ Вордпресса есть слоган «Код — это поэзия» (Code is poetry). Хотя, если честно, код самого Вордпресса — какая-то не очень хорошая поэзия :)

злой

Entre los individuos, como entre las naciones, el respeto al derecho ajeno es la paz.   - Benito Juárez

Easyskanker

Цитата: From_Odessa от июля 24, 2019, 07:19
Мне тут в качестве программирования-искусства привели Демосцену (о которой я раньше ничего не слышал):

(wiki/ru) Демосцена
Это скорее ретроградская фаллометрия для узкого круга старых программистов.

злой

Если по-серьёзному говорить, то, по личному опыту, есть поверхностное восприятие программирования, когда ты сам вроде как изучил возможности языка и имеющиеся простейшие инструменты, и можешь понастроить громадьё планов, а что вообще в принципе можно было бы сделать при помощи этих инструментов. С этой высоты может создаться впечатление, что программирование - это прямо всегда выбор "изящных" вариантов реализации. Когда поработаешь на производстве годика два-три, осознаёшь, что помимо изящества есть конкретные сроки. Условно говоря: есть задача. Если её решать "в лоб", то есть тупо разделить задачу на подзадачи и молотить "если-то-иначе", то она будет реализована за неделю. Эта программа может работать не хуже (по крайней мере, не настолько хуже, чтобы это оказало заметное влияние на производительность), но её будет сложнее поддерживать и дорабатывать, сложнее будет вписывать в общий контекст разрабатываемых проектов. В идеале, нужно посидеть и подумать над программой недели две, написать, а потом ещё пару раз переписать для оптимизации. Тогда и алгоритмы будут оптимальными, и в контекст проектов программа хорошо ляжет, её будет удобно дорабатывать и поддерживать.  По факту программист должен выбрать оптимальный баланс между "нахерачить, лишь бы работало", и  "субъективно идеальным" вариантом. Подчеркну, что предоставлять заказанную функциональность будут оба варианта, причём разница в качестве будет почти незаметна.

И вот в этих условиях бывают действительно "красивые" инженерные решения, но это постороннему будет скорее всего незаметно. Это как, допустим, построить необычное здание - возможно у него в кишках изящные инженерные решения, но постороннему человеку, не разбирающемуся в строительстве, это будет непонятно. Так и в программировании.

Я замечал, пару раз у меня случайно получалось так реализовать определённую функциональность в программах, что впоследствии эти решения начинали жить своей жизнью. Возможно, это было какое-то наитие, а не просто случай - я не претендую на роль выдающегося программиста, из-под пальцев которого вылетает чистое искусство, пока достижений маловато, чтобы на что-то претендовать. Там где есть наитие, возможно и искусство. А так, в основном, программирование - это довольно "ломовая" работа мозгами: мало понимать, что для постройки дома нужно сложить друг на дружку кирпичи, нужно их ещё сложить. Вот и в программировании тоже, мало понимать - нужно непосредственно реализовать. А уж как именно - это твои персональные заморочки, а там, где имеет место ревизия кода - ещё и заморочки ревизиониста.

У меня помимо работы есть проект, которым я занимаюсь, по сути, в своё удовольствие. Сроков мне никто не ставит, вот там я изгаляюсь как хочу, пишу программу так, как мне видится правильным. Если получится, коммерциализую, нет - выложу куда-нибудь. Вот таким можно заниматься из любви к искусству. На производстве "совсем другая история".
Entre los individuos, como entre las naciones, el respeto al derecho ajeno es la paz.   - Benito Juárez

Easyskanker

Цитата: злой от июля 24, 2019, 19:39
У меня помимо работы есть проект, которым я занимаюсь, по сути, в своё удовольствие. Сроков мне никто не ставит, вот там я изгаляюсь как хочу, пишу программу так, как мне видится правильным. Если получится, коммерциализую, нет - выложу куда-нибудь. Вот таким можно заниматься из любви к искусству. На производстве "совсем другая история".
Да, как хобби бывает дико интересным. Когда я в колледже впервые дорвался до возможности программировать, пусть даже в смертельно устаревшем ТурбоПаскале, спать не мог — мысли кишели.

From_Odessa

Цитата: Easyskanker от июля 24, 2019, 20:41
Да, как хобби бывает дико интересным. Когда я в колледже впервые дорвался до возможности программировать, пусть даже в смертельно устаревшем ТурбоПаскале, спать не мог — мысли кишели.
У меня было нечто похожее на первом курсе, хотя программирование там было не основным предметом, и учебы хватало с головой и больше, на нее уходило почти все время. И, тем не менее, я еще успевал много думать о программировании, что-то там писать, пробовать (хотя, естественно, на примитивном уровне). И успел пожалеть, что не пошел учиться на программиста (жалел ли потом? Трудно сказать. Да и нет смысла судить, ведь я не работал по этой специальности, так что невозможно определить, что бы это было).

Easyskanker

У меня страсть была создавать игры. Сначала настольные, потом в ТурбоПаскале, потом в Дельфи, потом во Флэше (даже во Флэше я пытался в 3д, но по какой-то причине swf файл страшно лагал при отрисовке трехмерных примитивов, пришлось имитировать с помощью кадров, отрендеренных в 3Д Максе), потом в максовском VRML, потом мне попался FPSCreator (несмотря на то, что на момент своего создания он уже был устаревшим, он давал мне лучшие возможности, ох и намучился я с переписыванием скриптов и созданием .x моделей во всяких полу-андеграудных 3д-редакторах; сделал несколько сюжетных игр и кучу мультиплеерных, за тестирование мультиплеерных в вузовских аудиториях меня ругали преподаватели, их невозможно было убедить, что это мои проекты). Потом Темиртау объяснил мне, где я, кто я и что я, какие люди вокруг, и на что вообще я могу рассчитывать, поэтому я на несколько лет забросил всё это дело, и тут началась эпоха Юнити.

злой

Цитата: Easyskanker от июля 24, 2019, 21:15
У меня страсть была создавать игры. Сначала настольные, потом в ТурбоПаскале, потом в Дельфи, потом во Флэше (даже во Флэше я пытался в 3д, но по какой-то странной причине swf файл дико лагал при отрисовке трехмерных примитивов, пришлось имитировать с помощью кадров, отрендеренных в 3Д Максе), потом в максовском VRML, потом мне попался FPSCreator (несмотря на то, что на момент своего создания он уже был устаревшим, он давал мне лучшие возможности, ох и намучился я с переписыванием скриптов и созданием .x моделей во всяких полу-андеграудных 3д-редакторах; сделал несколько сюжетных игр и кучу мультиплеерных, за тестирование мультиплеерных в вузовских аудиториях меня ругали преподаватели, их невозможно было убедить, что это мои проекты). Потом Темиртау объяснил мне, где я, кто я и что я, и на что максимум могу рассчитывать, поэтому я на несколько лет забросил всё это дело, и тут началась эпоха Юнити.

Вы на кафедре САПР учились?
Entre los individuos, como entre las naciones, el respeto al derecho ajeno es la paz.   - Benito Juárez

Easyskanker

Вычислительная техника и программное обеспечение. САПР вроде как параллельным потоком был.

злой

Цитата: Easyskanker от июля 24, 2019, 21:23
Вычислительная техника и программное обеспечение. САПР вроде как параллельным потоком был.

Для меня существовала тьма ФИТовских специальностей, которые с колокольни ЭМФ непонятно чем различались. Но САПР среди них выделялся наибольшей ориентированностью конкретно на разработку. Именно с САПР я знаю наибольшее количество людей, которые в итоге стали практикующими программистами.
Entre los individuos, como entre las naciones, el respeto al derecho ajeno es la paz.   - Benito Juárez

Easyskanker

Цитата: Easyskanker от июля 24, 2019, 21:15
в максовском VRML
VRML, кстати, можно было встраивать в сайты. На одногруппников производило большое впечатление интерактивное 3д на моих html-страницах. Но преподы и бизнесмены не видели в этом ни смысла, ни пользы, совершенно.

Easyskanker

Цитата: злой от июля 24, 2019, 21:27
Для меня существовала тьма ФИТовских специальностей, которые с колокольни ЭМФ непонятно чем различались. Но САПР среди них выделялся наибольшей ориентированностью конкретно на разработку. Именно с САПР я знаю наибольшее количество людей, которые в итоге стали практикующими программистами.
Кафедра САПР была мне знакома только по нескольким девушкам, ничего сказать не могу.

злой

Цитата: Easyskanker от июля 24, 2019, 21:28
VRML, кстати, можно было встраивать в сайты. На одногруппников производило большое впечатление интерактивное 3д на моих html-страницах. Но преподы и бизнесмены не видели в этом ни смысла, ни пользы, совершенно.

Кажется, именно VRML я видел в системе мониторинга Nagios. Весьма эффектная и удобная визуализация, хотя даже в 2015 году она поддерживалась браузерами довольно криво и не единообразно. Но это вопрос не к тем, кто реализовывает саму визуализацию.
Entre los individuos, como entre las naciones, el respeto al derecho ajeno es la paz.   - Benito Juárez

Easyskanker

Цитата: злой от июля 24, 2019, 21:32
хотя даже в 2015 году она поддерживалась браузерами довольно криво и не единообразно
Подозреваю, в 2015 она уже стала устаревшей, как Дельфи, который сейчас тоже работает криво и не единообразно, несмотря на новые версии. Я с VRML баловался примерно с 2003 по 2009 годы (или 2008).

From_Odessa

Теоретик программирования Дональд Кнут в своей книге "Искусство программирования" писал пример так: "Программист написавший хорошую программу испытывает чувства подобные поэту, написавшему свою  шедевральную поэму".


From_Odessa

Цитата: From_Odessa от июля 23, 2019, 00:44
Мысль о том, что программирование превратилось в вид искусства, пришла мне в голову зимой-весной 2003 года, на первом курсе, когда я как раз уже несколько месяцев как вникал в суть программирования (алгоритмизация и программирование на С++). Думал я над этой мыслью и даже хотел поделиться со своим преподавателем, программистом с 25-30-летним стажем, но так этого не сделал.
В итоге недавно сделал это в Фейсбуке :) А он мне в ответ привел цитату Кнута, о которой написано в посте выше.

Ömer

Не считаю.

Цитата: From_Odessa от июля 23, 2019, 00:44
Я думал о том, что в процессе программирования в большинстве случаев программист или просто тот, кто этим занимается, оказывается в ситуации, когда он может писать программу разными путями, придумывать какие-то хитрые ходы, нестандартно использовать синтаксис языка и так далее. И все это, как мне показалось, можно назвать искусством
То есть, исходя из этого примера, искусство -- это любая деятельность, где есть творчество? Почему мы тогда не относим к искусству работу математика, выбирающего путь доказательства теоремы, или работу полевого лингвиста, выбирающего способ контакта с аборигенами?

Цитировать
Иску́сство - процесс или итог выражения внутреннего мира в (художественном) образе, творческое сочетание элементов таким способом, который отражает чувства или эмоции.
В этом определении "чувства или эмоции" я считаю ключевым отличием от других видов творчества.
ya herro, ya merro

kemerover

По мне искусство это что-то «непрактичное», поэтому в целом программирование я искусством не назову. А так, цифровое искусство можно делать и с помощью программирования.

DarkMax2

Tej wojny nikt za nas nie wygra! © Wiedźmin III
Коли зчинять лемент: "Хто ж знав?!" — відповімо: "Ми".

З моїх снів ти утечеш над ранок,
Терпка, як аґрус, солодка, як біз.
Хочу снить чорні локи сплута́ні,
Фіалкові очі, мокрі від сліз.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр