프로그래밍은 예술인가 공학인가?

NeoTuring의 이미지

http://www.zdnet.co.kr/hotissue/devcolumn/article.jsp?id=66536&forum=1

지난달 마소에 게제되었던 글인데 해석하기에 따라 논란의 여지가 있는것 같습니다.
여러분들은 프로그래밍을 예술로 생각하세요 아니면 공학으로 생각하세요?
개인적으로는 프로그래밍 분야에서는 건축과 마찬가지로 공학의 기반하에 예술이 성립될 수 있다고 봅니다.

jj의 이미지

무엇인들 논란의 여지가 있을까 싶네요.

많은 대가들이, 프로그래밍을 engineering, art, craft, discipline, logic 혹은 science 등으로 서술했었던것 같은데... 다 맞는말이죠 :)

--
Life is short. damn short...

warpdory의 이미지

예술이니, 기술이니 하는 건 멋져 보이자고 붙이는 거고 실제로는 '노가다'라고 봅니다.

흰 가운 입은 실험하는 사람들을 티비에서 보면 멋있다고 볼 수도 있겠지만, 막상 그렇게 입고 실험하는 사람들은 죽을 맛인 것처럼 말이죠.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

NeoTuring의 이미지

jj wrote:
무엇인들 논란의 여지가 있을까 싶네요.

많은 대가들이, 프로그래밍을 engineering, art, craft, discipline, logic 혹은 science 등으로 서술했었던것 같은데... 다 맞는말이죠 :)

당연히 흑백논리로 예술/공학 이렇게 쪼갤수는 없을것이고, 저도 이곳에서 그런 답변은 기대하지 않습니다. 8)
또 예술이든 공학이든 무슨상관이냐? 하는것도 좀 맥빠지는 얘기일것 같고요.

프로그래밍을 예술로 받아들일때와 공학으로 받아들일때 모두가 공통적으로 동의하는 부분이 있긴 하겠지만,
각자 그러한 느낌을 얻는 부분이 상이할것 같다는 생각입니다.

그리고 어떤 부분에서 예술성과 공학이 첨예하게 대립되는지... 또 프로그래밍을 순수하게 개인적
측면에서 바라보는것과 조직의 측면에서 바라보는것이 예술성과 공학성을 가르는 기준이 될 수 있는지... 등등의
이야깃꺼리에 대한 여기 계신분들의 여러 생각들을 알아보고 싶군요.

bugslife의 이미지

자기만족이라고 생각합니다. 뭐 꼭 프로그램에 한정되지는 않겠지만 아무리 작고 남들이 보기에 별것 아닌 - 자신은 머리를 쥐어짜가며, 혹은 자신은 대단한 알고리즘이나 산출물이라고 생각을 하든 안하든 - 코딩을 끝내고 컴파일을 거쳐 - 몇개의 경고가 뜨던 - 실행의 순간 희열을 느낀다면 그것은 공학이 되고 예술이 되겠지요.

처음 프로그램을 접하고 대학에서 수업을 째고 혼자 방에 쳐박혀 책을 뒤지고 컴퓨터를 못 살게 굴던 지난날이 그립군요. 쩝..

밥 벌이로 변한 이것은 예술도 공학도 아닌 '노가다'로 변해버리고 있는 현실이 찹찹합니다. 그리고 일상에 젖어가는 제 자신도 한심하고.

탈출을 위해.. 옛 기분을 느끼고 다시 한번 희열을 느껴보기위해 - 단순히 재미와 흥미라는 측면으로 볼 수도 있지요 - 밥 벌이와 상관없는 '프로그램'을 하려고 늦은 밤 잠을 설치지만 어느 순간 웹 서핑 - 검색이 아닌 단순한... - 을 하고 있는.. 쩝..

때아닌 넋두리였습니다.

ㅡㅡa

어느순간부터인가 하루살이의 하루를 알고싶다.

sliver의 이미지

저는 아직까지는 예술이라고 생각하고 있습니다. 나중에 회사 들어가고 나면 생각이 바뀔지는 몰라도요.. :)
사실 사람마다 다 다르지 않을까요...
시뮬레이션 프로그래밍을 하는 자연과학 전공자들은 프로그래밍이 도구일 뿐이라고 생각할 듯 하고,
회사에서 별로 하고 싶지 않은 일을 하시는 분들은 노가다라고 생각할 지도 모르고요..

