diff --git a/README.md b/README.md index cd12e52e4632599d59594fd8153918ef0ec26235..77f7256bc9f8af41c68d5ebf524c5d82c0f6b903 100644 --- a/README.md +++ b/README.md @@ -125,29 +125,29 @@ So, did I immediately launch into a furious whirl of coding up a brand-new POP3 그래서 내가 이미 있는 POP3 클라이언트들과 경쟁하는 새로운 프로그램을 곧바로 코딩하기 시작했을까? 천만에. 나는 이미 가지고 있는 POP 유틸리티들을 조심스럽게 살피면서 스스로에게 물었다. ``내가 원하는 것과 가장 가까운 프로그램이 어느 것일까?'' 그 이유는 -(선준영)2. Good programmers know what to write. Great ones know what to rewrite (and reuse). +2. Good programmers know what to write. Great ones know what to rewrite (and reuse). -2. 좋은 프로그래머는 어떤 프로그램을 만들어야 할 지 안다. 위대한 프로그래머는 어떤 프로그램을 다시 만들어야 할 지 (그리고 재사용해야 할 지) 안다. +2. 좋은 프로그래머들은 무슨 프로그램을 짜야 할 지 안다. 위대한 프로그래머들은 무슨 프로그램을 다시 짜야 할 지 (그리고 재사용해야 할 지) 안다. While I don't claim to be a great programmer, I try to imitate one. An important trait of the great ones is constructive laziness. They know that you get an A not for effort but for results, and that it's almost always easier to start from a good partial solution than from nothing at all. -내가 위대한 프로그래머라는 말은 아니지만 흉내내려고는 했다. 위대한 프로그래머의 중요한 특징 중 하나는 건설적인 게으름이다. 그들은 들인 노력으로가 아니라 결과로 평가받는다는 것을 알고 있으며 완전한 무에서 시작하는 것보다는 부분적으로나마 좋은 해결책에서 시작하는 것이 거의 항상 더 쉽다는 것을 알고 있다. +내가 위대한 프로그래머라고 주장하는 것은 아니지만, 그런 부류를 흉내내려고는 한다. 건설적인 게으름은 위대한 프로그래머들의 중요한 특성 중 하나이다. 그들은 노력이 아닌 결과들로 좋은 평가를 받는다는 것을 알고 있고, 맨손으로 시작하는 것보다 부분적으로라도 좋은 해답을 지닌 채 출발하는 것이 대개 더 쉽다는 것을 안다. Linus Torvalds, for example, didn't actually try to write Linux from scratch. Instead, he started by reusing code and ideas from Minix, a tiny Unix-like operating system for PC clones. Eventually all the Minix code went away or was completely rewritten—but while it was there, it provided scaffolding for the infant that would eventually become Linux. -리누스 토발즈 를 예로 들자면 그는 맨바닥에서 Linux를 만들어 내려고 하지 않았다. 대신 그는 386 기계를 위한 Unix 비슷한 소형 OS, Minix 의 코드와 아이디어를 재사용하는 것으로부터 시작했다. 결국 모든 Minix 코드는 사라지거나 새로 쓰여졌다 -- 하지만 Minix 의 코드가 남아있을 동안 그 코드는 나중에 Linux 가 될 어린 아기의 발판 역할을 했다. +예를 들어, Linus Torvalds는 실제로 맨땅에서 리눅스를 만들어 내려고 하지 않았다. 그는 대신 유닉스와 유사한, PC 클론 전용 소형 운영체제인 Minix로부터 코드와 아이디어들을 재사용 하는 것으로 시작했다. 최종적으로 모든 Minix 코드는 없어지거나 완전히 새로 쓰여졌지만 Minix 코드가 남아있는 동안 그 코드는 장차 리눅스가 될 초기상태에 발판이 되어 주었다. In the same spirit, I went looking for an existing POP utility that was reasonably well coded, to use as a development base. -똑같은 생각으로 나는 이미 있는 POP 유틸리티 중 코딩이 잘 되어있는 것을 찾아 개발의 기초로 사용하려 했다. +같은 정신으로, 나는 코딩이 잘 되어 있는 기존의 POP 유틸리티를 찾아 개발 기반으로 이용하려 했다. The source-sharing tradition of the Unix world has always been friendly to code reuse (this is why the GNU project chose Unix as a base OS, in spite of serious reservations about the OS itself). The Linux world has taken this tradition nearly to its technological limit; it has terabytes of open sources generally available. So spending time looking for some else's almost-good-enough is more likely to give you good results in the Linux world than anywhere else. -Unix 세계의 소스를 공유하는 전통은 언제나 코드 재사용에 대해 호의적이었다. (GNU 프로젝트가 Unix 자체에 대한 심각한 의혹에도 불구하고 Unix 를 기본 OS 로 선택한 것도 바로 이런 이유에서였다) 리눅스 세계는 거의 기술적인 한계에 다다를 때까지 이 전통을 받아들였다. 일반적으로 찾아볼 수 있는 오픈된 소스가 수 테라바이트에 달하는 것이다. 그래서 리눅스 세계에서는 다른 어느 곳에서보다 누군가의 거의 완성된 소스를 찾아보는데 시간을 들이는 것이 좋은 결과를 가져다 줄 가능성이 높다. +유닉스 세계의 소스 공유 전통은 항상 코드 재사용에 호의적이었다. (이는 GNU 프로젝트가 유닉스 운영체제 자체와 관련된 심각한 의혹들에도 불구하고 유닉스를 기본 운영체제로 선택했던 이유였다.) 리눅스 세계는 거의 기술적 한계에 이르기까지 이 전통을 받아들였다. --일반적인 오픈소스들 가용한 수 테라바이트-- <이 부분 추후 다시 번역 예정> 그래서 다른 어느 곳보다도, 리눅스 세계에서는 누군가의 거의 완성된 소스를 찾아보는데 시간을 투자하는 것이 좋은 결과로 이어질 가능성이 높다. -And it did for me. With those I'd found earlier, my second search made up a total of nine candidates—fetchpop, PopTart, get-mail, gwpop, pimp, pop-perl, popc, popmail and upop. The one I first settled on was `fetchpop' by Seung-Hong Oh. I put my header-rewrite feature in it, and made various other improvements which the author accepted into his 1.9 release. (선준영) +And it did for me. With those I'd found earlier, my second search made up a total of nine candidates—fetchpop, PopTart, get-mail, gwpop, pimp, pop-perl, popc, popmail and upop. The one I first settled on was `fetchpop' by Seung-Hong Oh. I put my header-rewrite feature in it, and made various other improvements which the author accepted into his 1.9 release. -나에게도 역시 그랬다. 예전에 찾아놓은 것에다가 두 번째 검색결과를 더하니 모두 아홉 개의 후보가 생겼다. fetchpop, PopTart, get-amil, gwpop, pimp, pop-perl, popc, popmail, 그리고 upop 이었다. 내가 제일 먼저 정착한 프로그램은 오승홍 씨의 fetchpop 이었다. 헤더 재작성 기능과 더불어 몇몇 개선사항을 추가했고, 저자가 릴리즈 1.9 에 그것을 수용했다. +나도 마찬가지였다. 일찍이 내가 찾아놓은 것들에 두 번째 검색결과를 더하여 fetchpop, PopTart, get-amil, gwpop, pimp, pop-perl, popc, popmail, 그리고 upop 으로 총 아홉 개의 후보가 생겼다. 그 중 처음으로 설정한 것은 오승홍 씨의 fetchpop 이었다. 헤더 재작성 기능과 더불어 여러 기타 개선사항들을 추가했고, 저자는 이를 그의 1.9 배포판에 수용했다. A few weeks later, though, I stumbled across the code for popclient by Carl Harris, and found I had a problem. Though fetchpop had some good original ideas in it (such as its background-daemon mode), it could only handle POP3 and was rather amateurishly coded (Seung-Hong was at that time a bright but inexperienced programmer, and both traits showed). Carl's code was better, quite professional and solid, but his program lacked several important and rather tricky-to-implement fetchpop features (including those I'd coded myself).