当前位置:  开发笔记 > 编程语言 > 正文

Emacs会让我成为更好的程序员吗?

如何解决《Emacs会让我成为更好的程序员吗?》经验,为你挑选了12个好方法。

Steve Yegge 在他的博客上发表评论:

世界上所有最伟大的工程师都使用Emacs.改变世界的类型.不是你旁边的立方体中的伟大gal.不是弗雷德,大厅里那个了不起的人.我说的是我们这个行业最伟大的软件开发人员,他们改变了行业的面貌.James Goslings,Donald Knuths,Paul Grahams,Jamie Zawinskis,Eric Bensons.真正的工程师使用Emacs.你必须聪明地使用它,如果你能掌握它,它会让你变得非常强大.如果你不相信我的话,在他工作的时候去看看Paul Nordstrom的肩膀.对于那些在整个职业生涯中使用过类似Visual Blub .NET的IDE的人来说,这真是令人大开眼界.

Emacs是100年的编辑.

上一次我使用文本编辑器编写代码时,大约1000年前我还在记事本中编写HTML.从那时起,我已经或多或少地依赖于IDE,在我的整个职业生涯中使用过Visual Studio,NetBeans,IntelliJ,Borland/Codegear Studio和Eclipse.

对于它的价值,我已经试过的Emacs,我的经验是,因为它完全缺乏外的开箱发现的功能,一个令人沮丧的.(显然有一个用于发现其他Emacs命令的Emacs命令,顺便说一句我找不到它 - 就像生活在你自己残酷的禅宗般的笑话中一样.)我试着让自己像这个程序好一个月,但最终决定我宁愿拖放GUI设计器,智能感知和交互式调试.

将事实与狂热主义分开是很难的,所以我不愿意接受Yegge的评论.

在依赖IDE的人和那些不依赖IDE的人之间,技能,生产力或编程乐趣是否存在可衡量的差异,或者这只是狂热主义?



1> Brian Postow..:

首先让我说,我自称是对Emacs崇拜的忠实信徒.

也就是说,博客是疯子.你写的是有用的东西.我发现Emacs对我有所帮助,主要是因为我花了大学时间预先支付了学习如何根据我的需要修改它的启动成本,并根据自己的需要修改自己.

但是其他人做事的方式也不同,正如他们所说的那样"没关系".


同意.我喜欢Emacs,但是认为Emacs会让你成为一个更好的程序员就像认为使用Tiger Woods的高尔夫球杆会让你成为更好的高尔夫球手,或者使用Eddie Van Halen的吉他会让你成为更好的音乐家.
与Kristopher上面的评论强烈反对.使用伟大的运动员/艺术家的工具肯定不会让你像他们一样伟大.但是,使用RIGHT编程工具进行正确的工作肯定会!尽管将节目与运动和艺术等同起来,你可能会被宽恕.:)
我认为Steves声明的重点在于优秀的程序员使用emacs,优秀的软件开发人员使用IDE会更高效.伟大的程序员总是编程,即使在编写他们编程的代码时,他们自动执行任务,他们喜欢make,ant,bash,perl和hudson.他们知道软件开发周期任何部分的手动任务都容易出错.伟大的程序员也知道如果其他人构建你的代码(例如IDE或任何人),那么在维护代码时(例如IDE或任何人),你总是依赖于那些技能.
@Bart:他的观点是有多种"正确的工具".Tiger Wood的高尔夫球杆是出色的工具,非常适合这项工作,但也有其他球杆可以提供相同的效果.一个优秀的程序员使用的工具没有定义它们,它们的创造力和能力.
Steve Yegge是那个在elisp中编写完整JavaScript解析器的人,所以毫无疑问,就Emacs来说,他是疯子:)

2> Nietzche-jou..:

他(Steve Yegge)在他的其他帖子中详细阐述了这一点.http://steve-yegge.blogspot.com/2008_04_01_archive.html可能是最全面的,但信息被埋在那里,因为它与主要主题相切.

