封闭还是开放,这是一个问题

封闭还是开放,这是一个问题。

我没有办法去讨论太过高级的东西。仅从软件开发角度来表达一下这些年自己思维的一些变化。或许是一个不错的时间节点,可以做一些不错的思考,做一些新的尝试。


对于我而言,其实标题应该更简化为闭源还是开源,这是一个问题。

我觉得一个软件开发的从业者的思维,很大程度上受毕业后进入的第一家公司的影响。起码我是这样。

我是一个学物理的本科毕业生。由于对开发的热爱,自学进入了这个软件开发行业,做了一枚光荣的程序猿。

我所在的第一家公司,通过开发一个桌面的阅读器起家,阅读器所支持的是一个非常流行的文档格式。而对文档格式的解析和显示,是核心部件。对于一家小公司来说,这些核心部件是公司最重要的技术成果和资产,即使在公司内部,能够访问这些最核心源码的人也屈指可数。

公司的产品凭借性能优良,轻快好用,获得的大量的用户,公司的业务也慢慢发展起来了。

所以,在我幼小稚嫩的心里,觉得闭源是商业产品保持竞争力的必须的。闭源这种模式在我脑子里是根深蒂固的。


恰恰人是叛逆的。我在公司从事一些以核心库为基础的接口封装的工作。对于核心是如何实现的,其实非常好奇。可是我看不到,我觉得我这样做下去是不会有成长的,我就离职了。离职以后我开始萌生了,自己写一个文档解析库的念头。年轻的我自视甚高,认为你可以写出一个库,为什么我不行。老子也要写一个,还要写个更好的。然后,我就开始写了,当然,只是业余时间写写,否则我早就饿死了。


其实一方面是想写点牛逼的东西来证明自己,另一方面,我认为写一个完整的核心库其实是很锻炼能力的。一方面要学习文档标准,另一方面要进行库的架构设计,还要进行具体的代码编写,然后测试啦,修复BUG啦,积累测试样本。而且文档格式解析即包含了数据的解析,又包含了内容的显示,如果要做的完善,还有做文档的生成,文档的修改和保存,涉及到各个方面的技术内容。这其中的工作量之巨大,难以想象。当时的我其实也知道一个人做完它的难度又多大,但是,转念一想,就算我没有完成整个工作,但是依然锻炼了我的能力。


于是,一晃眼,这五六年就这么过来了。我换了好几份工作,后来的工作完全和这些文档解析没有关系了,不过我自己的文档解析库也就这么一步一步慢慢的写起来了。期间,有进展的时候,曾经一度让我信心爆棚,有时候遇到越不过去的困难,也很灰心丧气,有时候一周能写上千行代码,也有时候好几个月都没动过代码。文档格式的复杂多样,可能的BUG也非常多,不单要实现正确性,也要考虑兼容性、健壮性,还要注意性能,代码结构的合理化,其实难度很大,工作量很多。我在自己的业余时间投入了很多精力,而这些,从来没有出现在我求职时候的简历里面。


其实,想想,有时候的自己真的是两线作战。文档格式解析,真的是偏的不能再偏的方向了,而自己的工作与此毫无关系。我都尽力做好,但也搞得自己身心俱疲。

不过,我工作上一直都算表现不错,时不时还能给人以惊喜。有一些大家都认为可能做不了,或者投入很大的事情,不太愿意做的事情,而我都比较乐观认为一定有办法,会努力去思考,乐于去尝试,往往有自己的意想不到的结果。天赋+努力+灵感,让我这个二流本科非科班出生的软件工程师在工作第6年的时候,进入了BAT。


到今天,我的库依然没有完成对于整个文档格式标准的支持和显示。只能说是部分完成。我也深刻认识到,仅凭一己之力要作出一个完整的库特别的难,期间也想找人一起做,不过没有人对重新开发一个格式的文档解析库有兴趣。所以,至今还是一个人再做。


文档格式这类的,其实是老的不能再老的领域了,互联网、移动化的浪潮、云计算、虚拟化、VR、AR、人工智能,这些新的技术和新的方向,其实让我蠢村欲动,激动不已,特别想用自己的业余时间去做一些有意思的事情。

Windows桌面的传统软件的生态其实是创新乏力的,而开源世界正变得越来越强大,很多开源库其实在今天,已经成为事实上的行业标准。

我足足用了5-6年的时间,才慢慢醒悟过来,这个世界不一样了。回头想想,这个世界还需要一个闭源的某某格式的文档解析库吗?其实不一定需要。如果要做,我要如何做一个不同的东西,就算是相同的东西,我应该用什么样不同的方式来做。


或许通过开源来推进一个项目的发展,会是一个很好的方式。只是对今天来说,有点晚了。我需要一个新的方向,新的项目。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值