开源软件替代商业/闭源软件的可行性研究

开源应用软件到底能不能替代商业闭源应用软件?

对于当下而言,这个问题的结论基本上没有争议,绝大多数人,包括相关领域内的专业人士,都认为开源软件无法替代商业闭源软件。

驿窗研究的结论是,上面的结论,只有一小部分是正确的,大部分是不正确的,原因是大家并没有进行软件替代的深入研究。以下是驿窗的研究结果,供参考。

一、首先,开源应用软件替代商业软件,需要精确定义一个词汇:替代

linux系统中可用的应用软件种类庞大,完全不逊于Windows系统。所以,开源应用软件在种类数量上基本没有问题,但实际应用中有另一个让多数人无法忍受的情况是,有的软件,总会有一些功能的实现,在Windows系统中的商业软件可以做到,而linux系统中的开源软件却做不到。这导致很多人得出了一个结论,即开源软件无法替代商业闭源软件。

所以,问题的关键是,我们如何能完成替代过程。

替代,在这里是指用一个软件来替换另一个软件,但可替换的程度并没有做清晰的界定,比如替换应该或需要能够达到什么程度,以及最终得到什么效果。在这一点上,本文按替换程度把替代分为四个级别:一是完全替代;二是可替代;三是部分替代;四是不可替代。

1. 完全替代

第一个级别:完全替代,是指全方位的替代,不仅在功能上可以替代,在操作习惯上也可以替代。

举个例子,Windows操作系统从Win95之后无论哪个版本,都有一个共同的特点,就是系统登录以后,在屏幕的左下角都会有一个开始按钮。这个特点延用了超过20年,这导致大批用户形成了一种操作习惯,即开机后就要到左下角找开始按钮。那么,如果linux操作系统登录后没有这个开始按钮,就会让用户感到不习惯。诸如此类习惯上的问题的积累,导致用户认为,linux系统连开始按钮都没有,所以无法替代Windows。

而实际上,这只是习惯上的不同而已,linux已经提供了功能非常完善的图形操作界面,并且形式多种多样,包括和Windows类似的操作习惯也已经提供,典型的就是KDE桌面环境,其操作感觉与Windows界面非常像。

这一种替代,我称之为完全替代,即除了功能上的替代以外,还包含操作习惯的替代。这种情况使办公室工作人员可以快速上手并掌握linux系统的操作。

从整体上看,linux的桌面已经完全可以替代windows桌面;或者说,如果仅考虑操作系统本身,那么linux操作系统已经完全可以替代windows操作系统。

2. 可替代

第二个级别:可替代,主要是指从功能上的替代。

这个级别最典型的,就是用linux系统的LibreOffice替代Windows系统的MS office。

从功能上讲,办公软件基本功能就那些,应用范围也比较固定。在常规应用范围内,二者功能都差不多,或者各有所长,只不过操作细节上有所不同。事实上,如果只是为了满足日常办公需求,那么LibreOffice完全可以替代MS office。问题无非是不习惯,或者说某个功能在实现时,操作起来具体步骤可能不太一样,但满足基本的办公需求是没有任何问题的。

问题在于,国内一些对于excel的专业应用,并没有成功迁移到LibreOffice案例,这导致用LibreOffice替代MS office的可行性缺乏必要的检验。好在专业应用的场景并不广泛,或者占比并不是特别大,我们可以一点一点来解决。

ms office的功能是办公,如果用libreoffice也可以办公,那么libreoffice就可以替换ms office。比如打印功能,ms office可以打印,如果libreoffice不能打印,那么,libreoffice就无法替代ms office;反之,在此功能上可以替代。这是因为,打印是关键的核心功能,不能缺少。但有一些功能是锦上添花,不是必需功能,这一类功能如果在ms office中存在而libreoffice中不存在,那么不能下结论为不可替代。再或者,同一个功能,ms office和libreoffice实现的方法不同,如果使用ms office的人在libreoffice中无法按相同操作方法实现,则仅仅是个人能力问题,不是libreoffice功能问题,不能定义为无法替代。

另外,我们也可以讨论linux系统中的gimp是否能替代windows系统的photoshop。

论证此类问题时,一定要注意一点,就是我们是找替代品,而不是找同品。我们找的是linux系统的办公软件,而不是找linux系统的ms office;我们找的是linux系统的图像处理软件,而不是找linux系统的photoshop。如果要求gimp与photoshop完全相同,那表明提出此要求的人并不想使用photoshop以外的其它任何软件,这不是替代。重点是,处理图片,用photoshop处理的结果,用gimp也可以,就能替代。

