少年听雨歌楼上,红烛昏罗帐.壮年听雨客舟中,江阔云低断雁叫西风. 而今听雨僧庐下,鬓已星星也! 悲欢离合总无情,一任阶前点滴到天明。

2007年10月4日星期四

Emacs VS Visual Studio

其实,写下这个标题,我就相信有一些人要告诉我,这还用说吗?当然是“伟大”的Emacs强大了。
我们这学期有一门课是Advanced Programming Techniques。说是Advaced,其实就是基本的编程能力的训练,主要是在Unix下进行C++开发。一开始,我自己觉得已经有多年的开发经验,特别是C++还算是比较熟练,这门课应该是轻车熟路。结果是每次作业都有很多问题,而且进行开发也很费劲。

原因之一是,我们做作业都是用SSH登录到学校的Sun Solaris主机上,完全使用Emacs进行开发。这就带来了一系列问题。首先,编译和链接必须使用g++和make工具。编写Makefile有时候是一件很不容易做好的工作。你必须要分清楚各个文件之间的依赖关系。这些还不是问题的关键。问题关键是使用Emacs进行多文件操作简直就是噩梦。相比Visual Studio等先进的Project管理,多个文件之间进行跳转,并且进行编辑操作,除非是非常熟练的Emacs开发人员,否则很容易就弄得晕头转向。而且,在大型程序开发的时候,开发者总是希望能够以不同颜色对程序的词法进行区分。而Emacs很明显没有这项功能。当然就跟不用提智能感知等等能够对开发效率进行极大提高的功能。

原因之二是调试。Emacs没有集成的调试环境,这让人非常难受。我不得不在程序中间加入大量的输出语句来检查程序内部的状态。同时,我也只能凭想象对程序的运行结果进行猜测。
有时候还是很不理解为什么要使用Emacs,难道Unix下面就没有好用的IDE吗?

当然,使用Emacs还是不少的好处。第一就是能够让你对整个程序有一个清晰的把握以后才开始进行代码的编写。一步一步来。而且是不要依赖调试。尽管调试是一个相当有用的手段。但是未必是灵丹妙药。如果对程序本身就没有一个整体的把握,调试的结果可能还是无法使得程序正常运行。

Emacs还有的好处就是如果逐渐熟练以后,纯键盘操作就能带来比较高的输入速度。当然,这显然还是没法和有智能感知和智能补全功能的IDE相比。

网上有文章介绍如何把Emacs作为插件安装到Visual Studio里面。真是疯了。

5 条评论:

匿名 说...

这只能说你不会用emacs了,或者不愿意花点小钱买一个emacs的plugin,那些vs能够实现花招,那个小plugin都能实现啊。

Unknown 说...

我说,你对Emacs的评价简直是太让人无语了吧。虽然我Emacs用得不是很熟,我还是很了解Emacs有多强大的。我就是那种想在Visual Studio里面装emacs插件的人,所以搜索google 才搜到你这里,没想到看到这么无语的评价。

匿名 说...

emacs主要就是为编代码而开发的。语法高亮,多文件跳转,语法制导,单步跟踪等等功能都是可以而且必须实现的。不过emacs默认没有这些东西,需要你花些时间好好写写自己的.emacs文件。多参考一下别人的心得,不要妄下结论。毫无根据就怀疑别人的智商会被人砸砖头滴。嘿嘿

匿名 说...

。。本来想找VS和Emacs结合相关的信息到了这里,没想到看到这样的评价。
开始我还以为是我穿越了。。很难相信这文章是2007年写的。

Seagle 说...

我也很无语了,我的VS都配置成emacs keybindings 了。你所说的emacs缺点都可以实现,只是你不知道而已。你的评价太片面了,很难相信你能顺利完成这样的作业。你对Unix看来真的不熟悉啊