ThePragmaticProgrammer에 소개되는 ComputerProgramming에 관한 교훈 중 하나.
plain text는 human readable한 텍스트이다. 정보를 다룰 때, 바이너리 혹은 특정 포맷 같은것들 쓰지말고, plain text를 써라. FlatFile, XML, SGML, HTML, DocBook, TeX, ReStructuredText등도 잘 구조화된 일종의 plain text이다.
plain text를 쓰게 되면, 압축된 바이너리 포맷에 비해 공간소비가 더 크고, 이를 해석하고, Parsing하는 일을 또 해야한다는 단점이 있지만, 다음의 장점에 비하면 아무것도 아니다.
- Insurance against obsolescence (구식화에 대한 보상) : 데이터가 유효한한 언제까지나 써먹을 수 있다. 만일 바이너리로 만들경우 그 형식에 대해 항상 알고 있어야 한다.
Leverage : SourceCodeControlSystem에서 부터 컴파일러환경에 이르기까지 컴퓨터환경의 대다수가 plain text를 이용한다. plain text로 프로그래밍하고 이전버젼과의 차이를 Diff등을 이용하여 plain text로 확인한다. 특히도 Unix philosophy가 이를 지원한다. 대부분의 프로그램들이 plain text로 환경설정한다.
- Easier testing : 시스템 테스트에 사용할 정보들을 plain text로 저장하면, 향후 add, update, modify가 용이하다.
일상생활에도 적용된다. 만일 개인정보를 MS-outlook등의 프로그램으로 관리하게 되면, 향후 그 데이터를 다시 이용해야할 때 꼭 MS-outlook 프로그램을 사용해야 한다. 그렇게 되면, 그 데이터의 포맷을 알아야만 다른 목적으로도 써먹을 수 있다.
반면, WikiWiki에다가 기록하면, (이것은 일종의 plain text이다.) ASCII등의 FlatFile데이터를 다른 목적으로도 유연하게 써먹을 수 있다. 이는 WikiWiki의 ModelVsView 시스템이 잘 갖춰져있슴을 의미하기도 한다.
KeepKnowledgeInPlainText를 잘 하려면, 자기만의 잘 쓰는 텍스트 에디터가 필요하다. yong27의 프로그래밍 연장은 VimEditor와 EditPlus