@@ -609,15 +609,15 @@ Some European users bugged me into adding an option to limit the number of messa
(오동재)
Before we go back to general software-engineering issues, there are a couple more specific lessons from the fetchmail experience to ponder. Nontechnical readers can safely skip this section.
일반적인 소프트웨어공학의 주제로 돌아가기 전에 fetchmail의 경험으로부터 배울 점이 몇 가지 더 있다.
일반적인 소프트웨어적인 주제로 돌아가기 전에 fetchmail의 경험으로부터 배울 점이 몇 가지 더 있다.
The rc (control) file syntax includes optional 'noise' keywords that are entirely ignored by the parser. The English-like syntax they allow is considerably more readable than the traditional terse keyword-value pairs you get when you strip them all out.
The rc (control) file syntax includes optional **noise** keywords that are entirely ignored by the parser. The English-like syntax they allow is considerably more readable than the traditional terse keyword-value pairs you get when you strip them all out.
rc 파일의 구문은 선택사항으로 'noise' 라는 키워드를 포함하는데 이것은 파서(parser)에 의해 모두 무시된다. rc파일은 영어와 비슷한 문법을 일부 허용한다. `영어와 비슷하게 쓰인 이러한 문장'은 필요없는 부분을 모두 잘라낸 전통적이고 간결한 '키워드-밸류 짝'에 비해 훨씬 이해하기 쉽다.
RC파일의 구문은 선택사항으로 **noise** 라는 키워드를 포함하는데 이것은 파서(parser)에 의해 모두 무시된다. RC파일은 영어와 비슷한 문법을 일부 허용한다. **영어와 비슷하게 쓰인 이러한 문장**은 필요없는 부분을 모두 잘라낸 전통적이고 간결한 **키워드-밸류 짝**에 비해 훨씬 이해하기 쉽다.
These started out as a late-night experiment when I noticed how much the rc file declarations were beginning to resemble an imperative minilanguage. (This is also why I changed the original popclient 'server' keyword to 'poll').
These started out as a late-night experiment when I noticed how much the rc file declarations were beginning to resemble an imperative minilanguage. (This is also why I changed the original popclient **server** keyword to **poll**).
이것은 내가 rc 파일 선언들이 명령형 소언어(imperative minilanguage)를 얼마나 많이 닮아가기 시작했는지 알아차리고 나서 한밤중의 실험으로 시작되었다. (popclient 의 'server' 라는 키워드를 'poll' 로 바꾼 이유도 이것이다.)
이것은 내가 RC파일 선언들이 명령어(imperative minilanguage)와 얼마나 비슷해지기 시작했는지 알아차리고 난 후, 한밤중의 실험으로 시작되었다. (popclient 의 **server** 라는 키워드를 **poll** 로 바꾼 이유도 이것이다.)
(박주희)
It seemed to me that trying to make that imperative minilanguage more like English might make it easier to use. Now, although I'm a convinced partisan of the **make it a language** school of design as exemplified by Emacs and HTML and many database engines, I am not normally a big fan of **English-like** syntaxes.
...
...
@@ -637,23 +637,20 @@ There remain, however, good reasons to be wary. One is the complexity cost of th
그러나 아직 조심해야 할 이유가 남아있다. 하나는 파싱 단계의 복잡성에 대한 비용이다—파싱하는 단계에서 많은 버그와 사용자에게 혼란을 줄 문제를 일으키는 것은 좋지 않다. 또 다른 한 가지는 프로그래밍 언어의 구문을 영어처럼 만들게 되면, **영어** 의 의미가 왜곡되고 이러한 자연어와 표면적인 유사성이 전통적인 구문이 그랬던 것처럼 혼동되어 사용될 수 있다. (이러한 악영향은 소위 말하는 **4세대** 언어와 상업용 데이터베이스 질의어에서 발견할 수 있다.)
(조진수)
The fetchmail control syntax seems to avoid these problems because the language domain is extremely restricted. It's nowhere near a general-purpose language; the things it says simply are not very complicated, so there's little potential for confusion in moving mentally between a tiny subset of English and the actual control language. I think there may be a broader lesson here:
언어영역이 극도로 제한되어 있기 때문에 fetchmail 제어 구문은 이러한 문제들을 피하는 것 같다. 그것은 언어의 일반적인 목적과는 거리가 멀었다. 그것이 말하는 것들은 단순히 그리 복잡하지 않기 때문에, 영어의 일부분에서 실제 제어언어로 옮겨가는데 혼란을 일으킬 가능성이 적었다. 나는 여기서 더 넓은 교훈이 있을 수 있다고 생각한다.
16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
16. 당신의 언어가 Turing-complete 하지 않다면 문법적 설탕(syntactic sugar)이 필요하다. (When your language is nowhere near Turing-complete, syntactic sugar can be your friend)
17. 당신의 언어가 Turing-complete 하지 않다면 문법적 설탕(syntactic sugar)이 필요하다. (When your language is nowhere near Turing-complete, syntactic sugar can be your friend)
Another lesson is about security by obscurity. Some fetchmail users asked me to change the software to store passwords encrypted in the rc file, so snoopers wouldn't be able to casually see them.
또하나의 교훈은 모호함에 의한 보안에 대해서이다. 일부 Fetchmail 사용자들은 나에게 RC파일에 암호화된 비밀번호를 저장하기 위해 소프트웨어를 바꾸라고 부탁해서 스누퍼들이 무심코 볼 수 없도록 했다.
I didn't do it, because this doesn't actually add protection. Anyone who's acquired permissions to read your rc file will be able to run fetchmail as you anyway—and if it's your password they're after, they'd be able to rip the necessary decoder out of the fetchmail code itself to get it.
저는 그것을 하지 않았는데, 왜냐하면 그것이 실제로 보안을 강화시키지 않기 때문입니다. rc 파일을 읽을 수있는 권한을 얻은 사람은 어쨌든 당신처럼 fetchmail을 실행할 수있을 것입니다. 그리고 그것이 당신의 암호라면, 그들은 그것을 얻기 위해 fetchmail 코드 자체에서 필요한 디코더를 추출 할 수 있을 것입니다.