탭 대 공간:구글의 골랑에 의해 재 점화 20 년 토론
괴짜는 지난 16 년 동안 측면을 선택하고있다—프로그래머가 공백이나 탭을 사용하여 코드를 들여해야 하는가? 하지만 지금은 불명예스럽게 사소한 불꽃 전쟁은 구글의 연구에 의해 새로운 굴지를 부여하고있다—아마도 실리콘 밸리의 최근 에피소드의 대화에서 영감을.
“진실은 내가 탭에 대한 약간의 환경 설정을 할 수 있습니다. 그러나 그것은 단지 내가 항문이기 때문에 그리고 나는 정밀도를 선호하기 때문입니다.”
“글쎄,여기서 싸움을 선택하는 것이 아니라,당신이 정말로 정밀도에 관심이 있다면,당신은 공백을 사용하지 않겠습니까? 그러나 일단 컴파일러를 통과하면,그것은 똑같은 것입니다.”
“이 모두 같은 경우,왜 그냥 탭을 사용하지?”
“다른 사람의 컴퓨터에서 다르게 보일 수 있기 때문입니다.”
“탭은 더 작은 파일 크기를 만듭니다. 내 말은,왜 이맥스 위에 정력을 사용하지 않습니까?”
“나는 이맥스 위에 정력을 사용한다.”
“오,하나님 우리를 도와주세요!”
마지막으로 올해—바로 노동절 주말 전에-구글의 개발자 옹호에 무게를하기로 결정했다. “우리는 14 개의 프로그래밍 언어 중 10 억 개의 파일을 구문 분석하여 어느 것이 맨 위에 있는지 결정할 것입니다.”그들은 상위 400,000 개의 깃허브 리포지토리에서 파일을 찾았고 상위 언어로 작성된 코드 파일만 보고 있었고,그들의 차트는 공백이 모든 언어에서 가장 많이 사용되는 들여쓰기 방법이라는 것을 보여 주었다.
“확인,이동은 미래의 언어입니다,”레딧에 한 주석 농담.
“소스 코드도 자동으로 포맷됩니다.”라고 다른 프로그래머가 반박했습니다. “나는 공백을 사용,그것은 탭을 뱉어!”
그리고 트위터에서 한 개발자는 에세이가 또 다른 논쟁을 일으켰다 농담. “새로운 토론은 이제’도대체 무엇이 잘못 되었습니까?”
적어도 한 캐나다 엔지니어는 구글이 문제를 해결에 넣어 노력에 박수를 보냈다.
https://t.co/wuMz1gLwXT 그것이 당신이 논쟁을 해결하는 방법입니다:데이터.이안 포스베리(@미스터 지아)9 월 8, 2016
그러나 결국,구글은 개발자 세계에 평화를 가져다하지 못했습니다.
명확하게하기 위해:들여 쓰기를 위해 탭 대신 공백을 사용하는 모든 사람들은 되돌릴 수 없을 정도로 잘못되었습니다.
내가 좋아하는 방식으로 코드를 보자.
기간.”나는 내가 할 수있는 모든 것을 가지고 있다고 생각한다.14, 2016
누군가가 구글의 분석에 카스티요을 언급 할 때,그는 단순히 추가”나는 그것을 알고 있었다. 그리고 네,그들은 모두 100%잘못되었습니다.”
“이 광기는 무엇인가,”클라우드 엔지니어 에드 모건 트윗.
“광기 모두가 탭이 더 알고!”런던에 본사를 둔 넷앱 관리자가 대답했다.
“이 역겨운,”영국의 한 프리랜서 웹 디자이너 트위터
그것은 거기서 끝나지 않았다. 구글의 포스트는 곧 레딧에 1620 의견을 그리기,또한 기즈모,슬래시 닷,그리고 해커 뉴스에 켜기,바이러스 성 갔다. “탭-대-공간 토론을 듣고 양측이 가지고있는 모든 합법적 인 점을 고려 20+년 후,많은 사람들이 다음과 같은 관찰을 한 그것은 나와 함께 가장 공감 무엇,”해커 뉴스에 한 프로그래머를 썼다.
“이상적인 완벽한 세계에서 프로그래머와 텍스트 편집기 도구는 들여 쓰기를 위해 특별히 탭을 사용하고 정렬을 위해 특별히 공백을 사용합니다. 그러나 우리는 완벽하게 조화 된 세계에 살고 있지 않으므로 공간이 가장 충실도를 유지합니다—프로그래머가 2,4,6,8 의 너비에서 들여 쓰기를 즉시 사용자 정의 할 수 없습니다.”
괴짜들이 정말로 20 년 이상 이것에 대해 논쟁 해 왔습니까? 그것 같이 보인다. 그것은 이미 제이미 자윈스키,초기 넷스케이프 네비게이터 브라우저에 코더 중 하나에 의해”끝없는 인수”로 설명되고 있었다—다시 2000. 그의 게시물은 다양한 너비로 탭을 변경하는 두 개의 리눅스 텍스트 편집기(이맥스와 6)를 구성하는 방법을 설명했다. (“그러니 나가서 탭 해제하십시오!”)
즐겁게 우리는 함께 압연,2004 년,마이크로 소프트 개발자 네트워크에 게시물은 어떤 사람들은 공간과 탭을 결합하는 것을 지적하고,그들이 실제로 네 번째 위치를 걸었했다고 주장,바로 그 문제를했다:코딩 도구는 규칙의 합의 된 집합에 따라 코드를 저장하는 동안,각 사용자의 선호보기를 표시하도록 구성 할 수 있어야합니다. 그러나 모두가 그렇게 열린 마음을 가진 것은 아닙니다. 2009 년,제프 앳 우드,스택 오버 플로우의 공동 설립자 중 하나는,우주 이교도에 죽음이라는 블로그 게시물을 썼다!. 그는 사랑하는 1984 년 도서 코드 완료를 인용하여 자신의 직책을 위해 로비합니다.
“우리의 연구는 프로그래밍 계획과 프로그래밍 담론의 규칙에 대한 지식이 프로그램 이해에 중대한 영향을 미칠 수 있다는 주장을 뒷받침합니다…프로그램이 특정 스타일로 작성되어야한다는 것은 미학의 문제가 아닙니다…프로그래머는 다른 프로그래머가 이러한 담론 규칙을 따를 것이라는 강한 기대를 가지고 있습니다. 규칙을 위반하면 프로그래머가 시간이 지남에 따라 구축 한 기대에 의해 제공되는 유틸리티는 효과적으로 무효화됩니다.”
그리고 앳우드는 1970 년대 초의 더 많은 실험을 인용하여 정보가 의미있는 순서로 배열 될 때 더 잘 유지된다는 것을 발견했습니다. “그래서 그래,”앳 우드는 공백 문자 및 코드 레이아웃의 다른 겉보기에 사소한 문제를 통해 싸우는 것은 실제로 정당화,소리 수 있으므로 터무니”,결론 지었다. 물론 이유 내에서-공정하고 합의 건물 방법으로,공개적으로 수행 할 때,그리고 길을 따라 얼굴에 팀 동료를 찔러하지 않고.”
4 년 후,문제는 긱 국가의 중심에 설정—스택 오버 플로우에 대한 토론에서.
“공백”은 하나의 인수를 읽습니다. “탭은 환경에 따라 다른 수의 열이 될 수 있지만 공백은 항상 하나의 열입니다.”
“탭,”카운터 인수를 읽습니다. “그들은 들여 쓰기를 위해 특별히 고안된 캐릭터입니다. 들여 쓰기 크기가 다른 환경 설정을 가진 개발자는 코드를 변경하지 않고 코드 모양을 변경할 수 있습니다.”
그러나 페이지의 탭 부분은 궁극적으로 회유적인 메모를 친다. “물론 일관성은 둘 중 하나보다 중요하며 좋은 이드는 그 차이를 무시할 수있게 만듭니다.”그런데 왜 좋은 인수를 망치고? “즉,이 스레드의 요점은 거룩한 전쟁이 될 것입니다,그래서…”
제프 앳 우드 자신이 동의하는 것 같습니다. 2009 년에 그는”실제로 어떤 코딩 스타일을 선택하는지는 중요하지 않습니다. 중요한 것은 당신과 당신의 팀의 다른 모든 사람들이 그 규칙을 고수하고 일관되게 사용한다는 것입니다.”그러나 그는 한 문장을 더 추가하는 것을 저항 할 수 없었다.
“즉,바보 만이 탭을 사용하여 코드를 포맷합니다.”
- 스탠포드 과학자들은 뇌 신호를 읽음으로써 손없이 타이핑 할 수있는 방법을 구축합니다.
- 미항공 우주국은 화성의 멋진 이미지를 공유한다.
- 미국은 최초의 연방 최고 정보 보안 책임자를 임명합니다.
- 아마존은 당신의 이웃 쇼핑몰과 당신의 집을 침략하고 싶어합니다!
- 라즈베리 파이는 천만 번째 판매를 기념합니다.
- 존 르 카레는 마침내 자신의 다사 다난 한 삶의 이야기를 출판합니다.
- 유발 노아 하라리의’인류의 간략한 역사’는 내일의 투기적 역사를 따랐다.
- 니콜라스 카는 우리가 만든 세상을 바라보며”유토피아는 오싹하다.”
그의 블로그에서 카는 미디어 회사 표준을 페이스 북에 적용 할 수 asks - 스티브 잡스”용기”연설을 기억—일부 레딧 사용자가 새로운 아이폰의 무선 전용 헤드폰 설정을 조롱으로.