이맥스가 저를 더 나은 프로그래머로 만들 수 있습니까? [닫은]


130

Steve Yegge는 자신의 블로그에 다음 과 같은 코멘트를 썼습니다 .

세계 최고의 엔지니어들은 모두 Emacs를 사용합니다. 세계 체인저 유형. 당신 옆에있는 큐브의 위대한 여자는 아닙니다. 프레드가 아니라 복도에서 놀란 사람 나는 업계의 얼굴을 바꾼 우리 직업의 가장 위대한 소프트웨어 개발자에 대해 이야기하고 있습니다. James Goslings, Donald Knuths, Paul Grahams, Jamie Zawinskis, Eric Bensons. 실제 엔지니어는 Emacs를 사용합니다. 당신은 그것을 잘 사용하기 위해 현명해야하며, 그것을 마스터 할 수 있다면 믿을 수 없을만큼 강력합니다. 폴 노드스트롬의 어깨 너머로 나를 믿지 않으면 언젠가 일하는 동안 가십시오. Visual Blub .NET과 같은 IDE를 사용하여 경력을 쌓은 사람에게는 정말 눈에 띄는 도구입니다.

이맥스는 100 년의 편집자입니다.

코드를 작성하기 위해 텍스트 편집기를 사용한 마지막 시간은 약 1000 년 전에 메모장에서 HTML을 계속 쓸 때였습니다. 그 이후로 저는 Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio 및 Eclipse를 전체 경력에 사용하여 IDE에 의존했습니다.

무엇의 가치를 위해, 나는 이맥스를 시도하고, 내 경험 때문에 검색 할 기능을이 박스 아웃 오브의 완전한 부족으로 좌절이었다. (아마도 찾을 수 없었던 다른 Emacs 명령을 발견하기위한 Emacs 명령이 있습니다. 자신의 잔인한 젠 같은 농담을 사는 것과 같습니다.) 나는 좋은 달 동안 프로그램처럼 만들려고 노력했지만 결국에는 드래그 앤 드롭 GUI 디자이너, IntelliSense 및 대화식 디버깅을 대신하기로 결정했습니다.

사실을 팬보이 즘과 분리하기는 어렵 기 때문에 아직 Yegge의 의견을 액면가로 기꺼이 취하지 않겠습니다.

IDE에 의존하는 사람들과 그렇지 않은 사람들 사이에서 기술, 생산성 또는 프로그래밍의 즐거움에 상당한 차이가 있습니까? 아니면 모두 팬 보이 즘입니까?


22
Paul Graham이 vi를 사용한다는 점도 주목할 가치가 있습니다. Yegge는이 수정 내용을 링크 된 기사의 각주에 제공합니다.
Eli Courtwright

16
내가 사용한 모든 편집자 중 Emacs는 시작할 때마다 자습서를 실행하는 방법을 알려주는 유일한 편집기입니다 (자습서 실행 방법을 알려주지 않을만큼 배울 때까지).
Michael Paulukonis

16
EMACS는 무엇을 의미합니까? 메타 Alt 컨트롤 시프트를 탈출! ;-)
Peter K.

24
용어 nit pick : Emacs는 단순한 "텍스트 편집기"가 아닌 "프로그래머 편집기"입니다. GUI IDE는 텍스트를 편집 할 수있는 기능도 있지만 텍스트 편집기가 아닙니다. 메모장을 이맥스와 비교하는 것은 데스 스타에서 그 총으로 무언가를 때리는 것에 바위를 던지는 것과 비교하는 것과 같습니다.
Greg Mattes

8
분명히 어떤 사람들은 상관인과 관계
Chubas

답변:


119

먼저, 나는 이멕스 숭배에 대한 자백 한 진실한 신자라고 말합니다.

즉, 블로거는 견과류입니다. 유용한 것으로 쓰십시오. 나는 Emacs가 주로 도움이된다는 것을 알게되었습니다. 주로 대학에서 몇 년 동안 내 요구에 맞게 수정하는 방법을 배우고 자신의 필요에 맞게 수정하는 방법에 대한 초기 비용을 선불로 지불했기 때문입니다.

그러나 다른 사람들은 다르게 행동하며 "괜찮아"라고 말합니다.


73
동의했다. 저는 Emacs를 좋아하지만, Emacs가 당신을 더 나은 프로그래머로 만들 것이라고 생각하는 것은 Tiger Woods의 골프 클럽을 사용하면 더 나은 골퍼가되거나 Eddie Van Halen의 기타를 사용하면 더 나은 음악가가 될 것이라고 생각하는 것과 같습니다.
Kristopher Johnson

31
위의 Kristopher의 의견에 강력하게 동의하지 않습니다. 훌륭한 스포츠 인 / 아티스트의 도구를 사용한다고해서 그다지 훌륭하지는 않을 것입니다. 그러나 올바른 일을 위해 올바른 프로그래밍 도구를 사용하는 것은 확실합니다! 프로그래밍을 스포츠와 예술과 동일시하는 경우 용서받을 수 있습니다. :)
Susheel Javadi

6
@Bart : 그의 요점은 여러 개의 "올바른 도구"가 있다는 것입니다. Tiger Wood의 골프 클럽은 훌륭한 도구이며 작업에 완벽하지만 동일한 결과를 제공 할 수있는 다른 클럽도 있습니다. 좋은 프로그래머가 사용하는 도구는 그것들을 정의하지 않으며, 창의성과 능력이 정의합니다.
Seth Moore

