基础软件国产化闲谈

现代软件是高度国际化的,在互联网上,传播、发布易如反掌。我们天天用着Photoshop P图,用 Apache2 之类的开源产品搭网站,顺便搭一搭MySQL 或者芒果。程序猿用各种IDE及编译器、解释器写程序、做产品,团队从开源网站签出消息队列,半天时间就能够部署到自己的项目中。
Open Source
这太习以为常了,以至于,渐渐地成为理所当然的事情,我们普通人更不会不去关心这些东东都是哪个国家的。事实上,很多时候真的说不清楚,开源项目有各个国家的团队参与,充其量只能统计一下核心团队里都有哪些人而已。那么,为什么还要再扯国产化这个蛋疼的话题呢?

软件国产化讲的是“基础软件国产化”

“软件国产化”这个土里土气,略带运动、口号气味的词,很容易和一些围绕国产软件的不愉快事件联系起来,也难以博得新世代Geek们的眼球。但抛开运动不说,软件国产化其实是一个概念,更准确的,应该定义为“基础软件国产化”。
基础软件,大致包括操作系统、编译器、解释器、底层驱动、各级SDK、供开发人员使用的各类工具软件、DBMS、中间件等等,这些软件用于生产、支持真正的行业应用。至于行业应用,国产化很高了,从医院的叫号到微信微博,哪个不是国产?讨论这些没有意义。
基础软件,与传统制造业做类比,好比车床,属于“重工”的范畴。
重工
重工,引用百度百科的定义,“重工业指为国民经济各部门提供物质技术基础的主要生产资料的工业。”说的白一点,就是制造工具的工业。那么,基础软件对于IT来说,国产化到底有什么意义,相信在很多国产软件上马的檄文里都能找到非常高大上的解释,这里楼猪不打算说那些。楼猪要说的是,基础软件国产化对高技术行业(远不止IT)从业人员的发展意义重大。

基础软件是孕育大师的舞台

基础软件,具有复杂性、渐进性、持久性三个特点。

  • 复杂性
    基础软件所完成的工作一般体系性强,软件构成复杂度高,无不涉及到各个领域的顶尖技术。这些领域的顶尖软件开发商,掌握了大量专利算法、行业标准,这些开发商门下的科学家团队本身又是理论前沿的专家学者。软件很容易被盗版,但基础软件的核心技术很难被复制。即使把源代码拿出来另立门户,也会因为离开庞大的团队文化圈子而迅速凋零——没有这群人,就干不了这档子事。
  • 渐进性
    基础软件需求比较明确,一般突变比较少。这个特点客观上因为开发工作的模式创新比较缓慢,主观上是软件厂商有实力影响行业标准、产品走向,他们很有计划的推进着一个个里程碑。这些基础产品的发展是渐进的、缓变的。以大家熟知的Photeshop、Office、Visual Studio系列为例,从windows 3.2时代到windows10时代,其操作模式、使用习惯是慢慢发展的。
  • 持久性
    基础软件的生命周期很长,往往可以持续几十年。微软的visual Studio如果从Dos时代的Visual Basic 1.0计算,差不多有30年了。如果没猜错,像Qt 这样的中间件也有20年了。这些工具是不断进步、高度延续的,很多特性都在几年前有了规划,很多特性经过几年的争吵才从分支中删除。

这三个特性,恰好是为大师准备的舞台。

大师

  • 雇佣人:基础软件领域需要大师
    大师对技术的全局掌握,以及深厚的理学知识,确保他们能够带领团队驾驭高度复杂的软件架构和算法本质;这些领域的复杂性,使得公司董事们愿意花钱养活这些大咖。如果一家公司不做基础软件,从成本考虑,也没有必要养活一个资深技术团队。这些人可不是省油的灯,没有可观的收入,是会跳槽的。
  • 培养人:大师的成长离不开基础软件行业
    一个人的成长,无论哪个行业,都遵循比较一致的规律。没有时间、阅历的积累,很难成长为大师。渐进性,使得从业团队能够精心,老中青组合稳定的在一个领域不断成长,不会被一些突变的需求弄乱脚步;持久性,使得年轻人可以静心,较为清晰的看到未来走向,不至于困惑。能够支持一个人做技术做到60岁的公司,一般都是掌握行业标准的一流企业。

