2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. На страницу 1, 2, 3, 4, 5 ... 7  След.

Является ли программирование творчеством?
Да 78%  78%  [ 29 ]
Нет 14%  14%  [ 5 ]
Иной ответ (пишите в тему) 8%  8%  [ 3 ]
Всего голосов : 37
 
 Является ли программирование творчеством?
Сообщение24.11.2012, 16:19 
Заслуженный участник


08/04/08
8562
Является ли программирование творчеством? Я всегда считал, что нет, но у меня возникло подозрение, что многие думают иначе, потому хочу переспросить.

Попробую аргументировать пока чисто логически:
Что такое программирование? Это процесс более-менее точного отражения некоторых реальных процессов в виде программы. Программа должна принять на вход некие данные, обработать их, запомнить и вернуть результат; цель написания программы - результат обработки. Программист должен получить извне достаточно точное описание некоторых процессов и перевести их на язык машины. Замечу, что при этом программист - это не человек, это аспект человека (например, постановщик задачи не обязан совпадать с программистом, тот, кто пользуется результатом работы программы, не обязан совпадать с программистом и т.п., тот, кто разрабатывает алгоритм, не обязан являться программистом, и даже тот, кому все это надо тоже не обязан...)
Что такое творчество - это процесс изобретения чего-то нового. Следует различать узнавание чего-то нового, чего человек не знает, а другие могут знать, и само творчество - выдумание чего-то такого, что никто никогда не придумывал (ну или может ослабить: выдумывание того, о чем почти никто не догадывался).
Ну и теперь вопрос: является ли программирование творчеством? Ответ - нет, поскольку перевод с обычного языка или его аналога на язык машины - это просто перевод.
Тут, конечно, поскольку программирование процесс реальный, надо попытаться увидеть как можно больше факторов в программировании. Например, при программировании может потребоваться анализа алгоритмов, оптимизация, выдумывание некоторых достаточно общих инструментов, которые потом должны оказаться полезными и не мешать работе. Однако на практике, анализ алгоритмов нужен редко где, только в сложных областях, кроме того, часто анализ алгоритмов и оптимизация имеют стандартный характер, потому существует список рецептов, которые программист должен выучить при обучении (самый простой пример: для сортировки больших массивов надо юзать быструю сортировку). С выдумыванием инструментов дело обстоит чуть сложнее, но примерно так же, хотя инструменты выдумываются реже и они сложнее, потому там готовых простых рецептов нет. Но инструменты нужны лишь в сложных программах, которые пишут толпы программистов, т.е. их написанием занимается особо умный программист, в принципе это можно счесть творчеством, наверное. Но это редко.

Как думаете?

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 16:35 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Если очень коротко, то да, программирование — творческое занятие, никогда в этом не сомневался.

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 16:36 
Заслуженный участник


09/05/12
25179
Сначала надо бы определиться, что считать творчеством. А заодно - что считать программированием. :D С одной стороны, зачастую это действительно перевод чего-то очевидного на "машинный язык". С другой - не так уж редко до перевода надо понять, что переводить. Программирование бывает очень разным, поэтому вопрос чем-то напоминает выяснение того, можно ли считать творчеством процесс нанесения краски на некоторую поверхность (которым занимаются и художники, и маляры).

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 17:54 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Sonic86 в сообщении #648945 писал(а):
Что такое программирование? Это процесс более-менее точного отражения некоторых реальных процессов в виде программы.

Ну, так думали самое позднее в 70-е годы, и только наиболее недалёкие из теоретиков программирования, в т. ч. советские.

Программирование - вид инженерной деятельности. Оно создаёт программную систему (или программно-аппаратную), которая делает то, что нам хочется. Так что оно вполне вписывается в различие между наукой и инженерией: наука изучает то, что есть, инженерия делает нечто новое.

Разумеется, в программировании может быть больше или меньше творчества. Программирование обычно делится на несколько уровней: архитектура, проектирование, реализация (кодирование). Кодирование из них наименее творческое, но и там есть нетривиальные задачи. Не видел творчества в программировании только тот, кто вообще толком не сталкивался с программированием, или сталкивался только с самым примитивным уровнем кодирования, которое предоставляется наиболее неквалифицированному персоналу.