9
Steves의 요점은 위대한 프로그래머가 emacs를 사용하고 좋은 소프트웨어 개발자가 IDE를 사용하여 생산성을 높이는 것이라고 생각합니다. 훌륭한 프로그래머는 항상 프로그램을 작성합니다. 코드를 작성할 때도 작업을 자동화하고 제작, 개미, 강타, 펄 및 허드슨을 좋아합니다. 그들은 소프트웨어 개발주기의 어느 부분에서나 수동 작업이 오류가 발생하기 쉽다는 것을 알고 있습니다. 훌륭한 프로그래머는 다른 사람이 여러분의 코드 (예 : IDE 또는 다른 사람)를 만들면 코드를 유지하는 데있어 항상 다른 사람의 기술에 의존한다는 것을 알고 있습니다 (예 : IDE 또는 다른 사람)
Ernelli

4
스티브 예그는 elisp에 완전한 자바 스크립트 파서를 쓴 사람, 그래서 이맥스 :) 간다까지 한 그는 너트 있다는 데는 의문의 여지가 없다
티콘 Jelvis

106

그는 (Steve Yegge) 자신의 다른 게시물에서 조금씩 자세히 설명했습니다. http://steve-yegge.blogspot.com/2008_04_01_archive.html 은 아마도 가장 포괄적 일 것입니다. 그러나 정보는 주요 주제에 접하기 때문에 거기에 묻혀 있습니다.

간단히 말해서, 단지 우수 하거나 유능한 프로그래머 는 IDE를 선택하여 실제로 잘 알게 될 것이며 아마도 충분히 알고있을 것입니다. 그러나 IDE가 그들에게 제공하는 것으로 스스로를 제한 할 것입니다. 다시 말해, 그들은 IDE에 적응합니다. 반면에 훌륭한 프로그래머는 스크립트 또는 자체 도구 작성 또는 도구 확장과 같은 방식으로 자신환경 에 맞게 환경 을 조정 합니다. 그리고 마지막 지점뿐만 아니라 이맥스는 것입니다 가장 이 확장 환경, 그것은 또한 쉬운 이 확장 할 수있는 환경은, 그것을 당신이 가장 거둘 환경입니다 혜택을 확장 기능을 통해 확장 기능을 확장 할 수 있습니다. 확장 기능은 재고 기능인 것처럼 Emacs에 통합되므로 향후 확장 기능은 이전 확장 기능 (양성 피드백 루프 종류)을 기반으로 구축 될 수 있습니다.


15
차이점은 IDE를 확장하는 데 소요되는 에너지입니다. emacs를 사용하면 모든 구성 파일이 elisp 프로그램 파일입니다. 따라서 기본적으로 진입 장벽은 엄청나게 낮습니다 (.emacs 파일 만 변경)
shsmurfy

18
앵거스와 같은 줄을 따라. 좋은 IDE가 작업을 완료하기 위해 끝없이 고민 할 필요는 없습니다. 좋은 IDE에는 필요한 모든 기능이 있어야합니다. 바로 가기와 레이아웃을 구성하고 싶을 수도 있지만 모든 것을 처리하기 위해 많은 스크립트를 작성할 필요는 없습니다.
Kibbee

5
앵거스 : 네 말이 맞아. 일을 끝내는 대신 일을 추가하는 일을 망쳐 놓아야한다면, 이멕스가 아닌지 그 요점을 놓쳤다. Sol : 외부 프로그램을 통해 소스를 확장하고 전송하는 것이 더 있습니다. 실제로 이것이 강력한 확장 메커니즘은 아닙니다.
Jonathan Arkell

15
emacs 확장과 netbeans 확장, Visual Studio 또는 Eclipse 간의 차이점은 속도입니다. 일식에 확장을 추가하는 것은 전체 애플리케이션을 작성하는 것과 같습니다. emacs를위한 확장을 작성하는 것은 한 줄의 코드 일 수 있습니다.
Justin Tanner

4
@supercheetah-Visual Studio에서 발견되는 인텔리전스와 비교할 때 매우 원시적으로 보입니다. 예를 들어 사용 가능한 멤버 옆에 표시된 아이콘이 유용합니다! 개인적으로 강력한 리팩토링 지원 없이는 Emacs에 거의 관심이 없습니다.
si618

57

가장 숙련 된 프로그래머는 vi 나 emacs를 사용합니다. 가장 숙련 된 프로그래머가 최고이기 때문에 20 년 전 vi와 emacs를 제외하고는 선택의 여지가 없었기 때문입니다.

텍스트 터미널이 매우 느린 컴퓨터에서 vi (약 1987 년)를 시작한 후 몇 년 후 (더 빠른 컴퓨터에서) (GNU) Emacs로 변환하여 거의 10 년 동안 거의 독점적으로 사용했습니다.

Emacs는 최초의 진정한 통합 개발 환경이었습니다. 전체 편집 / 링크 / 컴파일주기를 emacs로 제어 할 수 있으며, 사용하는 컴파일러에 따라 자체 롤링 할 수 있습니다.

요즘에는 이클립스와 같은 IDE가 더 잘 통합되어 있지만 (정직하게는 : emacs가 그래픽을 빨아 들인다), Emacs는 여전히 "순수한"텍스트 편집을위한 최고의 환경 중 하나입니다.


10
첫 번째 단락에서 자기 실현 예언에 +1.
OregonGhost

12
"가장 경험이 많은 프로그래머가 최고입니다"-최소한 암시 적으로는 진실과는 거리가 멀다. 경험이 부족한 프로그래머가 더 좋다고 말하지는 않지만, 20 년 이상 같은 일을 해왔다고해서 그가 잘하고 있다는 의미는 아닙니다.
AviD

7
20 년 전에는 여러 편집자가있었습니다. 그들 대부분은 단순히 좋은 이유 때문에 살아남지 못했습니다. 1989 년에 vi 또는 emacs를 사용했던 사람이 1989 년에 일부 MS-DOS 기반 편집기를 사용했던 사람보다, 또는 내가 Control Data 메인 프레임에서 사용했던 것보다 나은 이유는 무엇입니까?
David Thornley

도대체 10 년 전에는 좋은 Java IDE 가 없었습니다 !
Susheel Javadi