redrabbit의 이미지

예전에 역시 마소에서 본건데... 프로그래밍의 자료구조는 대부분...아니 용어까지도 ... 건축에서 나온것이라고 하더군요. (모듈같은...) 대가들의 추천서를 보면 건축에 대한 책들이 간간히 눈에 뛰이기도 한다고 그러구요..
대가들의 수준에서 소위 그루의 수준에서는 그런면이 있는가도 봅니다. 그런데 전 아직 예술보다 실행에 중점을 두는 초보라서...;;;
그렇지만, 어느정도 동의 합니다. 그렇지만 항상 대상인 컴퓨터라는 실체를 인식해야 한다고 생각합니다. 종종 그런것을 간과해서 실수를 하긴 하는데... 저희 교수님 말씀이 기억나는군요... 작업을 먼저 생각해라... 8)

김충길의 이미지

비유가 적당한지는 모르겠으나

옛날 미술 작품의 복원 시키는 작업에 비유될 수 있을지 않을까요

옛작품을 복원 시키는 작업은 공학적인 측명도 있고 예술적인 측면도

다 가지고 있다고 봅니다.

예전에야 에디터로 파일 하나 열어서 짜던 시절이 있었지만

지금은 수많은 소스와 간단히 동작하는 프로그램도 이면에서는

매크로로 가득한 헤더 파일과 일견 셋팅된 링크 환경으로 덥혀 있죠.

조금만 프로그램이 커지면 시각적인 요소에 대한 디자인적 측면이

고려 되어야 하고 제품의 사용자를 고려한다면 이것 저것 들어줘야 하고

마감을 위해 저것 이것 포기해야 하고 프로그램밍을 예술적으로 하는 분들이

늘 부럽습니다.

대부분이 대단하게 생각하고 있는 Knuth도 TeX, METAFONT는 구현하는데

수년을 보낸걸 보면 과연 그것이 예술적으로 가능한 행위인지.

모짜르트라는 영화에서 볼프강이 미친듯이 아무 꺼릿김 없이 곡을 작성하는 그

모습만을 예술적인 행위로 볼 수 있는 것인지.

궁극적으로 스스로가 어떻게 생각하느냐 인거 같습니다.

screen + vim + ctags 좋아요~

BL의 이미지

Quote:
현대의 건축가들은 또다른 랭스 성당을 지을 수 있다. 하지만 13세기는 시드니 오페라 하우스 같은 건물을 지을 수 없다. 그것은 예술적 감각이 부족해서가 아니라 공학의 결핍 때문이다. ...... 예술이 결핍된 공학은 흉해 보일 수 있다. 하지만 공학을 포함하지 않는 예술은 불가능하다. 공학은 예술을 속박하지 않는다. 하지만 공학의 결핍은 예술이 존재할 수 없게 만든다. ...... 소프트웨어 업계에 있는 우리에게 부족한 건, 바로 예술적인 열망을 실현하는 것을 가능하게 해주는 공학 기술이다.

스티브 맥코엘의 '프로페셔널 소프트웨어 개발' 번역서에서 인용했습니다. 소프트웨어의 규모가 커지다 보니 공학이 뒤받침 되지 않으면 예술은 커녕 버그 투성이의 누더기를 만들 가능성이 높죠. :D

hados의 이미지

제가 볼 때는

노가다로 볼수도 있고, engineering 으로도 볼 수 있고

art 로도 볼 수 있어야 한다는 사실이 중요하지 않을까 합니다.

프로그래밍을 art의 관점에서도 인정하고
engineering의 관점에서도 인정할 수 있어야 하며

그런 풍토가 PM과 그 위의 경영자들에게까지

전달되는 것이 중요하지 않을까 합니다

NeoTuring의 이미지

크누스와 다익스트라의 관련 paper 입니다.
예전에 프린트 해둔것이 있었는데 기억이 가물가물해서 저도 구석에 쳐박아둔거 다시 첮아 읽었습니다.
이런건 프린트해서 고이 모셔둬야죠. :D

http://soomsori.net/upload/moa/ComputerProgrammingAsAnArt.pdf
http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF

envia의 이미지

이것은 어떤가요? 건축가 Frank Lloyd Wright의 말입니다.

