开源不应作为推荐的理由
前言
于是我开始思考了,对我来说,开源的软件和非开源的软件区别在那儿?
正文
首先阐明一下,我是软件工程的学生,但现在先暂时搁下这个不说,我就从作为一个普普通通的用户来说,一个像我爸爸妈妈这样的电脑盲的角度来说:软件开不开源,与我何干?有一点不能否认,电脑再怎么神奇,充其量就是一个便捷的工具而已。既然它作为我的工具,我所在乎的仅仅是它能不能高效地替我完成任务而已。
我来说说我这段时间用 Linux 的体验,我用的发行版是 FC6,在新华书店花68 RMB买的。总体感觉非常不错。我时常要赞叹一下它的强大和灵活。但是,有时让我也感觉很烦心。
一开始,我先让自己去熟悉 Vim 编辑器,因为我要用它来编程,熟悉自己的开发工具,能提高开发效率。Vim 提供的功能确实想大,所以有人把他和 Emacs 并列称为最强大的编辑器。但是,刚默认安装完的 Vim,还是很简陋的,需要根据的需要进行设置。比如,我要开启语法高亮功能、智能缩进、自动填充语句、还要代码折叠等等。我用的都是一些简单的基本功能,但由于我是新手,不熟悉,配置还是花了老半天。
接下来就是去看看浏览器,FC6 里自带的是 Firefox 1.5,我到官网下载了最新的3.1。然后安装了 Google toolbar、CHM Reader 等插件,再换上一套酷一点的主题,毕竟看浏览器的时间比较多,不赏心悦目一点怎么行。
最后再动动系统本身,去掉一些不用的后台服务,卸载一些自己不用的软件包(比如蓝牙设备等),最后界面也美化一下。
忙活了半天,总算是用得称心如意了。我在自己这样精心搭建的环境下能高效的工作。此时 Linux 给我的印象就是配置配置还是配置。但我突然想起了自己以前还没未接触 Linux 时,曾经和同学抱怨过:自从有了 Ghost 来安装系统,安装一个系统只要20来分钟,但接下来装驱动、装软件等配置一个满意的 Windows 却要花掉一天!所以 Windows 也一样。
无论是 Windows 还是 Linux,我都是根据我自己的需要进行了个性化配置,而它们经过我的配置,都能满足的那些需要,完成我指定的任务。就这一点来说,至于我用的是不是开源软件,的确和我没太大关系。在我看来他们是一样的。
那我关心的是什么呢?我举个例子,在 Windows 环境下,我用 Visual Stdio 2005 来编写代码,VS 2005 也提供了语法高亮功能、智能缩进、自动填充语句、代码折叠等功能。就功能上说,VS 2005 带给我的,和 Vim 是一样的。都能满足我的需求。但有一点,让我对 VS 2005 多一点好感,就是这些我想要的功能默认安装后就直接提供的,不需要自己额外去配置,去安装插件。
这就是我比较在乎的问题,像我这样如此被动的用户,只有在不得已的情况下,才会去亲自动手配置软件。一般情况下,都是直接默认安装软件的。如果两款软件,实现的功能一样,但其中一款默认的设置最解决我的个人喜好,那我想我肯定会选择使用它!因为我安装完就能马上使用了,这软件就像是我老朋友一样,知道我的喜好,知道我需要什么样的功能。
但我们老师一直在和我强调说,开发软件的真谛是“只提供机制,不提供策略”。其实我一直不苟同这一说法。我是觉得软件“既要提供机制,也要提供策略”。
不晓得大家用的是什么中文输入法?在 Windows 下,我以前是用智能ABC ,智能ABC 虽然智能,但还不是非常好,它的词排列顺序是固定的。后来我用了谷歌输入法,它能把你频繁地输入的字自动考前,下次输入时词的排列顺序就按使用频率来排序了,自然用户能很快找到自己需要的字,就好像这个输入法知道自己在想什么,每次出来的都是我想要的。这样的软件我用起来感觉很舒心,虽然它不是开源的。
但要真的实现如此舒心的软件,是非常困难的,它需要大量的需求调查,了解用户们真正的需求,甚至还包含一些心理学上的知识。而再神奇的功能,如果没有需求,那也是废物一个。有个经典的例子,至今有老外还在使用 Win 95 (原文请看这里),按他说的,这也是一个需求的问题,Win 95 提供的功能已经很好的满足它的要求了。
因此,对于我们用户,你和我说软件开源(不一定是无偿免费开源),对我来说那不关我的事,我在乎的是你的软件能不能高效地完成我给定的任务,是不是我每做一个小动作,都要先配置老半天?
而对开源感兴趣的人,我想应该是此类产品的开发者,他们需要通过源代码来借鉴其他人的技术,并以此来交流和提高自己的水平。这个暑假中,我在编写一些 Linux 程序时,也借鉴了 tr、curl 等程序的源代码。所有,向开发团队去强调开源,那是比较明智的,而不是在一堆电脑盲面前吹嘘不停。
后记
这两天我突然有了一个很“疯狂”的想法:是不是开源软件是故意这样做(只提供机制,不提供策略)的?因为开源软件是不通过买卖软件来賺钱的,而是通过后期的培训和维护等服务来赚钱的。但如果开源软件前期也做过充分的市场调查,了解用户的需求,然后在软件设计时,默认的设置最大地满足了大部分群体的需要。那也就意味着 Linux 等开源软件也简单易用,容易上手。这么以来,大部分用户就不需要去培训和维护服务了。那开源软件靠什么来赚钱?
所以,撇开自己使用源代码这一点来说,纯粹的在用户使用这个立场上来讲,开发开源的软件比开发商业软件要容易:因为开源软件前期不用考虑用户的需求,只有后期用户需要什么需求我针对性的进行培训,这样每个用户手中的软件经过自己的配置,可能都是不一样,这样能满足所有用户的个性需求;而商业软件前期有点“预测性”的估计用户的需求,然后到了用户手中的软件配置都是一样,这样就不一定能满足所有用户的需求。要自己配置的话反而另外还得去培训等,这比起开源多了一个环节。
评论
发表评论