내가 20 년 전에 기억했던 것으로부터, vi와 emacs는 압도적으로 지배적 인 편집자였습니다. 단지 많은 편집자가 있었기 때문에 (현재와 같이) 모두 동등하게 널리 사용되었다는 의미는 아닙니다.
FinnNk

34

명확한 사고와 문제 해결을 개선하면 더 나은 프로그래머가 될 것입니다. 어떤 프로그램도 그렇게 할 수 없습니다.

더 나은 망치를 사용하는 것이 어떻게 그리고 왜인지 알지 않는 한 더 좋은 집을 짓는 데 도움이되지 않습니다. ;)


내가 말하고 싶은 것에 대한 좋은 비유이기도합니다.
Rob

21
그러나 나쁜 망치는 같은 집을 짓는 동안 생산성을 떨어 뜨릴 것이고 아마도 다른 집으로 끝날 것입니다.
user51568

공정 해! 평균적인 프로그래머는 값 비싼 망치로 훨씬 나아지지 않을 것입니다.
Jas Panesar

5
훌륭한 프로그래머는 망치로 돌을 사용하여 훌륭한 집을 지을 수 있습니다. (그는 느리지 만 여전히 할 수있다. : D)
Egon

그렇습니다.하지만 코드를 유기적으로 나눌 수있는 편집기를 사용하면 (이맥스가 대부분의 편집기보다 낫다고 생각합니다) 명확한 사고력을 향상시켜 문제를 해결할 수 있습니다.
Skilldrick

21

Yegge는 Bill Joy를 만나야합니다. 그는 세계 최고의 프로그래머 중 한 명일뿐만 아니라 vi의 큰 덩어리를 썼습니다. vi에서

짧은 부끄러운 고백 : 작년에 모든 것에 vi (및 최근 몇 년 동안 vim / gvim)를 20 년 동안 사용한 후, 현재 작업에서 Java 편집을 위해 Eclipse를 사용하고 전자 메일을 위해 Thunderbird를 사용하기 시작했습니다. 기계에는 메모리가 너무 적기 때문에 디버거가 필요할 때를 제외하고는 일반적으로 vi를 사용합니다.


7
vi의 경우 +1 (실제로 vim을 사용하지만 동일한 차이) 이맥스가 노력의 절반 이하로 할 수있는 것의 98 %입니다.
rmeador

25
나는 5 년 동안 vim을 사용했다. Emacs에서 20 분 후 나는 다시는 돌아 가지 않을 것이라고 맹세했다. Vim은 거꾸로 느낀다.
MattBelanger

5
Yegge 자신도 다음과 같이 언급합니다. [유일하게 주목할만한 예외는 VIM입니다. VIM은 경험이 없지만 모든 계정에서 매우 강력합니다. 이미 emacs보다 vi에 대한 환경 설정을 개발했다면 VIM에 대한 전문 지식을 추구하여 더 큰 행복을 경험할 수 있습니다. Psh] 출처 : steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
user674062

1
어 .. 빌 조이는 더 이상 vi를 사용하지 않습니다.
Plumenator의

13

IDE에 의존하는 사람들과 그렇지 않은 사람들 사이에서 기술, 생산성 또는 프로그래밍의 즐거움에 상당한 차이가 있습니까? 아니면 모두 팬 보이 즘입니까?

이 문제를 Visual Studio와 Emacs로 좁히겠습니다 .-- 질문이 너무 넓어서 대부분의 사람들 (적어도 여기에서는 StackOverflow에 있음)이 두 사람에 익숙하다고 생각합니다. [저는 이맥스를 사용하고 선호합니다]

다음으로 질문의 세 가지 구성 요소를 분류 해 봅시다.

프로그래밍 즐거움은 주로 프로그래밍 자체를 좋아하는 것으로 요약되며, 두 번째로 할 때 성가신 요소가 나타나지 않도록합니다. 어려움을 겪는 도구를 사용하면 즐거움에서 벗어날 것입니다. 따라서 나는 당신이 좋아하고 친숙한 도구를 사용하여 즐거움을 극대화 할 것입니다.

당신이 새로운 도구에 익숙해 이렇게되면 물론, 당신은 당신이 함께 할 경우 더 프로그래밍 같은 것, 따라서 그것이 당신이 도구를 더 좋아 찾을 수 있고 새로운 좋아하는 도구입니다. 일반적으로 사람들이 둘 다 잘 알고 있으면 emacs보다 VS를 좋아할 것 (또는 그 반대)도 분명하지 않습니다.

다음은 프로그래밍 기술입니다. 기술과 VS / emacs의 선택 사이에 어떤 관련이 있다면, 선택을 일으키는 기술이 아니라 선택을 일으키는 기술이라고 생각합니다. 내 경험상 {VS, emacs} 중 어느 것도 더 나은 코드 작성에 대해 배우는 것으로 보이지 않습니다.

좋은 도구를 사용하면 더 적은 시간에 동일한 코드 (따라서 동일한 품질 의 코드) 를 작성할 수 있습니다. 이라고 가정 productivity = quality of code `times` code per time하면 짧은 시간 안에 좋은 코드를 작성할 수있는 편집기가 생산성 향상 이라고 생각할 수 있습니다.

VS에 익숙하지 않을 수도 있지만 여기서는 emacs가 VS에서 찾지 못한 강점을 가지고 있다고 생각합니다. 어리석게 들릴지 모르지만 커서 이동과 같은 단순한 기능 Ctrl-[fbnp]은 실제로 유익합니다. 즉, 화살표 키로 손을 움직일 필요가 없습니다. 또 다른 일 : 줄 바꿈이 포함 된 검색 또는 바꾸기를 할 수 있습니다.