我想总结一下:那些仅仅是优秀能干的程序员会选择一个IDE并且很好地了解它,并且可能做得还不错,但他们会将自己局限于IDE为他们提供的内容.换句话说,他们适应IDE.在伟大的程序员,在另一方面,将适应他们的环境来适应自己,在这样的方式写作剧本或自己的工具,或延长他们的工具.到最后一点,不仅Emacs是最具扩展性的环境,它也是最容易扩展的环境,而且它是您获得最大收益的环境 从扩展它 - 你的扩展集成到Emacs,就像它们是股票特征,所以你的未来扩展可能建立在你以前的扩展(积极反馈循环类型的东西).


和安格斯一样.一个好的IDE不应该为了完成工作而无休止地修补.一个好的IDE应该具备所需的所有功能.当然,您可能希望配置快捷方式和布局,但您不需要编写一堆脚本来处理所有内容.
不同之处在于扩展IDE所需的能量.使用emacs,所有配置文件都是elisp程序文件.从本质上讲,进入的障碍是非常低的(只需更改.emacs文件)
扩展emacs和扩展netbeans,visual studio或eclipse之间的区别在于速度.添加eclipse扩展就像编写整个应用程序一样.相比之下,编写emacs的扩展可以是一行代码.
安格斯:你是对的.如果你不得不搞砸添加东西而不是完成你的工作,你就错过了重点--Emacs与否.Sol:还有更多扩展,然后通过外部程序发送源.事实上,根本不是那种强大的扩展机制.
@supercheetah - 与Visual Studio中的intellisense相比看起来非常原始,例如,可用成员旁边显示的图标很有用!就个人而言,如果没有强大的重构支持,我对Emacs几乎没有兴趣.
我有点好奇你如何确定emacs是最易扩展和最容易扩展的.例如,我过去几个月一直在使用TextMate - 扩展它很容易,通过任意外部程序过滤你的源代码就像你可以获得的那样强大.
Justin,Intellisense怎么样?还有一个用于emacs吗?或者我必须自己写一个
gnomixa,是的,http://cedet.sourceforge.net/

3> mfx..:

最好的程序员使用vi或emacs,因为最有经验的程序员是最好的,而20年前,除了vi和emacs之外别无选择.

在使用非常慢的文本终端的机器上开始使用vi(大约1987年)之后,我在几年后(在更快的机器上)转换为(GNU)Emacs,并且几乎专门使用了近10年.

Emacs是第一个真正集成的开发环境 - 整个编辑/链接/编译周期可以在emacs中控制,你可以为你使用的任何编译器自己动手.

如今,像eclipse这样的IDE甚至可以更好地集成(说实话:emacs糟透了图形),但Emacs仍然是"纯"文本编辑的最佳环境之一.


"最有经验的程序员是最好的" - 所以离真相很远,至少是暗示.不是说没有经验的程序员更好,但仅仅因为他20多年来一直在做同样的事情 - 并不意味着他做得很好.
为第一段中的自我实现预言+1.
20年前有很多不同的编辑.他们中的大多数人根本没有活下来,一般都有充分的理由.为什么在1989年使用vi或emacs的人比在1989年使用某些基于MS-DOS的编辑器的人更好,或者在控制数据大型机上使用的是什么?

4> Jas Panesar..:

提高您的清晰思考和解决问题将使您成为更好的程序员.没有程序可以做到这一点.

除非我知道如何以及为什么,否则使用更好的锤子不会帮助我建造更好的房子.;)


但是一把糟糕的锤子会在你试图建造同一栋房子的同时破坏你的生产力,而你最终可能会得到一座不同的房子.
一个伟大的程序员可以使用石头锤子建造一个伟大的房子.(他很慢 - 但他仍然能做到.:D)

5> Paul Tomblin..:

Yegge需要见到Bill Joy.他不仅是世界上最伟大的程序员之一,还写了大量的vi.在vi.