说到这里会涉及另一个问题,比如gimp不支持cmyk,所以很多人说gimp无法替代photoshop。但事实是,gimp虽然不支持cmyk,但可以通过配合其它开源软件及工作流程来实现需要的cmyk支持,比如krita、scribus等。所以,我们再一次强调我们的最终目标,即我们的最终目标是在linux系统上使用开源软件来完成之前windows上的工作,只要工作可以完成,成本可控,那么就是可替代的,而不必遵循完全一样的操作方法和过程。单一软件的某个功能不具备的情况下,附加其它软件如果可以实现的话,那么就不影响我们的最终目标,则结论就是可替代。如果在工作流程未做任何调整就声明gimp无法替代photoshop,那么大概率需要分析人的问题,而不是软件问题:是操作人员不会使用gimp软件。

这里涉及到一个基本问题是,因为两种办公软件在操作细节上不同,所以,对于只会MS office的人来说,可能会变成无法替代。所以,这里需要了解,我们第一个需要解决的,可能不是软件功能问题,而是人的问题:学习,学习就可以解决。

对于此类可替代软件,我们需要提供学习资源,让操作人员有条件学习开源软件的操作,包括提供培训时间、培训教程和讲师等资源。很多linux系统的开源软件,在Windows环境中也可以运行。所以,对于一些重要的软件,或者使用频率比较高的软件,现在就可以在Windows系统中学习,而不需要马上把Windows换成linux。这样一方面可以减少操作人员的学习的度,不用一下子就面对很多学习内容,另一方面也可以推迟企业或组织向linux的迁移时间,让整个迁移过程更平滑更温和。

3. 部分替代

第三个级别:部分替代,是指某一软件在基本功能上可以替代,但功能不全,会导致操作人员无法完成全部工作任务。

例如,相比Windows系统的AutoCAD软件,linux系统有一个类似的开源软件叫做FreeCAD,但FreeCAD在功能上有欠缺,有一些模块根本不具备,所以现实中无法全部完成某些重要的工作。此类开源软件应该是处于相对不成熟的阶段,仍然需要继续开发和改进,使用人群应该也比较少。这一类的软件,通常是专业领域才会用到的软件。

从替代角度讲,我们的最终目标是迁移到linux系统,而这个级别的替代对于企业/组织和操作人员来说,会影响正常的工作。如果要使用,必须提供应对方案,比如有一个专业技术部门专门负责解决这些功能上无法实现的问题,以完善整个项目流程,否则无法实现向linux系统迁移的目标。

专业技术部门对于此类问题的解决,通常是提供需要的功能,或者完善需要的功能,再或者提供临时解决方案以保障日常业务能够正常进行,然后综合考虑如何解决缺失功能问题。

这个级别有一个比较复杂的地方是,它与人的因素有很大关系。上面提到,主要考察是否具备需要的功能,而是否具备相应的功能,有时与人的能力直接相关。如果软件有相应的功能,而操作人员不会,或者找不到,那么就等于没有那个功能。与人相关的因素,我们放在后面论述。

对于确实存在的功能不全问题,除了由专业人员进行专门应对之外,我们还可以考虑另外两个临时解决方案,一是用两个或多个软件来完成以前一个软件就可以完成的任务;二是临时使用虚拟机,在linux系统中运行Windows系统虚拟机,在虚拟机中使用原Windows系统的商业软件来完成当前工作任务,甚至在需要时,直接使用原Windows系统和原Windows软件。注意,这里临时解决方案的主要目的是为了不影响或少影响当前的日常工作流程/效率,后续仍然要寻找永久解决方案。

这个样的方案并不完美,可能出现效率低下的情况。所以,需要针对每一个案例具体分析。好在这种情况主要是少数不常用软件/功能,可以一一针对性处理。如果最后确实需要另外寻找更优方案,那么尽早将该软件重新划分到下一个级别 – 不可替代,然后使用不可替代这一级别的解决方案,可能会更有效。不过在划分到不可替代这个级别之前,针对性的深入分析和研究是非常有必要的,以避免因为人的经验或能力偏差甚至习惯而导致被错误划分级别。

4. 不可替代

第四个级别:不可替代,即linux系统完全没有对应的开源/闭源软件可用。

这种情况通常是不常用的专业领域。常用软件的关注度比较高,多数已经开发出来了;而专业领域因为其专业性比较强的原因,或者应用条件和场景比较特殊,导致没有人开发开源软件。典型的比如企业使用的税务开票软件,或者警务软件等。这一类的软件因为特殊的行业应用和特殊的场景要求等原因,导致linux系统没有能够直接替代的开源软件可以使用。