Sonic86 в сообщении #648945 писал(а):
Ответ - нет, поскольку перевод с обычного языка или его аналога на язык машины - это просто перевод.

Даже перевод с одного на другой естественный человеческий язык включает в себя элемент творчества.

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 18:20 
Заслуженный участник


08/04/08
8562
Munin в сообщении #649002 писал(а):
Программирование - вид инженерной деятельности. Оно создаёт программную систему (или программно-аппаратную), которая делает то, что нам хочется.
Ага, у Вас более общее определение :-) При таком определении программист может разрабатывать алгоритмы, тогда творчество есть. Но насколько оно велико?

Munin в сообщении #649002 писал(а):
Так что оно вполне вписывается в различие между наукой и инженерией: наука изучает то, что есть, инженерия делает нечто новое.
Странная аналогия. А можно пример того, что нового сделало программирование?

Munin в сообщении #649002 писал(а):
Даже перевод с одного на другой естественный человеческий язык включает в себя элемент творчества.
Тоже не понимаю аналогию. Перевод с естественного языка на естественный сложнее, чем перевод с естественного на формальный. Хотя даже так. А что творческого в переводе (что Вы понимаете под творчеством)?

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 18:30 
Аватара пользователя


05/10/12

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

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 18:43 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Sonic86 в сообщении #649014 писал(а):
При таком определении программист может разрабатывать алгоритмы, тогда творчество есть. Но насколько оно велико?

Программы состоят не только из алгоритмов (я говорю, это всё ещё в 70-е годы оказалось не так). У вас взгляды человека, очень слабо знакомого с предметом.

Sonic86 в сообщении #649014 писал(а):
Странная аналогия. А можно пример того, что нового сделало программирование?

Все программные системы, которыми вы пользуетесь: ОС, броузеры, редакторы и системы вёрстки, системы математических вычислений, системы физического моделирования, САПР, системы коммуникационные, системы банковские, видео-аудиоплееры, система передачи голоса в вашем мобильном телефоне, управляющие программы в вашей стиральной машине, СВЧ, пылесосе...

Sonic86 в сообщении #649014 писал(а):
Тоже не понимаю аналогию. Перевод с естественного языка на естественный сложнее, чем перевод с естественного на формальный.

Это вы с переводом на формальный язык толком не сталкивались :-)

Sonic86 в сообщении #649014 писал(а):
А что творческого в переводе (что Вы понимаете под творчеством)?

Превращение подстрочника в нормальный текст на целевом языке, в идеале обладающий литературными качествами, сравнимыми с качествами оригинала. Впрочем, часто достаточно просто того, чтобы фраза из трёх слов не превращалась в абзац из пяти предложений. Скажем, перевод фильма - надо, чтобы текст не отставал от видеоряда на полминуты.

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 19:49 
Заслуженный участник


08/04/08
8562
По ходу, я зря спросил. Получается, что комбинация стандартных примитивов может являться творчеством. И получается, что творчество не всегда ценность.
Ладно. Вопрос просто субъективный был... Надо было поглубже разобраться в мотивах своего поведения, прежде чем спрашивать...

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 22:01 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
В программировании очень много элементов творчества.

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 22:25 


30/08/11
1967
Sonic86 в сообщении #649057 писал(а):
Получается, что комбинация стандартных примитивов может являться творчеством.

Это вопрос к Малевичу? Мне кажется, что если есть возможность для поиска лучшего, более красивого варианта, то есть возможность для творчества.

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 23:33 
Аватара пользователя


22/09/09

1907
Да: это творчество, если Вы реализуете новые оригинальные алгоритмы computer sci. или других естественных/гуманитарных наук.
Нет: это ремесло, если Вы делаете неуспевающим студентам их курсовые.
Возможны промежуточные ситуации типа разработки системы платежей ЖКХ.

-- Сб ноя 24, 2012 23:34:25 --

