蔚蓝海岸实验室。
“……我们的目标是将Azure-C推广出去,成为将来编写手机应用程序的主要编程语言,非常实用,Azure-C写成的程序基本与其原始码大那么一丢丢,它完全兼容标准C语言。”
蔚蓝海岸实验室的一处室内大厅,六百多个工程师汇聚一堂,都在听着罗晟的讲述,Azure-C语言已经开发完成有三个月了,它将承载AOS操作系统和手机应用程序的编写。
“对于所有的编程语言,最终目的就两种:一是提高硬件运行效率,二是提高程序员开发效率。”罗晟看着几百名工程师说道:“遗憾的是,二者不可兼得,你只能选一样。在提高硬件运行效率方面,C语言没有竞争者,无敌。例如C语言用数组inta[3],编译后变成[基地址 偏移量]的方式,对于计算机来说,没有任何一种方法比该方式的存取方法更快的了。”
在现场的白朗旋即发言道:“虽然C语言已经把硬件的运行效率压缩到了极致,但这种设计思路带来的问题是易用性和安全性的缺失,对于错误的偏移量C语言却不闻不问。”
说着白朗一脸无奈的摊了摊手。
罗晟点头笑道:“没错,这就是C语言中臭名昭著的越界问题,C语言唯一目的就是快,要么飞速运行,要么飞速崩溃。它只关心程序飞的高不高,从不关心程序员飞的累不累。这个世界上是不存在‘开发容易,运行又快’的语言,毕竟易开发来源于对底层一层层的包装。”
说到这里罗晟顿了片刻补充道:“现在有一个流行的疑问是……可不可以发明一种同样快的语言,但没有C语言那么多的坑?答案是可以,而且已经有这类语言,名字就叫[D语言],五年前一家叫DigitalMars的公司发布的,意图改进C 语言,然而并没有流行起来。”
罗晟继续侃侃而道:“因为要面临一个很基本的现实问题,现在有太多太多超级多的C代码,他们基本都在正常工作,Linux、Window、MacOS、Unix等等,这些操作系统的内核都是C,我们的AOS系统内核也是C。”
“我虽然不确定C在Window中所占比例有多少,但我相信微软的工程师不会二到去用C#全部改写一个操作系统的内核,想让这些人去用你的全新的语言,这就有点很傻很天真了。”
“这就好比你是IT理工男,现在让你改行去写小说,你愿意吗?想好了?那意味着你前面累积的经验和知识和付出全都一文不值,在IT界你是大神,但写小说你是小白,你要重新学习怎么去写小说。”
“所以你肯定不愿意,道理是相通的,D语言并没有流行起来,开发者宁愿不断优化C,这是生态问题,风口已经被C占了,你想另起炉灶取而代之,不亚于重启整个人类互联网基础设施,这可能吗?”
“所以说那些什么中文编译都是忽悠不懂行的投资人,骗他们钱的,中文编译其实也有啊,貌似还不错,可都不用你有什么办法?”
“而且有些代码根本就不能改,一个简单的5个CPU飞控软件编写完毕,要对它进行一种全覆盖测试,如果其中一个或多个CPU坏了会发生什么?可以做个简单的数学组合。测试完毕就会发现,别说重写了,就算加个注释都不行。”
“那我们为什么要坚持用C呢?未来,当不久的将来伴随着嵌入和即时系统的兴起,人工智能、机器人、自动驾驶等等,这些看起来遥远但未来可期,而这些都是C语言的核心应用,而且在这种应用层面上,C语言没有竞争者。”