내가 좋아하는 또 다른 것은 편집기에 쉘을 포함시킬 수 있다는 것입니다. 내 경험상 비 Windows 플랫폼 (그리고 첫 번째 "프로그래밍"경험, IIRC는 DOS .bat 파일을 작성했기 때문에 훨씬 더 가치가 있습니다. 따라서 나는 불타는 팬보이가 아닙니다). 그러나 그 플랫폼에서는 큰 승리입니다 . emacs를 "everything"과 "통합"합니다 (찾기 / 위치를 사용한 파일 검색, grep을 사용한 텍스트 검색, svn / git / hg / ...를 사용한 버전 제어, 이름 지정).

최종 평결-이맥스를 배워야합니까? 그리고 그것은 모두 fanboyism입니까? 시간이 있다면 항상 같은 일을하는 새로운 방법을 배우는 것이 가치가 있다고 말합니다. 새로운 방법은 당신에게 더 잘 작동 할 수 있기 때문입니다. 그리고 나는 당신이 처음 생겼을 때 나타나는 것으로 거부하지 않는 것이 좋습니다. 그런 의미에서 Dvorak 키보드 레이아웃으로 전환하는 것과 같습니다. 처음에는 느리지 만 속도에 도달하면 적어도 쿼티만큼 빠르며 더 편안 할 수 있습니다. 나는 새로운 (프로그래밍) 언어를 배우는 것과 같은 접근법을 추천합니다. 어휘 (표준 라이브러리)를 모르기 때문에 상황이 어렵다고 말하지만 보상은 여전히 ​​당신을 기다리고 있습니다.


1
"Visual Studio와 Emacs로이 범위를 좁 히자.이 질문은 너무 광범위하다. 대부분의 사람들 (적어도 여기에서는 StackOverflow)이이 두 가지에 익숙하다고 생각한다." -- 정말? 나는 VisualStudio를 사용하지 않아도되는 자발적인 * nix 팬 보이가 훨씬 많았으며 자발적으로 사용하지는 않는다고 생각했습니다. 흠
Xiong Chiamiov

"Ctrl- [fbnp]를 사용한 커서 이동은 정말 유익합니다." 나는 Emacs를 좋아하지만 오랜 시간이 지난 후에 다시 돌아 왔지만 커서 움직임이 Emacs를 다시 사용하는 데있어 가장 유용하고 편안한면이라고 생각합니다. 대조적으로 나는 보거나 생각하지 않고 전용 커서 키에 도달하고 찾을 수 있습니다. 피아노 연주자가 도움이 될까요? :) 그러나 시간이 지남에 따라 C- 스 크런치 편지는 더 자연스럽게 느껴질 것입니다.
Greg Hendershott

2
추신 : 나는 쉘과 플랫폼에 전적으로 동의합니다. Windows, OS X 및 Linux 사이를 이동하려면 Cygwin을 먼저, Emacs를 세 가지 모두로 원합니다. GitHub에 .emacs.d를 던지면 황금색입니다.
Greg Hendershott

또한
정규식을

10

인용 된 텍스트가 "세계 최고의 엔지니어들이 모두 Emacs를 사용합니다"로 시작하면서 액면가로 가져 가지 않을 것입니다. 그는 세계 최고의 엔지니어들을 모두 알고 있습니까? 귀하 또는 본인이 보유한 세계 최고의 엔지니어 목록과 동일합니까?

일단 배운 후에 EMACS 또는 vi와 같은 강력한 편집기를 사용하면 좋아하는 IDE없이 붙 잡히면 더 효율적으로 또는 더 효율적으로 만들 수 있습니다.

살인자 인 "한 번 배운"부분입니다. 이러한 도구를 생산적으로 사용하는 것은 많은 작업과 실습이며 처음에는 매우 어렵습니다.


1
누군가 "훌륭한"엔지니어가되는 데 도움이되는 자질 중 하나는 만족을 지연시키고 효율성을 높이기 위해 더 큰 고정 된 시작 비용을 부담 할 수 있다고 생각합니다.
Tikhon Jelvis 2016 년

9

저는 개인적으로 Emacs 팬 보이지만 Emacs는 도구 일뿐입니다. 슈퍼 팬시 펜이 더 나은 작가가 될 것보다 더 나은 프로그래머가되지는 않습니다.

"훌륭한 프로그래머"가 자신의 환경에 적응한다는 설명은 약간의 장점이있을 수 있지만 많은 도구가이를 수행 할 수 있습니다 (예 : vim 및 SlickEdit). 따라서 Emacs에 대해서는 특별한 점이 없습니다.

아마도 가장 훌륭한 것은 "훌륭한 프로그래머"가 프로그래밍에 대한 열정을 가지고 있으며, 그에 열정을 가진 사람들은 그 열정을 이끌어내는 도구를 찾는 경향이 있다는 것입니다. Emacs (및 vim 및 SlickEdit 등)는 그러한 도구입니다.


멋진 팬은 모든 헤밍웨이 같은 느낌을줍니다.
Cheeso

2
"환경 적응"과 관련하여 Emacs의 특별한 점은 Vim 또는 SlickEdit보다 Emacs에서 수행하는 것이 훨씬 간단하다는 것입니다. (또는 내가 아는 다른 편집자)
vedang

8

나는 차이가 있다고 생각하지 않습니다. 그것은 선호의 문제입니다.

그러나 내가 주목 한 것은 코딩 시간이 길거나 코딩 수준이 낮을수록 emacs 또는 vi를 사용했을 가능성이 높다는 것입니다.


"더 오래 코딩했다"는 좋은 IDE가 있기 전에 코딩을 시작했다고 주장하는 것 같습니다.
Paul Tomblin

3
좋은 IDE 같은 것이 있습니까?
David Thornley

8

지난 10 년 동안 IDE가 훨씬 나아졌지 만, 여전히 추악한 세부 사항과는 거리가 먼 약간 안전한 "거품"에 프로그래밍이 포함되어 있습니다. 발생하는 경향은 이러한 추상화의 증가는 더 적은 지식으로 더 많은 프로그래머가 더 많은 일을 할 수있게한다는 것입니다. 물론 모든 프로그래머에게 적용되는 것은 아니지만 더 쉬운 도구를 사용하면 더 많은 사람들에게 프로그래밍이 가능합니다.

