이맥스가 저를 더 나은 프로그래머로 만들 수 있습니까? [닫은]
Steve Yegge는 자신의 블로그에 다음 과 같은 코멘트를 썼습니다 .
세계 최고의 엔지니어들은 모두 Emacs를 사용합니다. 세계 체인저 유형. 당신 옆에있는 큐브의 위대한 여자는 아닙니다. 프레드가 아니라 복도에서 놀란 사람 나는 업계의 얼굴을 바꾼 우리 직업의 가장 위대한 소프트웨어 개발자에 대해 이야기하고 있습니다. James Goslings, Donald Knuths, Paul Grahams, Jamie Zawinskis, Eric Bensons. 실제 엔지니어는 Emacs를 사용합니다. 당신은 그것을 잘 사용하기 위해 현명해야하며, 그것을 마스터 할 수 있다면 믿을 수 없을만큼 강력합니다. 당신이 나를 믿지 않는다면, Paul Nordstrom의 어깨 너머로 그가 일하는 동안 가십시오. Visual Blub .NET과 같은 IDE를 사용하여 경력을 쌓은 사람에게는 눈에 띄는 오프닝입니다.
이맥스는 100 년의 편집자입니다.
코드를 작성하기 위해 텍스트 편집기를 사용한 마지막 시간은 약 1000 년 전에 메모장에서 HTML을 계속 쓸 때였습니다. 그 이후로 저는 Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio 및 Eclipse를 전체 경력에 사용하여 IDE에 의존했습니다.
무엇의 가치를 위해, 나는 한 이맥스를 시도하고, 내 경험 때문에 검색 할 기능을이 박스 아웃 오브의 완전한 부족으로 좌절이었다. (아마도 찾을 수 없었던 다른 Emacs 명령을 발견하기위한 Emacs 명령이 있습니다. 자신의 잔인한 젠 같은 농담을 사는 것과 같습니다.) 나는 좋은 달 동안 프로그램처럼 만들려고 노력했지만 결국에는 드래그 앤 드롭 GUI 디자이너, IntelliSense 및 대화식 디버깅을 대신하기로 결정했습니다.
사실을 팬보이 즘과 분리하기는 어렵 기 때문에 아직 Yegge의 의견을 액면가로 기꺼이 취하지 않겠습니다.
IDE에 의존하는 사람들과 그렇지 않은 사람들 사이에서 기술, 생산성 또는 프로그래밍의 즐거움에 상당한 차이가 있습니까? 아니면 모두 팬 보이 즘입니까?
먼저, 나는 이멕스 숭배에 대한 자백 한 진실한 신자입니다.
즉, 블로거는 견과류입니다. 유용한 것으로 쓰십시오. 나는 Emacs가 주로 도움이된다는 것을 알게되었다. 주로 대학에서 몇 년 동안 내 요구에 맞게 수정하는 방법을 배우고 자신의 필요에 맞게 수정하는 방법에 대한 초기 비용을 선불로 지불했기 때문이다.
그러나 다른 사람들은 다르게 행동하며 "괜찮아"라고 말합니다.
그는 (Steve Yegge) 자신의 다른 게시물에서 조금씩 자세히 설명했습니다. http://steve-yegge.blogspot.com/2008_04_01_archive.html 은 아마도 가장 포괄적 일 것입니다. 그러나 정보는 주요 주제와 접하기 때문에 거기에 묻혀 있습니다.
간단히 말해서, 단지 우수 하거나 유능한 프로그래머 는 IDE를 선택하여 실제로 잘 알게 될 것이며 아마도 충분히 알고있을 것입니다. 그러나 IDE가 그들에게 제공하는 것으로 스스로를 제한 할 것입니다. 다시 말해, 그들은 IDE에 적응합니다. 반면에 훌륭한 프로그래머는 스크립트 또는 자체 도구 작성 또는 도구 확장과 같은 방식으로 자신 의 환경 에 맞게 환경 을 조정 합니다. 그리고 마지막 지점뿐만 아니라 이맥스는 것입니다 가장 이 확장 환경, 그것은 또한 쉬운 이 확장 할 수있는 환경은, 그것을 당신이 가장 거둘 환경입니다 혜택을 확장 기능을 통해 확장 기능을 확장 할 수 있습니다. 확장 기능은 재고 기능인 것처럼 Emacs에 통합되므로 향후 확장 기능은 이전 확장 기능 (긍정적 인 피드백 루프 종류)을 기반으로 구축 될 수 있습니다.
가장 숙련 된 프로그래머는 vi 나 emacs를 사용합니다. 가장 숙련 된 프로그래머가 최고이기 때문에 20 년 전 vi와 emacs를 제외하고는 선택의 여지가 없었기 때문입니다.
텍스트 터미널이 매우 느린 컴퓨터에서 vi (약 1987 년)를 시작한 후 몇 년 후 (더 빠른 컴퓨터에서) (GNU) Emacs로 변환하여 거의 10 년 동안 거의 독점적으로 사용했습니다.
Emacs는 최초의 진정한 통합 개발 환경이었습니다. 전체 편집 / 링크 / 컴파일주기를 emacs에서 제어 할 수 있으며, 사용하는 컴파일러에 따라 자신 만의 롤을 만들 수 있습니다.
요즘에는 이클립스와 같은 IDE가 더 잘 통합되어 있지만 (정직하게는 : emacs가 그래픽을 빨아 들인다), Emacs는 여전히 "순수한"텍스트 편집을위한 최고의 환경 중 하나입니다.
명확한 사고와 문제 해결을 개선하면 더 나은 프로그래머가 될 것입니다. 어떤 프로그램도 그렇게 할 수 없습니다.
더 나은 망치를 사용하는 것이 어떻게 그리고 왜인지 알지 않는 한 더 좋은 집을 짓는 데 도움이되지 않습니다. ;)
Yegge는 Bill Joy를 만나야합니다. 그는 세계 최고의 프로그래머 중 한 명일뿐만 아니라 vi의 큰 덩어리를 썼습니다. vi에서
짧은 부끄러운 고백 : 작년에 20 년 동안 vi (및 최근 몇 년 동안 vim / gvim)를 모든 것에 사용 한 후, 현재 작업에서 Java 편집에 Eclipse를 사용하고 전자 메일에는 Thunderbird를 사용하기 시작했습니다. 기계에는 메모리가 너무 적기 때문에 디버거가 필요할 때를 제외하고는 일반적으로 vi를 사용합니다.
IDE에 의존하는 사람들과 그렇지 않은 사람들 사이에서 기술, 생산성 또는 프로그래밍의 즐거움에 상당한 차이가 있습니까? 아니면 모두 팬 보이 즘입니까?
이 문제를 Visual Studio와 Emacs로 좁히겠습니다 .-- 질문이 너무 넓어서 대부분의 사람들 (적어도 여기에서는 StackOverflow에 있음)이 두 사람에 익숙하다고 생각합니다. [저는 이맥스를 사용하고 선호합니다]
다음으로 질문의 세 가지 구성 요소를 분류 해 봅시다.
프로그래밍 즐거움은 주로 프로그래밍 자체를 좋아하는 것으로 요약되며, 두 번째로 할 때 성가신 요소가 나타나지 않도록합니다. 어려움을 겪는 도구를 사용하면 즐거움에서 벗어날 것입니다. 따라서 나는 당신이 좋아하고 친숙한 도구를 사용하여 즐거움을 극대화 할 것입니다.
당신이 새로운 도구에 익숙해 이렇게되면 물론, 당신은 당신이 함께 할 경우 더 프로그래밍 같은 것, 따라서 그것이 당신이 도구를 더 좋아 찾을 수 있고 새로운 좋아하는 도구입니다. 일반적으로 사람들이 둘 다 잘 알고 있으면 emacs보다 VS를 좋아할 것 (또는 그 반대)도 분명하지 않습니다.
다음은 프로그래밍 기술입니다. 기술과 VS / emacs의 선택 사이에 어떤 관련이 있다면, 선택을 일으키는 기술이 아니라 선택을 일으키는 기술이라고 생각합니다. 내 경험상 {VS, emacs} 중 어느 것도 더 나은 코드 작성에 대해 배우는 것으로 보이지 않습니다.
좋은 도구를 사용하면 적은 시간에 동일한 코드 (및 동일한 품질 의 코드) 를 작성할 수 있습니다. 이라고 가정 productivity = quality of code `times` code per time
하면 짧은 시간 안에 좋은 코드를 작성할 수있는 편집기가 생산성 향상 이라고 생각할 수 있습니다.
VS에 익숙하지 않을 수도 있지만 여기서는 emacs가 VS에서 찾지 못한 강점을 가지고 있다고 생각합니다. 어리석게 들릴지 모르지만 커서 이동과 같은 단순한 기능 Ctrl-[fbnp]
은 실제로 유익합니다. 즉, 화살표 키로 손을 움직일 필요가 없습니다. 또 다른 일 : 줄 바꿈이 포함 된 검색 또는 바꾸기를 할 수 있습니다.
Another thing I like is the ability to embed a shell in my editor. In my experience, it's much more valuable on non-windows platforms (and my first "programming" experience, IIRC, was writing DOS .bat files, so I'm not just a flaming fanboy), but on those platforms it's a big win. It makes emacs "integrate" with "everything" (file search with find/locate, text search with grep, version control with svn/git/hg/..., you name it).
최종 평결-이맥스를 배워야합니까? 그리고 그것은 모두 fanboyism입니까? 시간이 있다면 항상 같은 일을하는 새로운 방법을 배우는 것이 가치가 있다고 말합니다. 새로운 방법은 당신에게 더 잘 작동 할 수 있기 때문입니다. 그리고 나는 당신이 처음 생겼을 때 나타나는 것으로 거부하지 않는 것이 좋습니다. 그런 의미에서 Dvorak 키보드 레이아웃으로 전환하는 것과 같습니다. 처음에는 느리지 만 속도에 도달하면 적어도 쿼티만큼 빠르며 더 편안 할 수 있습니다. 나는 새로운 (프로그래밍) 언어를 배우는 것과 같은 접근법을 추천합니다. 어휘 (표준 라이브러리)를 모르기 때문에 상황이 어렵다고 말하지만 보상은 여전히 당신을 기다리고 있습니다.
인용 된 텍스트가 "세계 최고의 엔지니어들이 모두 Emacs를 사용합니다"로 시작하면서 액면가로 가져 가지 않을 것입니다. 그는 세계 최고의 엔지니어들을 모두 알고 있습니까? 귀하 또는 본인이 보유한 세계 최고의 엔지니어 목록과 동일합니까?
일단 배운 후에 EMACS 또는 vi와 같은 강력한 편집기를 사용하면 좋아하는 IDE없이 붙 잡히면 더 효율적으로 또는 더 효율적으로 만들 수 있습니다.
살인자 인 "한 번 배운"부분입니다. 이러한 도구를 생산적으로 사용하는 것은 많은 작업과 실습이며 처음에는 매우 어렵습니다.
저는 개인적으로 Emacs 팬 보이지만 Emacs는 도구 일뿐입니다. 슈퍼 팬시 펜이 더 나은 작가가 될 것보다 더 나은 프로그래머가되지는 않습니다.
The clarification that "great programmers" adapt their environment to themselves may have some merit, but lots of tools can do that (e.g. vim and SlickEdit), so there's nothing particular about Emacs in that regard.
I think what's most likely true is that "great programmers" are passionate about programming and people who are passionate about it tend to find tools that help drive that passion. Emacs (and vim and SlickEdit, et al) is such a tool.
I don't believe there's a difference, it's more a matter of preference.
However what I've noticed is that the longer you've coded, or the lower-level you've coded, the higher the chances are that you've used emacs or vi.
While the IDE's have gotten a lot better in the last decade, they still contain the programming in a little safe "bubble", far away from some of the uglier details. What tends to happen is that this increase in abstraction allows for more programmers to do more, with less knowledge. That, of course, doesn't apply to all programmers, but easier tools do bring programming to a wider audience.
More knowledge of lower-level tools, often translates to more stability in the code, since there are less chances of "going against the grain" accidentally. It's unfair to just list out EMACS as being the only leading indicator, since it comes from a whole range of languages and tools, and really is more about the depth of understanding, not the specific technology.
Way back, you either learned VI or EMACS on the UNIX boxes or you specialized in PCs (OK, there was VMS, CMS, AS400, etc. too, but those were older technologies). Both streams attracted very keen people, but the UNIX guys tended towards wanting a sophisticated solution, while the PC guys just wanted it done quickly. The cultures were very different.
IMHO IDEs tend to be optimised around a specific platform or language or OS: Eclipse JDT is great for Java, Visual Studio is C++/.NET-centric, etc. They help productivity a lot (again IMHO) if you're only working on that platform, but if you change platforms you have to basically learn a new IDE (or at least a new set of plugins, views, perspectives and I don't know what else for Eclipse).
The advantage of knowing emacs, or Textmate, or vim (my personal preference), or any generic editor, is that the skills you acquire in that editor apply regardless of what platform you're writing for. They're optimised for editing text, and once you master them, you can edit text very efficiently in any language.
There's also Yegge's assertion that great programmers adapt their tools to their working style rather than vice versa. I think this is a win for generic editors, because you customise one editor, rather than having to work out how to adapt four different IDEs to all behave the way you want.
I'd argue that the best programmers tend to be the ones that will take the time to customize their environment, making it faster/easier to perform the tasks that they are likely to do. Emacs is one of the most powerful editors when it comes to customizing your environment. It has a steep learning curve but, once you're past that, there's virtually no limit to what you can make it do for you.
Someone once said that the best programmers are the lazy ones; the ones that, once they need to do something more than once, find a way to automate it so that it takes less effort to do. Emacs allows you to be very, very lazy ;)
I've used IDEs from the very beginning (arguably; having started with QBASIC), and for many, many years. I've now switched almost completely to VIM (in diverse flavours) for all my development work and I don't regret it. My productivtity has definitely increased.
Of course, nothing will replace the Windows Forms designer from Visual Studio. But compared to VIM (and Emacs, I'm sure) the text editor inside Visual Studio is really lousy. Once you harness the raw power of the console and the GNU developer tools (by which I mean make
, GCC, binutils
and gdb
, and then some) you'll notice that these tools may look primitive but they're just the opposite, and actually offer all the tools that an IDE provides (well, except for the forms designer).
It's just that you've got a very steep climb ahead of you when you first start using these tools and the incentive may be small. I was lucky enough (?) to be forced to use these tools so I didn't have a choice that I could weasel out of.
Personally, I feel that you should use whatever makes you more productive. If you don't have the time to invest in a project to sit and learn Emacs, then it's probably not the best use of your time at that point.
I do, however, feel that it is a good idea to get to know other IDE's when you have ample time to do so.I use Visual Studio in my day to day work, but at home I use Eclipse for small projects and have used Emacs as well. At the particular point where I considered using Emacs, my effort was better served getting actual work done than slowing myself down wrestling with Emacs.
I think to a certain extent it's absurd to think that all of the best programmers use Emacs. There are many amazing programmers who aren't as popular (or as vocal, perhaps) that don't use Emacs.
I started using Emacs about a year-and-a-half ago because it was the confluence of several wants -- wanted to work with regular expressions (in an editor that supported them), wanted to learn lisp, wanted a better editor.
Editing my code with regexes taught me a lot about finding patterns in the code. The keystrokes took a while to get used to, but I fly a lot faster without the mouse.
Emacs gave me the ability to keep work with my notes and coding in the same application -- minimal context switching means minimal brain-switching, and I can keep focused on the task at hand.
No. Good code makes you a better programmer.
That said, good text manipulation is key to efficiency. Either vim or emacs will change how you work with text -- both are proven effective but are almost at odds with each other in terms of style. Also, this debate is rather old (back to the 80's and 90's where text -> compiler was key), so there are many other text editors and/or IDEs that can help you be the best programmer you can be.
No. If you believe using emacs makes you a better programmer, you are confusing cause and effect.
I do use it daily, though. I find that I'm more productive with emacs+maven than with Eclipse for java development (although I do still fire up Eclipse every now and then to do the occasional refactoring or debug session).
These are my reasons:
- The actual text editing experience in emacs beats everything else. It's amazing how fast you can accomplish so much using only your keyboard. Eclipse is more mouse-oriented, and when you type you encounter lots of irritating snags.
- Being able to customize emacs using elisp is incredibly powerful. I'll go so far as to say that if you're not taking the time to learn rudimentary elisp and customizing your environment you're simply wasting your time.
- There are extensions for practically anything you could ever want to do in a text editor.
For me the main reason I would choose Emacs over an IDE is because it allows me to do everything from just my keyboard. This is nice in that it saves some time for when I would normally use a mouse. Also since I find myself very mobile I have a tendency of having my programming "groove" interrupted due to using my slow touch pad. In addition its customization makes it shine over some IDEs for me. However if you find yourself programming fast enough with an IDE then I would say the learning curve of Emacs is not worth the trouble.
Is there a measurable difference in skill, productivity, or programming enjoyment between people who depend on IDEs and those who don't, or is it all just fanboyism?
I don't think you could really get an answer to that. There are so many different ways to measure skill, productivity and programming enjoyment - and all of them are probably very subjective and/or can't be broken down into ONE thing causing it or not.
It's still an interesting question tho.
My personal belief is - it depends on the programmer :)
G-Man
I don't think it would make you a better programmer, but when you have THAT level, you will most likely use emacs ( or vi )
: - /
The good thing about those two ( I have never used emacs before, but I still use vi for the most mundane task ) is the fact, they don't interrupt your train of thought, you don't have to take your hands out of the keyboard to grab the mouse, and hunt in the file menu for the correct option. You just, keep writing. Inside your mind you say something like: "Replace all the occurrences of this word for that", press enter and continue with your work.
Besides, I don't think they use emacs is their only tool.
Would it make you better programmer? Probably not. But when you have that level of expertise, probably you will like how fast can you code using those tools.
No.
Discipline, critical thinking and a desire for self-improvement will make you a better programmer. Your tool set, while a major factor in your productivity, won't create genius.
If you don't like emacs or vi, don't use them. By making the conscious choice not to, you're shaping your development environment to fit your own needs and work practices. In any case, you're entitled to use what you like - and ignore anyone who's foolish enough to berate you for the tool you use to write bits to disk - it's the bits that matter.
Note: "Tool set" here means, literally, the "brand" of tools - specific editors, compilers, etc. Conceptual tool sets, e.g. the use of version control, unit testing - all in general - are a part of the self-improvement process.
One of the great features of emacs is that it can handle pretty much any file type you throw at it, of any size. Admittedly, if you're opening a crazy huge encrypted file, it won't necessarily be useful but it will open. Most editors (and IDEs) will give you major heartache if you hand them a file that's too big and / or not one of their expected formats.
Try opening a 1 Gig file in Notepad for an example.
I started using Emacs somewhere around 1980 and it has always been a tool in my toolbox. It's not the only tool but it's always something that I can turn to and know that I'll be able to get some useful work done.
Obligatory inflammatory comment: On the other hand, I have nothing good to say about vi. I've always felt that vi would happily kill me and sell my organs just out of spite....
In real life, I use Netbeans for almost all forms of development and I use emacs every now and then to make a quick edit. There's almost nothing out there that is quite as convenient as emacs (for me) when it comes to getting something crazy done right now.
Anybody else ever have to edit static strings in compiled binary executables? Is there a better tool for that sort of thing than emacs? It certainly works for me.
I know you didn't ask this, but one thing learning emacs (unexpectedly) improved for me was manipulating a command line. Before I learned emacs keybindings I used to move the cursor and navigate history using the cursor keys because I didn't know any better. It was something of a lightbulb moment when I realised I could use backward-word
, move-beginning-of-line
and backward-kill-word
(which I have always bound to C-w
, as Stevey suggests) in bash
(M-t
is often useful too, and most impressive to those who've never seen it before).
I do quite a lot of work on Solaris, where the root shell is "the posix shell", and does not have emacs bindings by default. I find that my fingers now type exec bash
of their own accord, every time I log in, so much faster do I feel with the now-familiar editing commands under my fingers.
Must admit though, I still find Knuth's books hard going (though worth it) - so I don't think it's magically improved my programming.
Emacs made me more efficient at text manipulation and filesystem navigation. And since both these things are involved when I program, it's made me a more efficient (thus better) programmer.
I think Emacs can make you a better programmer, albeit indirectly. I think Emacs got me to actually write in a functional language (Elisp) which has me interested in other functional languages (Clojure) which I'm told will make me a better programmer. That said, I suppose time will tell.
Being able to use some customizable editor allows you to do nifty things, but emacs in particular isn't necessarily the Very Best One Possible. I'm a SlickEdit user myself, I do all the same weird half-automated stuff with it that emacs is famous for. I've seen people do similar things with vi and various Windows-based editors.
So, yeah, socket sets good, but arguing that Craftsman makes the One True Socket Set is kind of dumb.
Mastering the Emacs key bindings and its built in functions will allow you to manipulated text faster than IDE's such as Eclipse or Visual Studio.
Don't take my word for it, check out these videos of pros using Emacs.
Once you get to a decent level in Emacs you can effectively edit any language: Java Script, Java, Ruby, Python, HTML, C, C++, etc.
Getting started with Emacs is a pain in the butt, the out of the box experience is worse than bad. Emacs default configuration does not expose the Emacs newbie to the more powerful features (hippie-expand, etags, yasnippets, etc) of Emacs. I suggest started with the Emacs Starter Kit dot files.
Another reason that Steve Yegge claims that the world best programmers use Emacs, is elisp. Elisp allows the experienced programmer the power to easily expand Emacs. Writing an extension in Eclipse or Visual Studio is significantly harder than writing a quick function or even a new minor mode in elisp.
I believe its a large misconception that using these text based editors such as VI and Emacs are looked highly upon or needed to become a "great programmer". I always felt IDE's are mor e powerful then they use to be, and it truly comes down a preference and style.
I used emacs in college. that was about 16 years ago. I haven't looked back. While I wish I could still be comfortable with emacs, the truth is I am quite productive with my MS IDE.
the text you posted is just a troll. Yep. No other reason for it than to start a religious war.
I began with emacs but switched to vi which to me is more elegant because of it simplicity. Also if you ever are stuck in single user mode, ed commands are a subset of vi commands. I don't know if emacs can handle that.
So in that regard I think vi makes you a better programmer..
참고URL : https://stackoverflow.com/questions/485120/will-emacs-make-me-a-better-programmer
'Programing' 카테고리의 다른 글
키 지문 때문에 Heroku로 푸시 할 수 없습니다 (0) | 2020.06.29 |
---|---|
오류 :“사전 업데이트 시퀀스 요소 # 0의 길이는 1입니다. (0) | 2020.06.29 |
Android 단순 알림 대화 상자 (0) | 2020.06.29 |
우분투에서 Oracle Java를 기본 Java로 설정하는 방법은 무엇입니까? (0) | 2020.06.29 |
ViewPager에서 스크롤을 비활성화 할 수 있습니까? (0) | 2020.06.29 |