편집자:

  최근 몇년 동안 내가 지켜보며 느낀 것은, 실력 좋은 프로그래머들을 함수로 표현했을 때, 그 함수는 곧 만들어지는 프로그램들에 들어있는 goto 문의 줄수가 줄어듬과 직접적인 연관이 있다. 그리고 나는 goto를 사용함이 어째서 그런 엄청 안좋은 점들을 불러오는지 알게되었고,  결국 나는 모든 고급언어에서는 (고급언어라 함은 머신코드를 제외한 모든 다른 언어를 뜻한다.) goto문이 사라져야한다고 믿게되었다. 하지만 그 때 나는 goto문의 안좋은 점들과 왜 goto문이 사라져야하는 가에 대해 그다지 중요하게 여기지는 않았다. 하지만 최근의 토론들과 이야기들에 goto문이 다시 등장하게 되었고, 이제는 이 글로 나의 생각을 남기려 한다.


  나의 첫번째 생각은, 바로 프로그래머의 일은 원하는 일을 하거나 제대로 작동하는 프로그램을 만듬으로써 끝난다는 것이다. 그리고 그의 진짜 일은 바로 그가 만든 프로그램의 프로세스 (역자주: flow라고 해석하는게 나아보임)를 이해하는데에 있다. 그 프로세스의 동적인 행동들을 통해서 프로그래머 본인이 원하던 스펙과 행동들이 완성되어져가기 때문이다. 하지만, 해당 프로그램이 만들어진 후에는, 그  프로그램을 '더 만들고' 작동시키기는 프로그래머의 일이 아니라, 그 프로그램을 돌리는 기계의 일이다.


  나의 두번째 생각은, 우리의 지적 힘으로는 동적보다는 정적인 관계들을 이해함이 돌아가는 전체 프로세스와 시간이 지나감에 있어서 그것이 어떻게 변해가는지 알게되는데 더 쉽게 받아들여진다. 이때문에, 우리는 정적프로그램과 동적 프로세스의 컨셉트적인 차이를 줄이는데 최대한 노력해야한다, 그리고 그러므로써 프로그램과 (텍스트 스페이스에 펼쳐져있는) 프로세스의 (시간 스페이스에 펼쳐져있는) 관계를 가장 이해하기 쉽게 만드는데에 목표가 있다.



한국말로 바꾸기 귀찮 ㅅㄱ