虚心请教 vim/emacs 和一般 ide 的相关问题

不同视角、不同观点、深度探讨,禁止人品和道德攻击
回复
qwedcxza
帖子: 4
注册时间: 2008-09-25 20:55

虚心请教 vim/emacs 和一般 ide 的相关问题

#1

帖子 qwedcxza » 2008-09-25 22:27

先表个态,我不是希望争论两者优劣,而是想讨论一些实际的问题。看过了原来
的一些讨论,感到这里必有能手,所以虚心请教。我认为同行,尤其是软件这一
行,应当互相理解,其实无非都是想日子好过一些。

---我认为极端支持 IDE 的人,应当改变一下态度,包容一些,其实作程序的人
都是聪明的,容易接受新事物的,在微软的平台下我们不是年复一年的都在学习
新东西吗?又何况 vim 这些老古董了,估计真想拿下的话绝对不是问题,而是
暂时觉得用不上倒是真的。可即使目前用不上呢,也不妨接纳吸收,因为存在既
是合理的,只是自我的工作环境没有到需要它的地步。

---另外我想那些 *nix 高手们,其实你们真应该理解大部分 ms 平台的程序员
,平台之争我不喜欢讨论,但人都要吃饭的。微软哲学毕竟赢得了大部分人的认
同(如果您较真的话,那我只能说在中国,在bj,至少在我工作的环境,全部
都用 win)。虽然精英总是少数人,但是仍然有人要为大众服务不是吗?

大部分程序员工作在 ms 平台下,这个平台的 ide 又可以顺畅的完成任务。那
么他们对 vim/emacs 的质疑是可以理解的,但他们之中还是有人希望了解不是
吗,如果你们能给一些实质性建议,才有利于好东西的推广。

---我刚接触 emacs ,不了解细节,但大概理解它的机制,我的理解是,emacs
是以编辑器为核心的开发式工作环境。以程序员的视角来看,就是完全定制自己
的 "IDE",只要了解 lisp,就可以做任何想要的事。

---我不需要开发跨平台的软件,不过我已经感到一些问题,它们可能导致我希
望定制 ide。

1 几大经典仍然是 ms 平台的主导,.Net 要用,vc++ 要用,过气的 delphi 仍
然要用。(具体解释放在最后)。而这么多工具,vc 就有 6.0, 2003, 2005,
2008, delphi 有 7, 2007, 2009

在不同的 IDE 工作习惯之间切换,确实不是一种舒适的生活。另外兼容性也有
问题,比如,老的工程由于没有用 makefile,我就必须保留当时开发它的 IDE
,或者就选择转换到高版本 IDE,大项目通常不敢随便这样干(主要是 vc )。

2 IDE 本身缺陷,delphi 界面,和热键问题,vs 还需要个助手,而且天知道他们以后还
会做出些什么,是好还是坏。我确实不想让人牵着鼻子走。


如果使用 emacs,有几个问题必须考虑:

-- 资源编辑器,vc++的,c#的,delphi的,都需要资源编辑,而且这正是他们
的一大特色。您如果非说我们工作肤浅,我说我不是,我可以完全手写核心代码
,但是总要有人去做界面,我不能因为我的便利,而强制他人放弃好用的 GUI
设计器,事件处理影射向导等。除非给他们提供更好的解决方案。否则,他们还
是会用 IDE。

帮我想想,有什么解决办法,还是说干脆让界面层的人仍然使用 IDE。

-- 名称自动提示能做到什么程度?.Net 类库如果出了新版本,能马上支持吗?

delphi 的 vcl 有吗?这一点真的不了解。

本来感到有很多问题,一时想不起来,先这样了,也够长的了,希望能给我些正面意见。
qwedcxza
帖子: 4
注册时间: 2008-09-25 20:55

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#2

帖子 qwedcxza » 2008-09-25 22:39

解释一下为什么用那么多工具,当然是个人见解。

新兴的.Net是简单易用,可目前的硬件下,却是以用户的性能损失换取程序员的舒适,但我认为是开发应用层的首选。为什么?理由很多,开发快,培训程序员快(我们小企业只能自我培养程序员),而用户嘛,不会太受影响,我们不会对个人用户的产品使用 .Net,企业用户就无所谓了。