실수로 "곡물에 대항 할"가능성이 적기 때문에 하위 수준 도구에 대한 지식이 많을수록 코드의 안정성이 향상되는 경우가 많습니다. EMACS가 모든 언어와 도구에서 유래하고 특정 기술이 아니라 이해의 깊이에 관한 것이기 때문에 유일하게 최고의 지표로 표시하는 것은 불공평합니다.

과거에는 유닉스 박스에서 VI 또는 EMACS를 배웠거나 PC에 특화되어있었습니다 (OK, VMS, CMS, AS400 등도 있었지만 구형 기술 임). 두 스트림 모두 매우 예민한 사람들을 끌어 들였지만 UNIX 직원은 정교한 솔루션을 원하는 경향이 있었고 PC 직원은 신속하게 처리하기를 원했습니다. 문화는 매우 달랐습니다.


7

IMHO IDE는 특정 플랫폼 또는 언어 또는 OS에 맞게 최적화되는 경향이 있습니다. Eclipse JDT는 Java에 적합하고 Visual Studio는 C ++ /. NET 중심입니다. 작업 만 수행하는 경우 생산성을 크게 향상시킵니다 (IMHO에서도). 그 플랫폼이지만 플랫폼을 변경하면 기본적으로 새로운 IDE (또는 적어도 새로운 플러그인, 뷰, 관점 세트를 배워야하며 Eclipse의 다른 것을 모릅니다).

emacs, Textmate, vim (개인 취향) 또는 일반 편집자 를 아는 것의 장점은 해당 편집자에서 습득하는 기술이 어떤 플랫폼을 사용하든 적용된다는 것입니다. 텍스트 편집에 최적화되어 있으며 일단 마스터하면 텍스트를 매우 효율적으로 편집 할 수 있습니다.

또한 훌륭한 프로그래머가 자신의 도구를 작업 스타일에 맞게 조정하는 것이 아니라 그 반대로도 적용한다는 Yegge의 주장도 있습니다. 네 가지 IDE를 모두 원하는 방식으로 조정하는 방법을 배우지 않고 하나의 편집기 를 사용자 정의하기 때문에 일반 편집기의 경우 이것이 승리라고 생각합니다 .


당신이 작성해야 할 때 문제가 온다 A의 기반 경로 -가 '/'와 Bourne 쉘을 가정했기 때문에 예를 들어 당신이 윈도우에 * nix에서 스크립트에서 이동하고 스크립트가 휴식 : 당신이했던 것과 다른 플랫폼 PostScript 기반 인쇄 기능이있는 FHS 유사 구조 ...
SamB

나는 꽤 오랫동안 emacs와 함께 일해 왔으며 커서 이동만으로도 KMail의 이메일 인 경우에도 다른 것에 대한 글을 다시 보낼 수 있습니다.
Arne Babenhauserheide

@ArneBabenhauserheide 이것이 Mac OS X를 좋아하는 한 가지 이유 C-[npfbaed]입니다. 거의 모든 텍스트 필드가 지원 합니다. (그러나 슬프게도 없습니다 M-)
porglezomp

6

최고의 프로그래머는 환경을 사용자 정의하는 데 시간이 걸리고 자신이 할 수있는 작업을 더 빠르고 쉽게 수행 할 수있는 경향이 있다고 주장합니다. Emacs는 환경을 사용자 정의 할 때 가장 강력한 편집기 중 하나입니다. 학습 곡선은 가파르지만 일단 지나면 실제로 수행 할 수있는 작업에 제한이 없습니다.

누군가가 한때 최고의 프로그래머는 게으른 프로그래머라고 말했다. 한 번 이상 무언가를 수행해야하는 경우 자동화를위한 방법을 찾아서 노력을 덜들입니다. 이맥스는 매우 게으르다;)


4

필자는 처음부터 (언제나 QBASIC으로 시작한) IDE를 사용해 왔으며 수년 동안 사용했습니다. 나는 모든 개발 작업을 위해 거의 완전히 VIM (다양한 맛)으로 전환했으며 후회하지 않습니다. 내 생산성이 확실히 증가했습니다.

물론 Visual Studio의 Windows Forms 디자이너를 대체 할 것은 없습니다. 그러나 VIM (그리고 Emacs와 비교할 때)에 비해 Visual Studio의 텍스트 편집기는 정말 시끄 럽습니다. 콘솔과 GNU 개발자 도구의 원시 힘을 이용하면 (하는 말은 make, GCC, binutils그리고 gdb다음 몇 가지) 당신은 그들이 정반대있어, 실제로 모든 제안이 도구는 원시 보일 수 있습니다 것을 알 수 있지만 것 IDE가 제공하는 도구 (양식 디자이너 제외).

이러한 도구를 처음 사용하기 시작하면 인센티브가 작을 수 있습니다. 나는이 도구를 사용해야 할 정도로 운이 좋았습니까 (?), 나는 족제비 할 수있는 선택을하지 못했습니다.


3

개인적으로, 나는 당신이 당신을 더 생산적으로 만드는 것을 사용해야한다고 생각합니다. 앉아서 Emacs를 배우기 위해 프로젝트에 투자 할 시간이 없다면 아마도 그 시점에서 시간을 가장 잘 사용하지 못할 것입니다.

그러나 충분한 시간이있을 때 다른 IDE를 아는 것이 좋은 생각이라고 생각합니다. 일상적인 작업에는 Visual Studio를 사용하지만 집에서는 작은 프로젝트에 Eclipse를 사용하고 사용했습니다. 이맥스. 내가 Emacs 사용을 고려한 특정 시점에서, 나의 노력은 Emacs와의 레슬링 속도를 늦추는 것보다 실제 작업을 수행하는 것이 더 낫습니다.

