Archive for 10 6 月, 2008
再次抛出关于Linux的话题
今天gaospecial给我留言,我回了以后,害怕大家误解一些我对于Linux的看法,固而好好写一篇我对于Linux,特别是Linux开发环境的看法。
我自己有一台电脑使用的是Ubuntu Linux操作系统,我实验室的机器是CentOS,现在上班的机器也是CentOS,学校的工作站是Sun Solari。尽管,我自己在Linux下开发和办公基本没有问题。从我自己的情况看,我没有必要讨厌Linux。2004年的时候,我还在我所参加的学 生组织学生网络中心组织了Linux学习小组。应该说,我个人还是很喜欢Linux的。
但是,为什么我一直都对Linux有意见呢?那是因为我觉得有一些Linux的缺点不应该说成是“强大”的代名词,反而成为了Linux迷炫耀的地方。
比方说,一直以来“易用性”好似不被Linux用户所齿,只要功能强大就行。但是为什么Ubuntu能够成功?这是不是说明了“易用性”的重要性?也许 是。还有一点,以前Linux宣传的口气是,不需要什么图形界面,全部命令行的操作体现了专业和高级。不过,现在Gnome和KDE的界面做得越来越花 哨,还有不同的界面插件证明了,虽然界面不是万能的,但是对于普通用户来说,没有界面是万万不能的。
操作系统和软件的发展还是有一定规律的。强大和易用性不是对立的。这也是汇编语言虽然强大,但是并不是最主要的开发语言的原因,也是甚至C或者C++也会慢慢变成不是最主要的开发的语言的原因。当然,那是另一个话题。
再说Linux的开发。长期来看没有一个标准的集成开发环境其实是阻碍Linux发展的一个潜在因素。回顾Windows阵营,微软的Visual Studio和Borland的系列开发工具(包括C++ Builder、Delphi、JBuilder)真的是功不可没。强大的开发工具提高的是整体软件开发的能力和效率。不仅仅是写程序的效率,更是团队协 作的效率。举一个简单的例子,在Linux下开发,因为调试器的缘故,很多时候,开发人员只能通过输出log信息来达到知道运行状态的目的,但是这在一个 大型系统中,要想通过这样的方式来很清楚认识每一步的运行状态是非常困难的。对于源程序来说,功能代码之间夹杂着无数的调试信息输出代码,也是非常不美观 和影响代码理解的事情。
注意,这里不是否定GDB和G++之类的开发工具的强大性,而说的是易用性以及易用性带来的效率问题。我们不能说,因为有了GDB,就不需要更高级的调试工具了,这是不对的。
我知道通过配置VIM和Emacs还可以听音乐,看电影,还能干这个,干那个。有人说这两个软件能无所不能。我相信。但是,要说开发软件,我不相信这是好 的方法。大的例子太多了,微软、IBM、Oracle和Sun的基本所有软件都是用了集成开发环境开发,单靠VIM和Emacs来编写上百万的代码是不可 能的,这不是怀疑这些编辑器的编写能力,而是软件开发除了编写,还有很多的东西。
所以,Linux阵营要做的是好好开发一个软件开发环境,而不是一次又一次告诫大家使用VIM或者Emacs。这两个软件本身没有错,但是做开发工具,特别是软件开发工具,并不是最适合的。
另外,有人肯定会告诉我,VIM和Emacs的插件如何如何丰富。最好不要提这个。第一个原因是,用户安装好一个软件,这个软件是要可以使用的,能够达到基本需求的。为了语法高亮、为了语法检查都需要寻找插件,这不是什么好的理由。
当然,VIM和Emacs存在的理由,不是没有。在有不少的情况下,特别是终端操作,远程操作,这样的纯文本编辑器是效率最高,也是很有可能唯一提供的工具。
此文仅仅是希望在使用Linux的朋友,真正去看到Linux的不足,去弥补这方面的问题。
近期评论