基础软件和开源社区紧密绑定

一个基础软件一塌糊涂的地方,对开源社区的贡献肯定也很差。这句话很可能是真实的。

  • 开源项目的背后是基础软件巨头
    去拜访一下Apache、PostgreSQL这些团队的核心成员,会发现他们背后都有基础软件公司的影子。PostgreSQL的核心贡献者Tom Lane是RedHat公司的专家,而Apache项目的注资方就有Adobe。开放地理信息系统OpenStreetMap支撑了庞大的工具链和生态体系,背后有苹果、NASA(这个不是公司)等巨人的支持。
  • 开源社区的大咖收入多来自基础软件企业
    再有理想,吃不饱肚子是不行的。开源项目有几个来源。一些来自商业软件营销模式变化后,公司主动开源,这些工程师自然而然成为核心维护团队;一些来自民间,但被公司招安,而后衣食无忧的继续干;还有一些中小规模的开源项目为个人作坊维护,但这些作坊匠其实很多是大公司的雇员。
  • 很多开源项目源于基础软件开发过程
    一个人不可能有无限的精力,在下班时间干着和上班完全不同的事情,却又都干得很好。绝大多数人很难干着一份律师执业,在8小时外维护好一个开源系统。一般来说,好的开源项目很多源自工程师的日常工作积累,这些积累和公司的走向是趋同的,而且是共生的。一旦脱离了公司的开发工作,离开了圈子,工程师本人一般也会失去维护开源项目的动力。

基础软件改善行业环境

一个人,从读书开始,到踏入社会,付出的精力是很多的。一个人选择了一门职业,为之努力,无论坚持了几年才放弃,绝大多数人上班的第一天都是兴奋、向上的。 但很多人由于缺少合适的土壤,最终会惨淡放弃。放弃不可怕,可怕的是,IT行业很多毕业生都不相信能够干到老了。事实上,他们绝大多数没法干到老:主要原因是精力不够。

一个人的事业发展,经验、薪水大致能够持续增长,但精力不是平稳的曲线,而是曲折的。
事业曲线
20岁毕业的小伙子,通宵加班也扛得住。30岁,家里有了孩子,很快就干不动了。如果30岁的人,还要全拼体力的话,他离开这个行业的可能性就会很高。这种拼体力的领域,比如消费类相关的IT开发工作,讲究的就是短平快。不加班,怎么行?工具链浮在顶层,新架构、新工具层出不穷却又各有缺陷,要求从业者全身心投入,上班干活下班学习——这种学习是短期的,由于变化太快,学习的成果退化也很快。所以这些行业青睐年轻人。

基础软件领域的特点,复杂性、渐进性、持久性,给予25-35岁年龄阶段的人更加平稳的过渡期,并在度过25-35岁这十年后,在经验、眼界上开始发光发热。从事基础软件领域的公司,更重视人才的培养,也懂得留住人才的重要性。这些公司会引导员工制定客观科学的发展规划,获得长期的收益,在这些公司工作,环境会大大改善。

后记

基础软件国产化,是与各种因素盘根错节交织存在的。基础学科的落后,使得科研根基薄弱,企业难以在行业上抢占制高点(如制定视频格式标准、互联网协议),从而没有能力左右行业发展方向,也就大大缩减了利润空间。没有了利润空间,企业就会疲于生存,从而没有能力投入到基础软件研发中去。不管如何,基础软件国产化与开源社区的成熟一样,都成为最应该做却很难做成的事情。

发布了127 篇原创文章 · 获赞 330 · 访问量 48万+

猜你喜欢

转载自blog.csdn.net/goldenhawking/article/details/52352213
今日推荐