최고의 프로그래머가 모두 Emacs를 사용한다고 생각하는 것은 어느 정도 터무니없는 일이라고 생각합니다. Emacs를 사용하지 않는 인기있는 (또는 아마도 보컬) 사람이 아닌 놀라운 프로그래머가 많이 있습니다.


3

나는 약 1 년 반 전에 Emacs를 사용하기 시작했습니다. 왜냐하면 여러 가지 요구가 합류했기 때문입니다. 정규 표현식 (지원하는 편집기에서)으로 작업하고 싶었고 lisp를 배우고 싶었고 더 나은 편집기를 원했습니다.

정규 표현식으로 코드를 편집하면 코드에서 패턴을 찾는 방법에 대해 많은 것을 배웠습니다. 키 스트로크는 익숙해지기까지 시간이 걸렸지 만 마우스 없이는 훨씬 빠르게 비행합니다.

Emacs는 동일한 애플리케이션에서 노트 및 코딩 작업을 계속할 수있는 기능을 제공했습니다. 최소한의 컨텍스트 전환은 최소한의 두뇌 전환을 의미하며 과제에 계속 집중할 수 있습니다.


3

아니요. 좋은 코드는 더 나은 프로그래머가됩니다.

즉, 효과적인 텍스트 조작은 효율성의 핵심입니다. vim 또는 emacs는 텍스트 작업 방식을 변경합니다. 둘 다 효과가 입증되었지만 스타일면에서 거의 서로 상충됩니다. 또한이 논쟁은 다소 오래되었습니다 (80-90 년대로 돌아가서 텍스트-> 컴파일러가 핵심이었습니다). 그래서 최고의 프로그래머가 될 수 있도록 도와주는 다른 텍스트 편집기 및 / 또는 IDE가 많이 있습니다.


3

아니요. emacs를 사용하는 것이 더 나은 프로그래머가된다고 생각하면 원인과 결과가 혼란 스럽습니다.

그래도 매일 사용합니다. Java 개발을 위해 Eclipse보다 emacs + maven을 사용하여 생산성이 높다는 것을 알았습니다 (매번 Eclipse를 시작한 다음 가끔 리팩토링 또는 디버그 세션을 수행 하기는하지만).

이것이 나의 이유입니다 :

  • emacs의 실제 텍스트 편집 경험은 다른 모든 것보다 뛰어납니다. 키보드 만 사용하여 얼마나 빨리 달성 할 수 있는지 놀랍습니다. 이클립스는 마우스 지향적이며, 타이핑 할 때 많은 짜증을 느끼게된다.
  • elisp를 사용하여 emacs를 사용자 정의 할 수있는 것은 매우 강력합니다. 초보적인 설명을 배우고 환경을 사용자 정의하는 데 시간을 허비하지 않으면 단순히 시간을 낭비하고 있다고 말할 것입니다.
  • 텍스트 편집기에서 실제로 할 수있는 모든 작업에 대한 확장 기능이 있습니다.

1
상관 관계 +1! + 원인
Xiong

어떤 자바 모드를 사용하고 있습니까?
avendael

1
나는 Emacs23과 함께 제공되는 스톡 자바 모드를 사용하고 있으며, 사용자 정의와 해킹은 maven 빌드를 실행합니다. 나는 또한 emacs-eclim을 사용하기 시작했다. emacs-eclim은 emacs와 eclipse의 다리 역할을한다. 멋지고 사용 가능하지만 현재로서는 꽤 거칠습니다.
fred-o

3

저에게 IDE 대신 Emacs를 선택하는 주된 이유는 키보드만으로 모든 것을 할 수 있기 때문입니다. 이것은 일반적으로 마우스를 사용할 때 시간을 절약한다는 점에서 좋습니다. 또한 매우 이동성이 뛰어 나기 때문에 느린 터치 패드를 사용하여 프로그래밍 "홈"이 중단되는 경향이 있습니다. 또한 그 커스터마이제이션은 나를 위해 일부 IDE에서 빛을 발합니다. 그러나 IDE로 프로그래밍 속도가 빠르면 Emacs의 학습 곡선이 문제가되지 않는다고 말합니다.


2

IDE에 의존하는 사람들과 그렇지 않은 사람들 사이에서 기술, 생산성 또는 프로그래밍의 즐거움에 상당한 차이가 있습니까? 아니면 모두 팬 보이 즘입니까?

나는 당신이 정말로 그것에 대한 답을 얻을 수 있다고 생각하지 않습니다. 기술, 생산성 및 프로그래밍 즐거움을 측정하는 방법에는 여러 가지가 있으며, 모두 매우 주관적 일 수 있고 / 또는이를 유발하는 한 가지로 분류 할 수 없습니다.

여전히 흥미로운 질문입니다.

내 개인적인 믿음은-그것은 프로그래머에 달려 있습니다 :)

지맨


팬보이 친구. IDE는 편집기가 아닙니다. IDE가 최고의 편집기 일 필요는 없습니다.
Perpetualcoder

2

나는 그것이 당신을 더 나은 프로그래머로 만들 것이라고 생각하지 않지만, 당신이 THAT 레벨을 가질 때, 아마도 emacs (또는 vi)를 사용할 것입니다

:-/

그 두 가지에 대한 좋은 점은 (나는 전에 emacs를 사용한 적이 없지만 여전히 가장 평범한 작업에 vi를 사용한다는 것입니다) 사실, 그들은 당신 의 생각기차를 방해 하지 않습니다. 키보드를 사용하여 마우스를 잡고 파일 메뉴에서 올바른 옵션을 찾으십시오. 당신은 단지 글을 계속합니다. 당신의 마음 속에 다음과 같은 말이 있습니다 : "이 단어의 모든 단어를 바꾸십시오", enter를 누르고 작업을 계속하십시오.