简短可耻的忏悔:在使用vi(以及近年来的vim/gvim)20年之后,在过去一年左右的时间里我开始使用Eclipse进行java编辑(和Thunderbird用于电子邮件),尽管在我目前的工作中我的机器有这么少的内存,我通常使用vi,除非我需要调试器.


我使用vim已经5年了.在Emacs 20分钟后,我发誓我永远不会回去.Vim感到倒退.
+1为vi(实际上,使用vim,但相同的差异).只有不到一半的努力,这是emacs可以做到的98%.
Yegge自己提到了这一点:[一个值得注意的例外是VIM,虽然我对此没有经验,但它在各方面都非常强大.如果您已经开发了对vi而不是emacs的偏好,那么您可能会在追求VIM专业知识方面获得更大的快乐.Psh]来源:http://steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html

6> Jonas Kölker..:

在依赖IDE的人和那些不依赖IDE的人之间,技能,生产力或编程乐趣是否存在可衡量的差异,或者这只是狂热主义?

让我们把它缩小到Visual Studio与Emacs - 这个问题太宽泛了,我怀疑大多数人(至少在StackOverflow这里)熟悉这两个人.[我是,我使用并更喜欢emacs]

接下来,让我们打破问题的三个组成部分.

编程享受归结为主要喜欢编程本身,其次是当你这样做时不会出现烦恼因素.使用您所挣扎的工具将从乐趣中减去.因此,我猜想,通过使用您喜欢和熟悉的工具,可以最大限度地享受乐趣.

当然,一旦你熟悉了新的工具,你可能会发现你喜欢的工具,并且因此会喜欢,如果你与你做编程的更多新的最喜欢的工具.我不清楚,一般人都会喜欢VS而不是emacs(反之亦然).

接下来,编程技巧.如果技能和VS/emacs的选择之间存在任何联系,我认为这是引起选择的技能,而不是引起技能的选择.根据我的经验,{VS,emacs}似乎没有让我学到更多关于编写更好代码的知识.

一个好的工具可以让我能够在较短的时间内编写相同的代码(因此代码质量相同); 如果我们假设这一点productivity = quality of code `times` code per time,那么任何能让你在更短的时间内编写好代码的编辑都能提高生产力.

我可能对VS太熟悉,但在这里我认为emacs有一些我在VS中找不到的优点.这可能听起来很荒谬,但光标移动这样简单的东西Ctrl-[fbnp]才是真正的好处 - 这意味着你不必将手移到箭头键上.另一件事:你可以进行搜索或替换,其中包括换行符,我经常使用它,我不想错过它.

我喜欢的另一件事是能够在我的编辑器中嵌入一个shell.根据我的经验,它在非Windows平台上更有价值(我的第一次"编程"体验,IIRC,正在编写DOS .bat文件,所以我不只是一个火红的粉丝),但在这些平台上它是一个巨大的胜利.它使emacs与"一切""集成"(使用find/locate进行文件搜索,使用grep进行文本搜索,使用svn/git/hg/...进行版本控制,将其命名).

最后的判决 - 你应该学习emacs吗?这都是狂热主义吗?如果你有时间,我会说总是值得学习做同样事情的新方法,因为新的方式可能会更好地为你工作.而且我鼓励你不要拒绝它,因为当你刚接触它时它似乎是什么.从这个意义上来说,就像切换到Dvorak键盘布局一样:起初你的速度较慢,但​​是一旦你加速,你可能至少和qwerty一样快,而且更舒服.我也推荐使用相同的方法来学习新的(编程)语言:因为你不懂词汇(标准库),说事情很难,但奖励仍然存在于等待你的地平线.


ps我完全同意shell和平台.如果你想在Windows,OS X和Linux之间移动,那么你需要首先使用Cygwin,而在三者中使用Emacs.把你的.emacs.d扔在GitHub上,你就是金色的.

7> John..:

