如果国内公司拿到了行业标杆工业软件(工业软件主要是设计仿真CAD/CAE/EDA/CFD/TCAD等软件)的源代码或者收购了国外的工业软件公司,作用和意义有多大?多大程度上能解决或者缓解国内市场被国外软件垄断的局面?
说实话,这个内容比较敏感,但笔者仍然还是从技术角度和客观事实来进行分析。
1、什么才算工业软件公司
一家软件公司的业务,销售,市场都是以自家软件产品和软件服务为基础,否则不能称之为软件公司,比如代理卖软件的,把别的产品包装一下,或者顺便做点研发,还有做类似信息系统,管理系统的,都算不上工业软件公司。国内对企业有“双软认证”,即指软件产品评估和软件企业评估,具体内容可以百度,可以作为基本参考
2、源代码在产品中的地位
“源代码”是一家软件公司的核心资产,或者基础资产,简单一张图说明源代码在整个产品框架中的地位,第一层是基础,依次往上。
3、“源代码”引起的法律问题
源代码是一类特殊的资产,最大的特点在于:简单拷贝一份,就很容易造出新的产品。国外大厂因为源码引起的纠纷也不少,笔者了解的至少就有三起大家耳熟能详的国外产品之间的源码纠纷,只不过大家都更愿意低调走法律流程,也很看重声誉,一般都花钱息事宁人。需要说明的是:未经公司允许售卖源代码,是违法行为,影响较大的可以作为刑事案件。特别是刚进入职场的同学,一定不要以为是件小事,因小失大。
4、大型工业软件的源代码存在的问题
工业软件行业的代码,短的有三五年,长则几十年,规模庞大,系统复杂,比如开源RADIOSS,Code_Aster,OpenFOAM。对于一个从来没有过行业经历的,哪怕是熟手程序员,基本上也是看“天书”,而且是上百万行代码的天书(百万行代码的概念是一天看500行,看一遍就需要7年,一天看懂500行已经是很厉害的水平)。如果要在代码上做改进或加新功能,需要花相当长时间和精力;对于很多业务逻辑和算法,只有当时的开发人员才能理解,也就是常常说的“s山”代码;而框架性或者底层的设计基本上是无法改动的,就像是盖房子的地基,一旦定了就无法动了。
所以可以看到软件行业,竞争对手之间往往都是挖人,而不是代码;而软件大厂收购,其看重的首先是市场和人才,源代码其次。有些代码历史悠久,版本更新困难,所以后期更新也有相当大的工作量;有些新技术的引入,导致软硬件不兼容,也会带来维护开发困难。
5、出售“源代码”
源代码作为资产,无论从商务上,还是法律上“出售”都没问题。问题的关键是双方需要根据实际业务,考虑到所有可能出现的情况,比如:
①A委托B开发程序,需要明确程序的IP归哪方,是否需要源代码
②B有源代码出售,出售之后的用途,限制,比如是否能再次出售和分发,是否能开源,和B有竞争如何处理,时间限制,地域限制等要明确说明
③B有源代码出售,比如同时出售给C和D,C和D产生竞争,B的责任要明确说明
④B售出的源码中,其依赖的第三方库如何处理,是需要C额外购买,还是直接使用B的
⑤B出售源代码,其源代码包含的具体内容需要明确说明,比如有些仿真软件积累了相当多的测试用例,用户案例,模板库,开发测试工具等,其作用和功能可能比源代码更有价值。
6、低代码暂时不适合目前工业软件行业
目前很多出售源代码的情形发生在互联网Web,App等领域,因为大家业务需求不一样,购买源代码的目的在于快速搭建自己的程序或系统供自己使用,比如Saas等,也催生了低代码的兴起。但是低代码和工业软件目前业务模式并不匹配,至少目前还无法大规模应用起来。
7、软件需要更新
根据以往历史经验和笔者经历,一套业内领先产品的代码,如果三年不维护,不做新的开发,基本上就被淘汰了,而且这个时间周期还在缩短。
以盖房子为例,一般流程:
①提出需求
②设计
③画图纸
④准备施工原材料,设备,人工
⑤打地基
⑥盖楼房
⑦装修
⑧交付
购买源代码,相当是购买了以上内容中的第三项和最后楼房。对于设计师的水平,原材料,工人水平,设备,管理水平等可能会有影响,需要具体问题具体分析。
算是回答了文章开头的问题。
最后,对于收购国外的工业软件公司,国内企业也在努力,不过近几年好几起都没成功,有些是被收购方要求特别苛刻,有些是直接被公司所在国家否定,可见并不太容易。
作者:邓子平