Munin в сообщении #649002 писал(а):
Даже перевод с одного на другой естественный человеческий язык включает в себя элемент творчества.
И еще какой! Факт, что просто переводчиков сейчас пруд пруди, но хороших очень мало…

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 23:38 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Sonic86 в сообщении #649057 писал(а):
Получается, что комбинация стандартных примитивов может являться творчеством.

О да. На печатной машинке сколько клавиш? А что на ней напечатать можно?

Sonic86 в сообщении #649057 писал(а):
И получается, что творчество не всегда ценность.

Это уже зависит от системы ценностей...

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение24.11.2012, 23:45 
Аватара пользователя


22/09/09

1907
Munin в сообщении #649002 писал(а):
Разумеется, в программировании может быть больше или меньше творчества. Программирование обычно делится на несколько уровней: архитектура, проектирование, реализация (кодирование). Кодирование из них наименее творческое, но и там есть нетривиальные задачи. Не видел творчества в программировании только тот, кто вообще толком не сталкивался с программированием, или сталкивался только с самым примитивным уровнем кодирования, которое предоставляется наиболее неквалифицированному персоналу.
Я бы добавил: тестирование и исправление кода (исходного). Иногда это делают разные люди, иногда один. Но общеизвестно, что даже доказанный алгоритм не всегда удается однозначно воспроизвести, если не приложено листинга. Не говорю уже про выбор структуры данных, оптимизацию, распараллеливание и т.д.
PS Про эвристические алгоритмы без листинга реализации вообще говорить не стоит - каждый их воспринимает по-разному, как кому хочется :D

PPS При всем уважении к переводчикам существует принципиальная разница: если клиент ошибся и сказал, что дважды два не равно четырем, то переводчик так и должен перевести на английский, японский или марсианский. А цель программиста, чтобы программа верно работала, т.е. он должен понять, где возможная ошибка.

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение25.11.2012, 00:39 
Аватара пользователя


20/01/10
766
Нижний Новгород
Sonic86 в сообщении #648945 писал(а):
Что такое программирование? Это процесс более-менее точного отражения некоторых реальных процессов в виде программы. Программа должна принять на вход некие данные, обработать их, запомнить и вернуть результат; цель написания программы - результат обработки. Программист должен получить извне достаточно точное описание некоторых процессов и перевести их на язык машины.
Извините, вставлю мнение обычного инженера, не программиста. Если "программист" получает "извне достаточно точное описание некоторых процессов", то таких мы всегда презрительно называли "кодерами". Конечно, элементы творчества имеются и у "кодеров", но зачем программирование сводить только к написанию программ?

Считать, что все выдумали до нас? Кнут, Дейкстра, Вирт и т.д. - вы можете их не относить к программистам, но это только вершина. Понятно, что "индустриализация" породила "класс" людей, которые работают "по правилам" и на том инструменте, который им выдали. Когда-то крестьян обучали работе на станках, в современном мире процесс "слегка" изменился. В современной России ситуация печальная, не у нас придумывают новые языки, не у нас пишут новые компиляторы ... Но нет нет и встречаются "чудаки", которые и этим занимаются. Все языки программирования написаны? Очевидно, что это не так. Более того, сейчас мы наблюдаем серьезный кризис в этой области. Он мне напоминает ситуацию, которая была в математике до Виета - элементарные вещи писались на уродливом языке.

Область программирования очень большая и не в названии дело. А "творчества" всем хватит :-) .

 Профиль  
                  
 
 Re: Является ли программирование творчеством?
Сообщение25.11.2012, 01:04 
Аватара пользователя


22/09/09

1907
svb в сообщении #649166 писал(а):
то таких мы всегда презрительно называли "кодерами"
Извините, но "презрительно" не надо! И у сантехника могут быть такие золотые руки, что не каждый инженер так сделает. А тут сложнее - нпр.,"кодер" должен понять, что он кодирует, чтобы хорошо задокументировать написанный код. А вот, если начальник не думает, что будет, если этот кодер пропадет, и сможет ли новый кодер разобрать ранее сделанный код, то тогда начальника надо называть презрительно ;-)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 95 ]  На страницу 1, 2, 3, 4, 5 ... 7  След.

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group