对于此类情况,暂时性方案可以考虑在linux系统中使用Windows虚拟机来解决,长期方案则必须要考虑开发软件的linux版本。而针对哪个linux发行版进行开发(Debian/RedHat),其实也不是很重要,因为只要能够针对其中一个发行版进行开发,那么再开发适合另一个发行版的版本,基本没有难度。如果有难度,那证明开发软件的这家企业水平不行,需要换掉。

这里有一个成本问题,就是开发一个linux版本的软件需要的成本,这个成本数值暂时无法预测,因为还不清楚有多少个行业多少个部门以及有多少个项目有这样的需求;并且,成本计算与软件开发公司的能力也有很大关系。不过,这在大概率上是钱能解决的问题,所以不是首要问题,因为中国从windows向linux迁移的过程中,有太多问题是钱也无法解决的问题;本文首先研究那些用钱也不好解决的问题,然后再看如何少花钱来解决那些钱能解决的问题。

其次,开源应用软件替代商业软件,需要关注一个被忽略的视角:范围

简单来说,对于整个中国而言,是否需要100%的人全部迁移到linux,才算迁移成功。或者,90%的人能够成功迁移到linux,就算中国迁移成功,或者其它数值。

这个数值到底是多少合适,就是我们所提到的“范围”的概念。

我们仍然用LibreOffice替换MS office举例。当前中国的office用户,如果50%可以从MS office换成LibreOffice,是不是就表示LibreOffice可以替换MS office?或者需要60%?70%?80%?

具体数字是多少其实并不是我们关注的重点;我们关注的是,那些以实例来证明LibreOffice无法替换MS office的论据,所覆盖的应用范围到底有多大,或者,是大范围发生的情况还是小范围发生的情况。如果小到一定范围,我们是不是可以暂时忽略,等等。

比如,办公室工作人员在使用office软件时,有哪些功能是必须使用MS office才能完成的?学校的学生在写毕业论文时,有哪些功能是必须使用MS office才能完成的?这些必须由MS office才能完成的功能,到底有多少人会用到,或者有多少人基本用不到?当我们采用上述方法论证这一类问题时会发现,多数人提出的问题,都是小概率问题,或者个别问题,或者不具备一定范围的普遍性。

当一个具体问题不具有代表性时,我们必须考虑其作为讨论的论据时所占的权重:是否赋予其与其它问题相同的权重;或者,是否有必要降权。

再看另一个情况。目前我国是以windows系统为主,但有一些场景是在使用linux,这并不是说windows不是主流,而是说大范围是windows,小范围是linux。我们把这个场景反过来,如果大范围是linux,小范围是windows,是否可行?

所以,如上所述,如果我们以更精确的方式来论证开源应用软件替代商业软件这个问题,到最后会发现,其实我们主要面临的最大范围的问题,可能是软件学习问题,而不是软件功能问题;或者多数问题是会不会的问题,少数问题是能不能的问题。而学习,到底算不算得上是一个问题,我们可以再讨论。但至少,学习问题与软件功能相比较,二者完全不在一个层面,也不在一个领域,有太多方案可以探讨,这对于向linux迁移这个目标来说,可能仅仅是时间投入问题,而不是卡脖子的技术难度问题。

三、第三,开源应用软件替代商业软件,我们可以适度考量迁移的时间跨度问题

对于迁移到linux这个目标,我们可以把整个迁移的时间跨度放大一些,更长一些,比如30年。从确定迁移就开始计时,算上计划时间和实施时间及最后验收时间,好像最长也就只需要30年就能全部完成。

比如,让所有公立学校的在校师生都使用linux,包括幼儿园。那么30年后,那些当年的幼儿园小朋友已经成为社会生产的主力,他们必然习惯用linux来解决所有问题,而不是windows。这期间,还同时有无数的初中生、高中生、大学生在时不时地解决迁移遇到的问题。等到30年过去,那些当年的幼儿园小朋友还有多少迁移问题需要面对呢?恐怕他们需要面对的不是向linux迁移的问题,而是已经立足于linux系统之上,云解决所面对的更高级更深入的与系统选择无关的其它问题,而这类问题是我们现在所无法想象的。

是30年或者不是30年其实不是很重要,核心是我们可以不要想着马上就成功迁移,或者很快就成功迁移。我们也许只需要让迁移开始,那么迁移成功则很可能是必然结果。

未完稿