现在开始明白Oracle为什么会收购MySQL。Oracle数据库代码已经烂掉了,维护人员只愿意在原有代码基础之上做勉强的小修小补,只修补特别严重的bug,只要测试没有特别重大的bug就可以重新打包发布。因为代码量太过庞大,随便改一个核心重要的参数会出现更多未知的bug,历史包袱过重,重构Oracle核心的风险太大,成本太高,重构阻力远大于动力。把自己商业帝国最坚固的城墙全部推倒后重新加固,这个世界上估计没人做的到,即使是强人LarryErrison也没有那么大的魄力和勇气。而MySQL虽然也是基于C但是没有Oracle那么多复杂而强悍逆天的特性和功能,没有Oracle那么重的历史包袱,而MySQL隐隐有压倒Oracle的优势,而收购MySQL后可以自己操控MySQL的未来,把MySQL的优秀特性无障碍移植到Oracle上而不会出现未来官司缠身的局面(自Redhat收购CentOS后曾经风光无量的CentOS几乎变成了一个残废就可以窥见MySQL的未来,虽然出现不少如MariaDB等不少MySQL变种,但其性能还是没法和曾经的MySQL比)。随着大数据时代的到来,Oracle也没办法应付那么多复杂的应用场景,其局限也越来越明显,但Oracle公司估计也没有那么大的魄力重构内核及其核心功能,其竞争力可能会越来越弱,。
再优秀的开源项目在闭源大佬强势野蛮的商业逻辑下显得那么的渺小和微不足道,存粹的开源文化是一种过于理想化的文化,太过弱势,还无法面对在商业资本运作下强势的闭源文化的冲击,结果只有沦为闭源文化的附庸和补充。理想国的思想还是没法抵挡住资本主义的冲击。
代码量越来越大,代码自身运行的逻辑结构越来越复杂,Linux内核也遇到类似的困境,也难怪不少Linux内核开发的大牛呼吁用rust取代c重构内核。由此可以窥见Windows未来的命运。
现在为什么有那么多优秀的基于C,C++语言的代码项目面临代码烂掉,无法维护的困境?
1.代码历时太长,bug越来越多而debug所需的精力和时间成本越来越高。
2.随着时代的发展,C系语言自身的缺陷也越来越明显。