게다가, 나는 그들이 emacs를 사용하는 유일한 도구라고 생각하지 않습니다.

더 나은 프로그래머가 되겠습니까? 아마 아닙니다. 그러나 이러한 수준의 전문 지식을 보유한 경우 해당 도구를 사용하여 얼마나 빨리 코딩 할 수 있는지 알고 싶을 것입니다.


메뉴에서 사냥은 IDE를 모르는 사람들을위한 것입니다. 메뉴 옵션을 찾기 위해 마지막으로 "사냥"해야 할시기를 모르겠습니다.
tster

"파일-> 저장"을 사용하는 것이 Ctrl-S보다 낫다고 생각하십니까? 나는 그렇게 생각하지 않습니다. 마우스를 잡고 메뉴 파일을 클릭 한 다음 키보드를 사용하지 않고 할 수있을 때 항목 저장으로 마우스를 아래로 이동하십시오.
OscarRyz

분명히 동의합니다. 내가 사용한 모든 IDE에는 emacs와 같이 광범위하고 사용자 정의 가능한 단축키와 조합이 있습니다.
tster April

2

아니.

훈련, 비판적 사고 및 자기 개선에 대한 열망은 더 나은 프로그래머가 될 것입니다. 도구 세트는 생산성의 주요 요소이지만 천재를 만들지 않습니다.

emacs 또는 vi가 마음에 들지 않으면 사용하지 마십시오. 의식적인 선택을하지 않음으로써 자신의 요구와 업무 관행에 맞게 개발 환경을 형성하게됩니다. 어쨌든, 당신은 당신이 좋아하는 것을 사용할 권리가 있습니다-그리고 디스크에 비트를 쓰는 데 사용하는 도구에 대해 당신을 속일만큼 바보 같은 사람은 무시하십시오-그것은 중요한 비트입니다.

참고 : 여기서 "도구 세트"는 말 그대로 도구의 "브랜드"(특정 편집기, 컴파일러 등)를 의미합니다. 개념적 도구 세트 (예 : 버전 제어 사용, 단위 테스트)는 일반적으로 자체의 일부입니다. 개선 과정.


2

emacs의 가장 큰 특징 중 하나는 크기에 관계없이 거의 모든 파일 형식을 처리 할 수 ​​있다는 것입니다. 틀림없이 미친 거대한 암호화 파일을 열면 반드시 유용하지는 않지만 열릴 것입니다. 대부분의 편집자 (및 IDE)는 파일이 너무 크거나 예상 형식 중 하나가 아닌 파일을 건네면 큰 상처를 줄 것입니다.

예를 들어 메모장에서 1 Gig 파일을 열어보십시오.

나는 1980 년경 어딘가에 이맥스를 사용하기 시작했고 그것은 항상 내 툴박스의 도구였습니다. 이 도구 는 유일한 도구는 아니지만 항상 유용한 작업을 수행 할 수 있다는 것을 알 수 있습니다.

의무적 인 염증성 의견 : 다른 한편으로, 나는 vi에 대해 할 말이 없습니다. 나는 항상 vi가 행복하게 나를 죽이고 내 장기를 팔아 버릴 것이라고 느꼈습니다 ....

실제로는 거의 모든 형태의 개발에 Netbeans를 사용하고 매번 emacs를 사용하여 빠른 편집을합니다. 지금 당장 미쳤던 일을 할 때 emacs (나를 위해)만큼 편리한 것은 거의 없습니다.

다른 사람이 컴파일 된 바이너리 실행 파일에서 정적 문자열을 편집해야합니까? emacs보다 더 좋은 도구가 있습니까? 그것은 확실히 나를 위해 작동합니다.


1
Visual Studio는 그 기회를 완전히 놓치지 만 대신 여분의 현금이 있는지 확인하기 위해 지갑을 통해 소총으로 콘텐츠를 처리합니다.
Rob

미안, 몰라 Netbeans를 거의 항상 사용하고 필요할 때 이맥스를 사용합니다.
Bob Cross

2

나는 당신이 이것을 묻지 않았다는 것을 알고 있지만, (예기치 않게) emacs를 배우는 것은 명령 줄을 조작하는 것이 었습니다. emacs 키 바인딩을 배우기 전에 커서 키를 사용하고 커서 키를 사용하여 기록을 탐색하는 데 사용했습니다. 내가 사용할 수 깨달았을 때 그것은 전구 순간의 일이었다 backward-word, move-beginning-of-line그리고 backward-kill-word(내가 항상 바인딩이있는 C-w, Stevey에서 알 수 있듯이 에서) bash(M-t 너무 자주 유용하며, 그것을 전에 본 적이 사람들에게 가장 인상적인).

루트 쉘이 "posix 쉘"이고 기본적으로 emacs 바인딩이없는 Solaris에서 많은 작업을 수행합니다. exec bash로그인 할 때마다 내 손가락이 이제 자체적으로 일치 한다는 것을 알았으므로 손가락 아래의 익숙한 편집 명령으로 훨씬 더 빨리 느낄 수 있습니다.

그래도 인정해야하지만, 여전히 Knuth의 책이 힘들다는 것을 알았습니다. 그래서 마술처럼 프로그래밍이 향상되었다고 생각하지 않습니다.


사람, 난 정말 그 트릭을 더 배울 필요가 있습니다 ... 어쨌든, 당신은 당신의 로그인 쉘을 변경할 수 없거나, 당신이 "루트 쉘"이라고 말할 때 실제로 "루트 사용자를위한 쉘"을 의미 했습니까? 그렇다면 왜 루트로 로그인합니까 ???
SamB

2

Emacs는 텍스트 조작 및 파일 시스템 탐색에서 나를 더욱 효율적으로 만들었습니다 . 그리고 프로그래밍 할 때이 두 가지가 관련되어 있기 때문에 나를보다 효율적으로 (더 나은) 프로그래머로 만들었습니다.


2

