假如,有一位代码天才,他有一个梦想,就是靠自己的双手写出一个Windows系统。求:他需要花多久才能写完?
以Win10为例。据估计,Win10里至少有2700万-5000万行代码。
那写一行代码需要多长时间呢?我们要先假设这位“编程天才”掌握了所有必需的语言,技术,库,协议,标准,向后兼容性需求等等。
如果设码代码速度为每小时30行,那么写出2700万-5000万行代码就需要90万-160万小时。当然,这也是在产出的代码里没有bug的前提下计算出的数字。
但是没有bug是不可能的,如果把处理bug的时间算进去的话(据估计,每1000行代码里会出现15-20个Bug,也就是说在你写的Win10代码里,会出现 40万-100万个Bug),就算是天才,你也需要13,500-33,333小时的Debug时间。
正常情况下,我们会反复修正直到bug数减少到0。但这里我们只迭代一次就行了。所以,写完Windows的总时间在913,500-1,699,999小时之间,换成年的话,就是104.2年-193.93年。
对了,上面的时间都没有算进休息/睡觉/吃饭消耗的时间。如果我们严格按照每日八小时工作制来算,那么这个数字就会上升到312.6年-581.8年。其实,我们还忽略了编译时间和机器故障。
如果这位天才从出生的时候就被上帝赐予了知识、沟通技能和控制身体的能力,可以立刻开始码代码,他只需要活到600岁就可以写出Windows了。
但是开发Windows不仅仅需要写代码。
Windows 10拥有大约40-45个Feature团队,每个团队里有大约32个工程师(这还不包括测试者,产品经理等等)。
它从大约2013年开始开发,到2015年7月末正式上线,开发时间在两年半左右。
假设先前的代码库重写了50%,这就意味着我们还需要另外两年半来写之前的代码。
那么我们就可以进行计算:5年*32名工程师*40个团队,相当于6400年的开发时间。
这还不包括系统测试,构建实验室,用户界面开发,全球化/本土化工作等等。
所以,这个问题就像在问:我是一个熟练的工程师,我要花多久才能建好长城?
领取专属 10元无门槛券
私享最新 技术干货