有时候不是你想选择什么,而是别无选择。

c++ 用途不用置疑,这是根本,其他玩具束手无策时,只看它表演了。

如果想开发民品,或者自己用的软件,恐怕就不愿意背着 .net 了。不过界面开发 delphi 胜 vc 一筹,vcl 架构也优于 mfc 许多,所以也算个压箱底工具了。
poet
帖子: 2841
注册时间: 2006-09-11 22:47

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#3

帖子 poet » 2008-09-25 22:59

qwedcxza 写了: 大部分程序员工作在 ms 平台下,这个平台的 ide 又可以顺畅的完成任务。那
么他们对 vim/emacs 的质疑是可以理解的,但他们之中还是有人希望了解不是
吗,如果你们能给一些实质性建议,才有利于好东西的推广。
---我刚接触 emacs ,不了解细节,但大概理解它的机制,我的理解是,emacs
是以编辑器为核心的开发式工作环境。以程序员的视角来看,就是完全定制自己
的 "IDE",只要了解 lisp,就可以做任何想要的事。
我接触计算机编程20年了,前十年里几乎都是以IDE为主,后十年里就引入了很多非IDE的东西,vim是我最后最常用的选择,当然偶尔也结合一下SourceInsight。对这个问题我的看法是:
1。不是所有程序员都需要开发界面程序,我所知道的80%的程序员开发程序是可以不要界面的。(一个项目组,平均五个人中有一个人开发界面就足够。)
2。不是所有界面都可以用IDE搞出来的,大多数嵌入式终端的界面都绝无可能用IDE搞,而嵌入式开发和金融两个领域是程序员的主要去向。金融领域几乎已经被Java垄断,我做过三年的金融行业软件开发加上七年的嵌入式,可我仍然发现,绝大多数软件开发工作根本不涉及界面。“业务流程”才是一个程序员最关注的东西。

3。使用编辑器导向的程序员有个基本思想:没有必要强迫所有人都使用相同的平台,只要能写出多快好省代码的编辑器,就是好编辑器,如果VC这个IDE能够使你高效的完成任务,那么你当然可以坚持使用VC,可我周围的情形是:绝大多数人抛弃了VC,大部分转向了SourceInsight,少部分转向了vim,极少部分转向了emacs,转向emacs的恰好是个在Linux下开发界面的人,显然emacs的IDE功能要强过vim。

SourceInsight是个完全没有编译和调试功能的,仅仅只有写代码察看代码功能的编辑器,然而它在程序员中的普及率是很恐怖的,这个windows程序几乎无可争议的击败了windows下的所有C编辑器和IDE。如果楼主真的看清楚这一点,又当如何设想?

Windows下之所以IDE横行,是因为人们几乎只用C++这种单一的,面向对象的开发模式适合引入IDE,(当然其它的语言也有,都是面向对象的)。
纯C代码这种非面向对象的,可以在windows下开发,但是大多都不是为windows平台设计的。一部分人会忽略它。
C/Python/Shell 等脚本级/嵌入级与函数级的不同语言混合式编程,没有IDE能够很好的支持这种模式。
事实上VC的编辑器功能比vim逊色太多,因此我即使在windows下也是把vim嵌入到vc中使用的。

我给人们的建议是:不要使用强迫症的方法去学习编辑器,如果VC能够满足你的要求,那么就好好的使用VC,即使开发Linux程序也可以,到哪天你觉得VC不能满足要求的时候再切换emacs/vim也不迟。——不论是Unix高手还是低手,都没有必要也没有义务强迫他人改用vim/emacs。这纯粹是一个个人选择。让20%的开发界面的人继续使用IDE,让80%的不开发界面的程序员使用一个更好的编辑器,这不是各取所需么?
qwedcxza
帖子: 4
注册时间: 2008-09-25 20:55

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#4

帖子 qwedcxza » 2008-09-27 8:00

谢谢你老兄。
也没什么人理我,看来一到实质性问题上也都那么回事了,不过凡事还是靠自己是真的。

