아무리 좋은 소프트웨어여도 원라이너가 사용되면 오픈소스여도 욕먹고, 회사라면 퇴사당하고, 결국 누구도 손대지 않는 코드를 만들어내게 하는 마법의 문법적 스타일이다... 그렇다고 깃갤러들이 오픈소스여도 사장되고, 회사에서 짤리고, 영원히 잊혀지라고 원라이너를 강요하는 글을 쓰는것은 아니고 특수한 상황에서는 생산성을 조금 높혀줄 수 있지 않을까해서 의견을 내봄. 절대 옹호하는 것은 아님 ㅇㅇ.
1. 간단한 목적을 달성할때 편하다.
아주 단순한 목적의 코드고 다시는 쓰이지 않을거라면 원라이너로 쓰는 방법이 있지. 유닉스 셸에서 파이프와 세미콜론으로 한 줄에 여러 명령어를 넣고 각각 독립적으로, 혹은 서로 연계되어서 실행되면 그 어떤 언어보다도 재빠르게 프로토타입을 만들어 낼 수 있다.
예시를 하나 들자면, 제임스 웹 우주망원경이 발사되기 약 1분전, 카운트다운하는걸 보고싶어서 셸에서 곧바로 카운트다운하는 프로그램을 만든적이 있다. 쓰고나서 바로 버렸지만.
2. 1번과 비슷한 철학을 가졌다면 원라이너가 낫다.
정규표현식이라면 하나의 패턴을 찾는 코드가 길어지는것보다 서로 다른 패턴 하나를 여러개 찾는 경우가 훨씬 많으므로 원라이너 사용이 거의 강제된다. 개행 문자를 넣어서 한 줄씩 해석하는 주석을 다는 방법도 있지만 그건 확장 문법이라 아무때나 사용하긴 어렵다.
유감스럽게도 규식이는 검색어를 급조할때 정말 편했다...
3. 원라이너가 가능한 언어는 최종적으로 원라이너로 번역됨(?)
컴파일러 이론을 자세히 공부한건 아니지만 파싱 단계에서 토큰으로 변환되고 의미없는 공백 문자나 주석같은건 짤린다고 들었음. int i; 같은 코드를 예시로 들면 정수형 타입을 뜻하는 int와 해당 타입을 뜻하는 변수 이름 i를 구분하기 위해 공백 문자가 사용되지만 토큰 변환 이후 단계에서 공백이 없어지고 대신 int와 i의 연관성만 남는다는 뜻.
정확한 원리는 몰라서 의견을 내는 정도로만 그침...
댓글 0