Quote:
Beautiful buildings are more than scientific. They are true organisms, spiritually conceived; works of art, using the best technology by inspiration rather than the idiosyncrasies of mere taste or any averaging by the committee mind.

----

It is essential, if man is not to be compelled to have recourse, as a last resort, to rebellion against tyranny and oppression, that human rights should be protected by the rule of law.
[Universal Declaration of Human Rights]

redbaron의 이미지

NeoTuring wrote:
http://www.zdnet.co.kr/hotissue/devcolumn/article.jsp?id=66536&forum=1

지난달 마소에 게제되었던 글인데 해석하기에 따라 논란의 여지가 있는것 같습니다.
여러분들은 프로그래밍을 예술로 생각하세요 아니면 공학으로 생각하세요?
개인적으로는 프로그래밍 분야에서는 건축과 마찬가지로 공학의 기반하에 예술이 성립될 수 있다고 봅니다.


사람이니까..

막노동 하는 사람에게는 막노동이요.

설계하는 사람에게는 설계일 것이고..

예술로 승화시킨 사람에게는 예술일껍니다.

그런 사람들이 한자리에서 술마시면서..자기말이 맞다고 우길 필요는 없겠죠.

bluemoon의 이미지

아주 예전에 제가 어렸을때.. (포트란과 코볼의 쇠퇴기쯤?)
학원강사가 프로그래밍은 창조적인 작업이다.. 어쩌구저쩌구 그러더군요.
멋있게 보이려고 한 멘트였는지 모르겠지만 맞다고 생각합니다.
그렇게 안해서 노가다가 되는건 아닌가 싶네요.

ssik425의 이미지

관점에 차이가 아닐까 합니다.

개인적인 입장에서는 예술이 될수있지만

이익을 창출하는 회사의 입장에서는 공학이

되야겠죠..

개발자들의 궁극적 비전은 ?

NeoTuring의 이미지

ssik425 wrote:
관점에 차이가 아닐까 합니다.

개인적인 입장에서는 예술이 될수있지만

이익을 창출하는 회사의 입장에서는 공학이

되야겠죠..

아마도 회사의 입장에서는 꼭 공학이 되어야 하겠죠?
하지만, 개인의 입장이 아닌 조직이라도 오픈소스 진영의 시장적인 마인드에서는 예술로 느끼면서 코딩작업하는 사람들이 많다고 보여집니다.

꼭 그런것은 아니지만, 성당스타일을 강조하는 사람들은 공학적 측면을 강조하고 시장스타일을 선호하는 사람들은 예술적 측면을 더 부각시키지 않나 생각합니다.

프로그래밍을 예술로 바라보는 관점이란것은 크누스의 입장대로 형식미학적 가치와 함께 개발에 관여하는 프로그래머의 자유의지를 중시하는것이라 보여지고 그렇게 보면 프로그래밍에 있어 예술의 입장이란것은 완성된 소프트웨어 자체보다는 소프트웨어를 완성시켜가는 과정에 촛점이 맞춰져 있는것이라 여겨집니다.

반면, 공학적 입장에서는 비록 정형화된 방법론을 가지고 소프트웨어를 완성시켜가는 프로세스를 중시하긴 하지만, 최종목표는 '소프트웨어의 완성도'에 맞춰져 있는것 같습니다.

처로의 이미지