另外我考虑推广这些工具也有成本上的原因,总不能项目组所有人从 vc6 - vs2008 人手一个吧。你说的一人负责界面开发非常好,这样只需要准备一套好用的正版开发工具作界面即可。
头像
liupingjing
帖子: 451
注册时间: 2007-11-29 17:31

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#5

帖子 liupingjing » 2008-09-27 11:13

其实在linux下做界面开发的大部分用的是qt或gtk
qt不了解,看过几天gtk,很容易使用的,比如你要做一个计算器,那么步骤如下:
1 用glade生成界面,就是拖控件上去,给控件命名以及制定它们的回调函数
2 完善要用到的回调函数(就是写.c和.h文件),然后写主函数生。
3 写makefile
这样就完了,需要的话,我给你传给你一个看看,就四五个文件,非常简单,不会比vc麻烦
xeoc
帖子: 1994
注册时间: 2007-05-06 10:12

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#6

帖子 xeoc » 2008-09-27 11:28

vim只是个文本编辑器,不能拿ide的标准要求它....虽然它也可以被改装成ide

1.如果想要一个哪哪都自带都能用的,请选择vim
2.如果想要一个包容一切的,类似ide的,编程闲暇什么都能搞的,请用emacs
3.就是觉得文本编辑器不爽,就是想要ide,选择code::blocks之类的ide
qwedcxza
帖子: 4
注册时间: 2008-09-25 20:55

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#7

帖子 qwedcxza » 2008-09-27 20:34

liupingjing:
可惜我是做 windows 平台的,必须找到 vc,delphi,.net 的界面编辑器。

xeoc:
我对 emacs 比较乐观。
头像
nouse
帖子: 133
注册时间: 2007-11-10 1:09
来自: 上海

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#8

帖子 nouse » 2008-09-27 21:19

关于 IDE 的问题可以看看 王垠那篇经典文章,很好的分析了IDE的本质。

Vim和Emacs的特点是入门太难,但是入门了以后就可以用同一的方式解决不一样的问题。
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#9

帖子 xhy » 2008-09-27 21:50

我在中国哦,也在bj,我们的开发工作基本都是ssh到开发机上进行的。 windows机是用来当终端用的

我们也有开发windos平台软件的人, 他们用的是eclipse。
目前负债150多万
poet
帖子: 2841
注册时间: 2006-09-11 22:47

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#10

帖子 poet » 2008-09-27 22:06

qwedcxza 写了:谢谢你老兄。
也没什么人理我,看来一到实质性问题上也都那么回事了,不过凡事还是靠自己是真的。
另外我考虑推广这些工具也有成本上的原因,总不能项目组所有人从 vc6 - vs2008 人手一个吧。你说的一人负责界面开发非常好,这样只需要准备一套好用的正版开发工具作界面即可。
成本上的原因可以这么解释:不同的思路奠定了不同的开发模式。
Linux的传统开发模式奠定了它可以这样分工。

例如你要开发一个软件,它分成A,B,C,D,E五个功能,每个功能都需要界面,需要访问外设,需要接收用户输入,需要业务,需要通讯。
如果是个windows程序经理或许会按ABCDE分成五个模块,给五个人做,这样每个人的工作是比较独立,每个功能的实现比较独立,但每个人都需要界面,需要访问硬件,需要访问输入输出,需要访问网络,需要处理业务流程等等。
但如果是个Linux程序经理或许会这样分,界面,硬件外设,输入输出,业务流程,通讯服务。这样五个人做,只有一个人需要界面,只有一个人需要硬件外设,只有一个人需要输出输入,只有一个人需要进行网络通讯,只有一个人需要处理业务流程。但是每个独立的功能都需要所有人的联合才能完成。

所以说,架构设计师的思想不转变,就不可能按照Linux的形式去编程,不按照这种形式去编程,就不可能实现只有极少数人需要访问界面。
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#11

帖子 stlxv » 2008-09-27 23:07

使用IDE而不是VIM/EMACS主要是GUI IDE更加好看用起来更加顺手(比如热键等),而且VIM/EMACS并非马上可用而且配置麻烦功能弱。
另外,很多IDE不好之处在于和目标相绑定,这些IDE往往只能用来编写特定的程序。
一个可以很容易做配置的通用IDE来说确实是一个很不错的选择,当然,这样的东西和VIM/EMACS是同样的道理了;但是它的好处在于,好看,而且热键更加顺手。
VIM/EMACS适用于20年前的人,那时UI还不像现在这么标准化。
PHP是最好的语言!不服来战!
DSYin2007
帖子: 131
注册时间: 2007-09-19 13:48

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#12