Emacs는 비록 간접적이지만 더 나은 프로그래머가 될 수 있다고 생각합니다. 나는 이맥스가 실제로 기능적인 언어로 글을 쓰게했다고 생각한다. ( Elisp 다른 기능적 언어 ( Clojure )에 관심이 ) 합니다. 즉, 나는 시간이 말할 것이라고 생각합니다.


동적이고 어휘 범위가없는 Lisp의 오래된 스타일이지만 확실히 가르쳐야 할 것이 많습니다. 그 당시에는 실제로 제대로 작동하는 멋진 텍스트 편집기가 될 수 있습니다!
SamB

1

사용할 수있는 것 일부 사용자 정의 가능한 편집기 수 있으면 멋진 일을 할 수 있지만 특히 이맥스가 반드시 최고의 것만은 아닙니다. 저는 SlickEdit 사용자입니다. emacs가 유명한 것과 동일한 반자동 자동화 작업을 수행합니다. 사람들이 vi 및 다양한 Windows 기반 편집기를 사용하여 유사한 작업을 수행하는 것을 보았습니다.

예, 소켓 세트는 훌륭하지만 Craftsman이 One True Socket Set을 만든다고 주장하는 것은 일종의 바보입니다.


제쳐두고, 나는 SlickEdit가 브레인 데드 마케팅이 아닌 경우 SlickEdit를 시도하는 경향이있을 수 있습니다 : "SlickEdit를 사용하지 않는 10 가지 이유-# 1 : 나쁜 프로그래머가되는 것을 좋아합니다. # 3 : 당신은 근친 교배 자 등입니다. "
Juliet

마케팅을하기 전에 Slick에 들어갔습니다. 그것은 당시에 OS / 2 3.0에서 실행 된 유일한 실제 편집기였습니다. 아마도 다른 모든 사람들이 emacs를 사용하는 것과 같은 이유 일 것입니다 ...
mjfgates

1

Emacs 키 바인딩과 내장 함수를 마스터하면 Eclipse 또는 Visual Studio와 같은 IDE보다 텍스트를 빠르게 조작 할 수 있습니다.

내 말을 듣지 말고 이맥스를 사용 하는 전문가 들의 비디오를 확인하십시오. .

Emacs에서 적절한 수준에 도달하면 Java Script, Java, Ruby, Python, HTML, C, C ++ 등의 모든 언어를 효과적으로 편집 할 수 있습니다.

Emacs를 시작하는 것은 엉덩이에 고통, 즉시 사용 경험이 나쁜 것보다 나쁩니다. Emacs 기본 구성은 Emacs 초보자를 Emacs의 더 강력한 기능 (hippie-expand, etags, yasnippets 등)에 노출시키지 않습니다. Emacs Starter Kit 도트 파일로 시작하는 것이 좋습니다 .

Steve Yegge가 세계 최고의 프로그래머가 Emacs를 사용한다고 주장하는 또 다른 이유는 생략됩니다. Elisp를 사용하면 숙련 된 프로그래머가 쉽게 Emacs를 확장 할 수 있습니다 . Eclipse 또는 Visual Studio에서 확장을 작성하는 것은 빠른 기능이나 새로운 부 모드를 작성하는 것보다 훨씬 어렵습니다. elisp에서 를 .


문제는 왜 그것을 전혀 사용하지 않는 것입니까? 행복하고 편안하며 생산적이라면 왜 이맥스 학습에 시간과 노력을 낭비해야합니까? 강력한 편집기이지만, 오래된 편집기를 배우는 것보다 새로운 프로그래밍 언어를 배우거나 새로운 기술을 연구하는 것이 좋습니다. 하루에 24 시간 밖에 걸리지 않으므로 시간을 현명하게 사용하십시오.
sarsnake

또 다른 점은 사용중인 기술에 달려 있다는 것입니다. 이맥스에는 인텔리전스가 있습니까? 나는 유닉스 머신의 대학에서 그것을 사용했고 그 이후로 바뀌 었다고 확신합니다. 그러나 .NET의 경우 인텔리전스는 필수입니다. 모든 네임 스페이스의 모든 클래스에서 모든 함수 이름을 기억할 수있는 방법은 없습니다. 그리고 함수 이름을 찾아야 할 때마다 MSDN을 사용하지 않을 것이라고 확신합니다. Emacs가 Intellisence를 제공한다면 그것을 고려할 것입니다.
sarsnake

1

저는 VI와 Emacs와 같은 텍스트 기반 편집기를 사용하는 것이 "훌륭한 프로그래머"가되기를 바라거나 필요로한다는 잘못된 오해를 믿습니다. 나는 항상 IDE가 강력하고 강력하다고 느꼈으 며, 선호도와 스타일이 진정으로 떨어졌습니다.


0

나는 대학에서 이맥스를 사용했습니다. 약 16 년 전이었습니다. 나는 뒤돌아 보지 않았다. 나는 여전히 이맥스에 익숙해지기를 원하지만 사실은 내 MS IDE로 상당히 생산적입니다.

당신이 게시 한 텍스트는 단지 트롤입니다. 네. 종교 전쟁을 시작하는 것 외에 다른 이유는 없습니다.


0

나는 emacs로 시작했지만 단순함으로 인해 나에게 더 우아한 vi로 전환했습니다. 또한 단일 사용자 모드에 갇힌 경우 ed 명령은 vi 명령의 하위 집합입니다. 이맥스가 그것을 다룰 수 있는지 모르겠습니다.

그런 점에서 vi가 당신을 더 나은 프로그래머로 만드는 것 같아요 ..


Emacs DOES 는 Mx vi-mode를 가지고 있지만, 그것은 일종의 농담 인 것 같습니다 ...
Brian Postow

시스템 관리를 수행하려면 vi의 기본 사항을 알아야합니다. 그러나 그것은 프로그래밍이 아닙니다.
Xiong Chiamiov 2018 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.