随着引用的文字开头"世界上所有最伟大的工程师都使用Emacs",我也不会把它当作面值.他是否了解世界上所有最伟大的工程师?这是你或我拥有的世界上最伟大的工程师名单吗?

一旦学会了,像EMACS或vi这样强大的编辑器会让你更有效率,或者至少更高效,如果碰巧没有你最喜欢的IDE.

这是"曾经学过"的部分,是杀手.使用这些工具有很多工作和实践,并且在开始时非常困难.



8> Joe Casadont..:

我个人是Emacs的粉丝,但Emacs只是一个工具.它不会让你成为一个更好的程序员,而不是一个超级花哨的笔会让你成为一个更好的作家.

澄清"伟大的程序员"使他们的环境适应自己可能有一些优点,但很多工具可以做到这一点(例如vim和SlickEdit),所以在这方面没有什么特别关于Emacs.

我认为最有可能的是"伟大的程序员"对编程充满热情,对此充满热情的人往往会找到有助于激发这种激情的工具.Emacs(和vim和SlickEdit等)就是这样一个工具.


Emacs在"适应环境"方面的特殊之处在于,在Emacs中这样做比在Vim或SlickEdit中要简单得多.(或我认识的任何其他编辑)

9> Stephane Gre..:

我不相信存在差异,更多的是偏好问题.

然而,我注意到你编码的时间越长,或者你编码的级别越低,你使用emacs或vi的可能性就越高.


是不是有一个好的IDE,小子?

10> Paul W Homer..:

虽然IDE在过去十年中已经变得更好,但它们仍然包含一些安全的"泡沫"编程,远离一些丑陋的细节.往往会发生这种情况,即抽象的增加允许更多程序员在知识较少的情况下做得更多.当然,这并不适用于所有程序员,但更简单的工具确实可以为更广泛的受众带来编程.

更多关于低级工具的知识通常会转化为代码中的更多稳定性,因为意外地"反对谷物"的可能性更小.将EMACS列为唯一的领先指标是不公平的,因为它来自各种语言和工具,而且更多的是理解的深度,而不是特定的技术.

回过头来,您要么在UNIX机器上学习VI或EMACS,要么专门研究PC(好的,还有VMS,CMS,AS400等,但这些都是旧技术).这两个流程吸引了非常热衷的人,但UNIX人员倾向于想要一个复杂的解决方案,而PC人员只是希望它能够快速完成.文化非常不同.



11> Sam Stokes..:

IMHO IDE倾向于围绕特定平台或语言或操作系统进行优化:Eclipse JDT非常适合Java,Visual Studio是以C++/.NET为中心的等等.如果您只是在工作,它们可以帮助提高生产力(再次恕我直言)那个平台,但如果你改变平台,你必须基本上学习一个新的IDE(或至少一组新的插件,视图,透视图,我不知道Eclipse还有什么).

了解emacs,Textmate或vim(我的个人偏好)或任何通用编辑器的优势在于,无论您编写什么平台,您在该编辑器中获得的技能都适用.它们针对编辑文本进行了优化,一旦掌握了它们,您就可以使用任何语言高效地编辑文本.

也有Yegge的断言,伟大的程序员将他们的工具调整到他们的工作方式,而不是相反.我认为这是通用编辑器的一个胜利,因为你自定义了一个编辑器,而不是必须弄清楚如何使四个不同的IDE适应所有你想要的行为.



12> RHSeeger..:

我认为最好的程序员往往会花费时间来定制他们的环境,使他们更快/更容易地执行他们可能做的任务.在定制环境时,Emacs是最强大的编辑器之一.它有一个陡峭的学习曲线但是,一旦你超越了它,你可以为它做的事情几乎没有限制.

曾经有人说最好的程序员是懒人; 那些,一旦他们需要不止一次做某事,就找到一种自动化方法,这样就可以减少工作量.Emacs让你变得非常非常懒惰;)

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有