임백준 씨의 책(행복한 프로그래밍)을 저도 재미있게 읽었습니다. 저도 프로그래밍은 행복해야 한다는 말에 동의합니다. (현실은 비록 @#$%해도... ^^; )

위에 인용된 마소지 기고 글에서는 아래 글들과 비슷한 느낌을 받을 수 있네요.

- 로버트 리드, 프로그래머가 되는 방법(How to Be a Programmer) (번역 완료)

- 폴 그레이엄, 창조자들을 위한 취향(Taste for Makers) (번역중)

위에 어느 분이 인용하신 커누스의 튜링상 수상 연설도 어디 번역된 것이 있나요? (다익스트라 글은 너무 길어서... --; ) 없으면 번역해 보고 싶네요.

thedee의 이미지

음... 은근히 공학과 예술을 반대의 의미로 말씀하시는 분들이 많네요... 여러가지 복잡한 문제들이 얽혀 있습니다.

첫째, 프로그래밍은 공학 맞습니다. 프로그래밍의 산물이 프로그램, 즉 유틸리티이기 때문입니다. 예컨대 수도관도 유틸리티입니다.

둘째, 물론 프로그래밍(소프트웨어 공학)은 완전한 수준의 공학은 아닙니다.

셋째, 시스타나 성당과 같은 건축물이 예술 작품으로 평가 받는 것은 그 완전한 공학성에 근거하고 있는 것입니다. 프로그램도 마찬가지입니다. 크누스의 텍스 역시 주도면밀한 공학적 발상에 의해 state of art 수준을 획득하게 된 것입니다. 텍스는 보톰-업 스타일 프로그래밍의 고전적 예로 자주 인용됩니다. 공학 없는 예술이란 말장난입니다.

넷째, 개인이 프로그래밍할 때 느끼는 창조의 희열... 이런 건 재미이고, 혹은 예술적 감정일 수는 있으나 예술하고는 상관없는 것입니다. 예술은 결과물입니다. 개인이 느끼는 감정... 이런 건 예술하고 하등의 상관이 없는 것입니다. (마소의 그 컬럼도 이 점을 혼동하고 있다고 생각합니다.)

다섯째, 소프트웨어 공학은 건축 공학을 직접적인 모범으로 사용하기 힘든 것 같습니다. 요구사항이 수시로 바뀌며, 각 부품의 오류 가능성이 상당히 높으며, 코드 뭉치들에 대한 책임이 전적으로 개별 개발자에게 지워져 있어 효과적인 감사(?)가 불가능하기 때문입니다. 이 때문에 테스트 우선 개발, 짝 프로그래밍 등의 방법론이 도입되고 있다고 생각합니다. 요점은 소프트웨어의 특성에 맞는 방법론(공학)들이 속속 개발되고 있으며, 개발되어야 한다는 것입니다.

여섯째, 원래 먹고 살기 위해 하는 일은 재미가 없습니다. 이것 역시 공학하고는 상관이 없습니다.

이상이고요~

그리고 처로님~ 그 평균을 넘어서자...라는 폴 그레이엄의 글도 처로님이 번역하신건가요? 재미있게 잘 읽었고, 잘 읽고 있습니다. 저도 조만간 참여할랍니다.

jj의 이미지

다 맞는말 같습니다.

작업할때 항상 느끼는건, "아... 이거 완전 노가다군..." 이렇게 생각하는 순간, 코드의 퀄리티는 떨어지기 시작하고 진짜 노가다가 된다는거죠, 그런 생각을 항상 경계해야 할것 같습니다.

노가다 같은일도 '예술적인' 방법을 이용해서 깔끔하게 해결할려는 자세를 항상 유지해야 할것 같습니다. 그게 공학적인 길이기도 하구요. (대부분의 노가다성 일은 그런 해결방법이 있는것 같습니다.)

--
Life is short. damn short...

ssik425의 이미지

neoturing의 글을 보니 아무래도

제가 시각을 다르게 본듯하네요.

저는 개인적인 입장에서 프로그래밍을

보것이 아니라 프로그래밍의 작업적인

측면에서 시작하여 위와 같은 글을

쓴것입니다.

개발자들의 궁극적 비전은 ?

brianjung의 이미지

최첨단의 과학은 마술에 가깝다. 어디서 이런말을 들은것 같은데...

공학으로 뒷받침되는 예술이라고 생각합니다.
예술이 상위계층, 공학이 하위계층

NeoTuring의 이미지

thedee wrote:

첫째, 프로그래밍은 공학 맞습니다. 프로그래밍의 산물이 프로그램, 즉 유틸리티이기 때문입니다. 예컨대 수도관도 유틸리티입니다.

아마도 유틸리티라고 표현하신것은 프로그램이든 수도관이든 "인간에게 유용한 무엇"이라는 말씀하시려고 한듯 한데요 그것이 꼭 프로그래밍이 공학이라고 생각할 수 있는 근거로 작용하기엔 좀 약하지 않을까요?

예를들어 고딕 스타일의 성당은 종교적인 행위를 할 수 있도록 "인간에게 유용한" 장소를 제공하는 유틸리티라고 할 수 있을텐데 그것을 "예술품"으로도 여기는데도 전혀 하자가 없습니다. 그리고 우리 선조들이 만들어놓은 찻잔이나 먹을 가는데 필요한 벼루도 인간이 어떤 행위를 하는데 꼭 필요한 "유틸리티"이긴 하지만, 동시에 "예술품"으로 여겨지죠.

thedee wrote:

둘째, 물론 프로그래밍(소프트웨어 공학)은 완전한 수준의 공학은 아닙니다.

소프트웨어 분야의 역사가 일천하여 앞으로 개선될 여지가 많기 때문에 현재로서는 '완전한 공학'에 이르지 못했다는것인지 아니면 소프트웨어 개발 자체에 내재한 본질적인 문제들때문에 완전한 수준의 공학이 될 수 없다는것인지 잘 모르겠습니다만, 어쨋든 완전한 수준의 공학은 아니라는것엔 저도 동감입니다.

thedee wrote:

셋째, 시스타나 성당과 같은 건축물이 예술 작품으로 평가 받는 것은 그 완전한 공학성에 근거하고 있는 것입니다. 프로그램도 마찬가지입니다. 크누스의 텍스 역시 주도면밀한 공학적 발상에 의해 state of art 수준을 획득하게 된 것입니다. 텍스는 보톰-업 스타일 프로그래밍의 고전적 예로 자주 인용됩니다. 공학 없는 예술이란 말장난입니다.

아마도 thedee 님이 말씀하시는것은 "형식미학"인것 같습니다. 쉽게 말하면 "수학적 아름다움"이죠. 크누스도 프로그래밍에 대해 그런 부분을 부각시켜 주장했던것이고요. 그런데 다른 소프트웨어의 대가들은 그런 형식미학만을 프로그래밍의 예술적인 요소로 여기는건 아닌거 같습니다.

"실천적 행위"를 통해 장인들이 도자기를 굽듯이 프로그래밍을 예술의 실천으로 여기는 사람들이 눈에 띄는데 인용한 기사에도 나왔듯이 이들은 크누스처럼 프로그래밍의 형식미학만을 강조하지는 않습니다.

thedee wrote:

넷째, 개인이 프로그래밍할 때 느끼는 창조의 희열... 이런 건 재미이고, 혹은 예술적 감정일 수는 있으나 예술하고는 상관없는 것입니다. 예술은 결과물입니다. 개인이 느끼는 감정... 이런 건 예술하고 하등의 상관이 없는 것입니다. (마소의 그 컬럼도 이 점을 혼동하고 있다고 생각합니다.)

저도 일반적인 의미에서의 예술(미술, 음악등)이란 어쨋든 '결과물'을 감상함으로써 인간이 예술적인 감성을 얻을 수 있게 된다고 생각합니다만, 만약 이를 프로그래밍에 대해서도 똑같이 적용한다면 모든 개발이 끝나서 최종 릴리즈된 시점의 '완성품'을 가지고 유저들이 '품평'을 해야 하지만, 그런경우는 거의 본적이 없는것 같습니다. (반면 유용함과 성능에 대한 품평은 많죠)

프로그래밍에 대해 예술이라고 하는것이 일반적인 예술과는 뭔가 다른 냄새가 난다는거죠. 또 제가볼땐 과정상의 즐거움이나 창조적인 요소들을 예술이라고 칭하지 않을 이유가 딱히 없는것 같습니다.

thedee wrote:

다섯째, 소프트웨어 공학은 건축 공학을 직접적인 모범으로 사용하기 힘든 것 같습니다. 요구사항이 수시로 바뀌며, 각 부품의 오류 가능성이 상당히 높으며, 코드 뭉치들에 대한 책임이 전적으로 개별 개발자에게 지워져 있어 효과적인 감사(?)가 불가능하기 때문입니다. 이 때문에 테스트 우선 개발, 짝 프로그래밍 등의 방법론이 도입되고 있다고 생각합니다. 요점은 소프트웨어의 특성에 맞는 방법론(공학)들이 속속 개발되고 있으며, 개발되어야 한다는 것입니다.

여섯째, 원래 먹고 살기 위해 하는 일은 재미가 없습니다. 이것 역시 공학하고는 상관이 없습니다.


동감입니다. :D
NeoTuring의 이미지

처로 wrote:
임백준 씨의 책(행복한 프로그래밍)을 저도 재미있게 읽었습니다. 저도 프로그래밍은 행복해야 한다는 말에 동의합니다. (현실은 비록 @#$%해도... ^^; )

위에 인용된 마소지 기고 글에서는 아래 글들과 비슷한 느낌을 받을 수 있네요.

- 로버트 리드, 프로그래머가 되는 방법(How to Be a Programmer) (번역 완료)

- 폴 그레이엄, 창조자들을 위한 취향(Taste for Makers) (번역중)

위에 어느 분이 인용하신 커누스의 튜링상 수상 연설도 어디 번역된 것이 있나요? (다익스트라 글은 너무 길어서... --; ) 없으면 번역해 보고 싶네요.

누군가 개인적으로 번역을 하지 않았다면, 번역본은 없는걸로 알고 있습니다.
번역을 앞장서 해주신다면 저뿐만 아니라 다른분들에게도 좋겠죠? :wink:

thedee의 이미지

Neoturing님 말씀 잘 들었습니다. 여러 가지로 생각해 볼 것이 많은데 쓰려고 보니까 너무 복잡하고 글이 길어지겠더군요...-.- 그래서 하나만 언급하려 합니다.

인간의 직업 중 신의 그것과 가장 유사한 직업이 프로그래머가 아닐까... 하는 생각을 해봅니다. 둘 다 설계하고 구현하지요. 그리고 그 피조물은 스스로 움직이고요, 때로는 번식하며 진화하기도 하지요... 이러한 완전한 창조력(수학자, 물리학자, 건축학자들은 이러한 면에서 프로그래머보다 한 수, 두 수 아래겠지요.)이 프로그래밍에 독특한 후광을 주고 있다고 생각합니다. 이러한 후광이 개발자들에게 끊임없이 동기를 부여하고 자극을 주는 것이겠고요.
님께서 프로그래밍은 예술이다... 라는 말로 표현하고자 하신 것이 이것인지요? 저는 개인적으로 이러한 관념은 무시하는 편입니다만...

NeoTuring의 이미지

thedee wrote:
Neoturing님 말씀 잘 들었습니다. 여러 가지로 생각해 볼 것이 많은데 쓰려고 보니까 너무 복잡하고 글이 길어지겠더군요...-.- 그래서 하나만 언급하려 합니다.

인간의 직업 중 신의 그것과 가장 유사한 직업이 프로그래머가 아닐까... 하는 생각을 해봅니다. 둘 다 설계하고 구현하지요. 그리고 그 피조물은 스스로 움직이고요, 때로는 번식하며 진화하기도 하지요... 이러한 완전한 창조력(수학자, 물리학자, 건축학자들은 이러한 면에서 프로그래머보다 한 수, 두 수 아래겠지요.)이 프로그래밍에 독특한 후광을 주고 있다고 생각합니다. 이러한 후광이 개발자들에게 끊임없이 동기를 부여하고 자극을 주는 것이겠고요.
님께서 프로그래밍은 예술이다... 라는 말로 표현하고자 하신 것이 이것인지요? 저는 개인적으로 이러한 관념은 무시하는 편입니다만...


제가 그렇게 생각하는 부분이라기보다는 예술성을 강조하는 프로그래머들이 프로그래머로서의 자유의지를 상당히 강조하고 그것에 흠뻑 취해있다는 느낌이 듭니다.

미술가에게 붓과 하얀 도화지가 주어져 있을때 어떠한 그림이든 상상의 나래를 펼쳐 종이 위에 나타낼 수 있듯이 컴퓨터라는 기계와 적절한 개발도구만 주어진다면 어떠한 제약조건없이 프로그래머가 상상한대로 어떤 프로그램이든 창조해낼 수 있는것인데 이 부분에 있어서는 미술가나 음악가나 프로그래머나 전혀 차이가 없을것 같고, 마찬가지로 현실속에서 프로그래머가 특정 클라이언트로부터 요구사항을 받아들여 정해진 납기에 프로그램을 개발하고자 할때 "예술적"인 감성을 얻기 힘든것은 프로그래머로서의 "자유의지"를 상당부분 클라이언트에 의해 제한당하고 있다는 느낌 때문일거라는 생각이 드는데 이 역시도 특정 영화에 맞는 영화음악을 만드는 사람이 또 제품의 광고도안을 만드는 사람이 비록 음악을 작곡하고, 그림을 그리는 등 겉으로 보기에 예술행위라고 불리워지는 작업을 할지라도 자신이 "예술"을 하고 있다고 느끼지 못하는 그런 경우와 똑같은것이 아닐까 생각합니다.

자유의지와 상상력을 예술적인 요소로 부를 수 있는지 어떤지는 잘 모르겠습니다만, 순수예술분야들은 공통적으로 분명히 그러한 요소들을 포함하고 있는것으로 보여지고 이것을 만약 예술을 성립시키는 핵심 요소라고까지 생각한다면 프로그래밍도 예술이라고 부르지 못할 이유는 없겠죠.

다만, 예술이기 때문에 자유의지와 상상력이 그에 따라 생겨나는건지 아니면 자유의지와 상상력이 있기 때문에 예술이라고 부를 수 있는것인지 그건 제가 예술에 대해 문외한이라 뭐라 말하기는 힘들것 같습니다만, "일반적인 상식" 수준에서 보면 전자가되든 후자가되든 제한없이 자유롭게 창작활동을 할 수 있는 분야라면 모두 예술로 취급할 수 있는것같습니다.

물론 저도 프로그래머로서 자유로운 창작활동을 좋아하고, 그것에 흠뻑 취해있긴 합니다만 그걸 예술로 부르느냐 마느냐 하는건 또 다른 문제겠죠. 그냥 다른 프로그래머들이 그런것을 강조하며 "예술"운운하기 때문에 그들의 입장에서 한번 얘기를 꺼내본겁니다.

세벌의 이미지

노가다.

전에 다니던 회사에서 프로그램 할 때 다른 사람들 하는 방식을 보니 복사 붙이기 해서 여기 저기 조금씩 바꾸어서 함수를 만들어 쓰더군요.

저는 그런식으로 복사 붙이기 하기 싫어 제 나름대로 좀 더 깔끔한 코드를 만든다고 했는데, 다른 직원이 저를 보고 하는 말 '남들 하는 대로 해!'.

그 회사에서 지금은 어떤 방식을 쓰고 있는지는 모르겠습니다.

zzesu의 이미지

저는 '프로그래밍은 art 이다' 와 같은 명제에서 art는 '예술'로 해석해도 되지만 '기술'로도 해석되어야 한다고 봅니다.

Knuth의 글에서도 art를 과학이라는 자연의 원리를 현실에 적용하는 능력으로 설명하는 부분이 나옵니다.
또, Pete McBreen의 '소프트웨어 장인정신'이라는 책에서도 프로그래밍이란 것은 독일의 마이스터 제도 혹은 도제 시스템을 통해서 (즉, 오랜 시간의 훈련과 반복을 통해서) 그 능력이 전수되기에 더욱 적합한 성질의 것이라고 주장하고 있습니다.

프로그래밍이 예술과 기술의 두 가지 능력을 모두 요구하는 것은 사실입니다.
저는 Knuth도 두 가지 뜻을 모두 고려해서 'art'라는 용어를 사용했다고 믿습니다.

프로그래머로서 예술과 기술 능력의 적정한 비율은 각자의 방식과 취향에 따라 다를 수 있겠습니다. 제 개인적인 판단 혹은 희망은 기술(80), 예술 (20) 정도입니다.

#!헤이~째수

zoops의 이미지

그런데 예술과 공학이 대립되는 위치인가요?

그리구 설계와 예술도 대립되는 위치인가요?

전 설계를 꼭.. 그리구 잘해야한다고 생각하고..
소프트웨어 공학적인 요소들이 성공적인 프로젝트.. 혹은 성공적인 프로그래밍에 중요하다고 생각합니다만..

또한 프로그래밍은 예술이라고 생각합니다.

제가 이상한가요?"

- zoops -

maindb의 이미지

고인이 되신 리차드 스티븐스 아저씨 책을 보면
예술과 공학의 선을 마음대로 넘나들고 있는데

책을 보다보면 정말 공학이라는 것이 무엇인지 절실히 느끼기도 하고
아름답다는 기분도 들기도 하고...

어떻게 보면 예술과 공학의 선을 유일하게 넘나들 수 있는 분야가 아닌가
하는 생각이 듭니다.

maddie의 이미지

프로그래밍은 "생계수단"입니다.

힘없는자의 슬픔