帖子 DSYin2007 » 2008-09-28 15:13

qwedcxza 写了:liupingjing:
可惜我是做 windows 平台的,必须找到 vc,delphi,.net 的界面编辑器。

xeoc:
我对 emacs 比较乐观。
glade在windows平台上一样可以用。
cxzqw
帖子: 25
注册时间: 2009-02-21 22:20

Re: 虚心请教 vim/emacs 和一般 ide 的相关问题

#13

帖子 cxzqw » 2009-04-18 21:51

poet 写了:
qwedcxza 写了: 大部分程序员工作在 ms 平台下,这个平台的 ide 又可以顺畅的完成任务。那
么他们对 vim/emacs 的质疑是可以理解的,但他们之中还是有人希望了解不是
吗,如果你们能给一些实质性建议,才有利于好东西的推广。
---我刚接触 emacs ,不了解细节,但大概理解它的机制,我的理解是,emacs
是以编辑器为核心的开发式工作环境。以程序员的视角来看,就是完全定制自己
的 "IDE",只要了解 lisp,就可以做任何想要的事。
我接触计算机编程20年了,前十年里几乎都是以IDE为主,后十年里就引入了很多非IDE的东西,vim是我最后最常用的选择,当然偶尔也结合一下SourceInsight。对这个问题我的看法是:
1。不是所有程序员都需要开发界面程序,我所知道的80%的程序员开发程序是可以不要界面的。(一个项目组,平均五个人中有一个人开发界面就足够。)
2。不是所有界面都可以用IDE搞出来的,大多数嵌入式终端的界面都绝无可能用IDE搞,而嵌入式开发和金融两个领域是程序员的主要去向。金融领域几乎已经被Java垄断,我做过三年的金融行业软件开发加上七年的嵌入式,可我仍然发现,绝大多数软件开发工作根本不涉及界面。“业务流程”才是一个程序员最关注的东西。

3。使用编辑器导向的程序员有个基本思想:没有必要强迫所有人都使用相同的平台,只要能写出多快好省代码的编辑器,就是好编辑器,如果VC这个IDE能够使你高效的完成任务,那么你当然可以坚持使用VC,可我周围的情形是:绝大多数人抛弃了VC,大部分转向了SourceInsight,少部分转向了vim,极少部分转向了emacs,转向emacs的恰好是个在Linux下开发界面的人,显然emacs的IDE功能要强过vim。

SourceInsight是个完全没有编译和调试功能的,仅仅只有写代码察看代码功能的编辑器,然而它在程序员中的普及率是很恐怖的,这个windows程序几乎无可争议的击败了windows下的所有C编辑器和IDE。如果楼主真的看清楚这一点,又当如何设想?

Windows下之所以IDE横行,是因为人们几乎只用C++这种单一的,面向对象的开发模式适合引入IDE,(当然其它的语言也有,都是面向对象的)。
纯C代码这种非面向对象的,可以在windows下开发,但是大多都不是为windows平台设计的。一部分人会忽略它。
C/Python/Shell 等脚本级/嵌入级与函数级的不同语言混合式编程,没有IDE能够很好的支持这种模式。
事实上VC的编辑器功能比vim逊色太多,因此我即使在windows下也是把vim嵌入到vc中使用的。

我给人们的建议是:不要使用强迫症的方法去学习编辑器,如果VC能够满足你的要求,那么就好好的使用VC,即使开发Linux程序也可以,到哪天你觉得VC不能满足要求的时候再切换emacs/vim也不迟。——不论是Unix高手还是低手,都没有必要也没有义务强迫他人改用vim/emacs。这纯粹是一个个人选择。让20%的开发界面的人继续使用IDE,让80%的不开发界面的程序员使用一个更好的编辑器,这不是各取所需么?
请问有办法把VIM嵌入到delphi中去用吗?谢谢!
回复