프로그래밍을 한다고 하면, 사람들은 종종 안드로메다에 거주하는 외계인으로 간주하는 경우가 있다. 특히, 작업하는 것을 옆에서 보게되면 더더욱 심하다. 영어의 탈을 쓴 알아볼 수 없는 괴악한 텍스트 문서를 만들고, 이상한 프로그램을 돌려서 그들이 사용하는 소프트웨어를 만들어내니 그렇게 생각하는 것도 무리는 아닐 것이다. 그런데, 사실 사람이 쓰는 언어보다 프로그래밍 언어 자체는 쉽다. 애매모호함도 덜하거니와, 기계적으로 맞아 떨어져야하는 언어이기 때문에 쉬운건 사실이다. 그렇다면, 왜 사람들은 프로그래밍을 어려워할까? 답은 사고에 있다.
인간이 사용하는 자연어는 일반적인 사고의 틀내에서 존재하지만, 프로그래밍 언어는 특정한 목적에 의해 특정한 사고의 틀내에 존재한다. 이 사고방식이 절차지향 프로그래밍이라든가 객체지향 프로그래밍이라든가 함수형 프로그래밍같은 거다. 이 사고방식은 컴퓨터라는 기계의 작동방식에 그 근원을 두고 있기 때문에 자연어의 사고방식과 유사하지만 다르다. 그리고, 이 차이가 어려움을 가져온다. 한가지 재밌는 것은, 자연어의 사고방식과 유사한 사고방식의 언어를 접하게 되면, 프로그래머도 난감해한다는 점이다. 기존의 방식과는 다르므로.
쉬운 프로그래밍은 근본적으로 불가능할지도 모른다. 하지만, 프로그래밍을 쉽게 배우려면, 언어나 문법에 집중하는게 아니라 그 사고의 작동방식에 초점을 맞추어야하지 않을까?
일부 인간이 사용하는 자연어도 특정한 목적에 의해 특정한 사고의 틀 내에 존재하는 것 같습니다.
뉴스를 보고 있으면 특히나 그런 생각이 들더군요.^^
개인적으로 에전 개발사에서 일본인 PM과 한국인 개발자 사이의 통역을 담당한 적이 있어서, 대략적인 개념정도는 어렴풋이 머리에 넣고 있긴합니다만, 역시 저 같은 문외한이 보기에 ‘괴악한 텍스트 문서’를 만들어 내신다는 말에는 공감합니다. ㅋㅋㅋ
여담이지만, 그 회사 워크샵 때 다들 ‘제 주 언어는 ~~ 입니다’라고 소개할 때, 저만 일어나서
‘제 주언어는 한국어와 일본어입니다’라고 소개했던 기억이 나네요.
오늘 하루도 건승 하십시오^^
왓쌀람.
@SayidJung
인공적인 개념에 기반한 단어들의 집합이라면 그럴법하지요. 🙂 진짜 프로그래머가 만드는 소스는 ‘괴악한 텍스트 문서’입니다. ㅋㅋ
🙂 와주셔서 감사 에헷.