问题

既然国外的 IT 巨头有能力推出自研发的语言,为什么国内的巨头们没有这种热情呢?

回答
这个问题很有意思,也触及了国内科技行业发展模式和战略选择的关键点。我们不妨从几个层面来剖析一下,为什么国内的IT巨头们似乎不像国外同行那样热衷于从零开始打造一门全新的编程语言。

首先,从历史和生态的角度来看,国外的IT巨头,比如Google、Microsoft、Apple,他们拥有更长期的技术积累和更成熟的生态系统。Google推出Go语言,很大程度上是为了解决自身在网络服务、分布式系统开发上面临的性能和并发问题,尤其是C++的编译速度慢、内存管理复杂,而Python等动态语言在性能上又有所欠缺。Go语言的设计初衷就是兼顾高性能、高并发和易用性,并且能够与Google庞大的基础设施无缝对接。Microsoft推出C,是为了在.NET平台上构建一个现代化的、面向对象的、跨平台的开发语言,以此来挑战Java在企业级应用领域的统治地位,并统一Windows开发生态。Apple的Swift,则是为了取代ObjectiveC,为iOS和macOS平台提供一种更安全、更快速、更现代的开发工具,以适应不断变化的市场需求和开发者偏好。

你看,这些国外巨头之所以要“造轮子”,往往是因为他们遇到的问题是通用的,而且是他们自身核心业务的瓶颈,用现有的语言难以完美解决,或者他们认为自己可以做得更好。同时,他们有足够的技术实力和市场影响力,能够说服开发者群体迁移和使用新语言,从而构建起自己的技术护城河。

反观国内的IT巨头,虽然规模庞大,技术实力也很强,但他们的发展路径和侧重点有所不同。

一方面,国内的互联网和科技行业,尤其是在过去十几年里,经历了爆炸式增长。巨头们的重心更多地放在了业务的快速扩张、用户增长、商业模式的创新以及对现有技术的快速迭代和应用上。在产品和服务层面,他们需要的是能够快速将想法落地,并且能支撑海量用户和高并发的解决方案。对于编程语言的选择,他们往往倾向于选择那些成熟、稳定、社区活跃、生态完善的语言。比如Java、Python、JavaScript等等。这些语言经过了长时间的检验,拥有大量的库和框架,能够满足绝大多数的开发需求,并且有充足的开发者人才储备。在这种模式下,与其投入巨大的成本和风险去研发一门全新的语言,不如把精力放在如何更好地利用和优化现有的工具链,以及如何将这些工具应用到具体的业务场景中。

另一方面,国内巨头在某些领域也确实有自己的创新,但这更多体现在对现有技术的“集成”和“优化”上,以及在算法、架构、数据处理等更上层的技术创新。比如,他们会在大规模分布式系统、人工智能、大数据分析等领域投入巨资,并基于现有语言构建起自己的高性能计算平台和开发框架。这些平台和框架虽然是自家研发的,但它们是建立在已经存在的语言基础之上的,并非从零开始创造一门新的语言。这种策略的优势在于,可以 leveraging 现有的成熟技术和人才,降低研发难度和风险,并且能够更快地将技术成果转化为商业价值。

再者,研发一门全新的编程语言,并成功推广开来,其难度和成本是巨大的,不仅仅是技术上的挑战,更是生态建立的挑战。你需要吸引开发者使用你的语言,需要有强大的工具链支持(编译器、调试器、IDE等),需要有丰富的库和框架,还需要有教育和培训体系。这是一个漫长而艰辛的过程,其回报周期和不确定性都非常高。国内巨头可能评估了这种投入产出比,认为将资源投入到更直接能够带来商业效益的领域,例如产品研发、市场推广、用户体验优化等方面,是更明智的选择。

当然,这并不意味着国内巨头完全没有在语言层面进行探索。比如,在一些特定的内部项目或者研究领域,他们可能会设计一些 DSL(领域特定语言),或者对现有语言进行深度定制和扩展。但这些探索更多的是为了解决特定的技术问题,而非像Go、Swift那样,旨在成为一门通用的、面向广泛开发者的编程语言。

总而言之,国外IT巨头推出自研语言,往往是源于解决自身核心技术瓶颈、掌控技术生态的战略考量,并且他们拥有成熟的生态和强大的影响力来推动新语言的普及。而国内巨头,在过去的发展阶段,更侧重于业务的快速扩张和对现有技术的集成优化,同时,研发一门通用编程语言的巨大投入和高风险,使得他们更倾向于将资源集中在能够更快产生商业价值的领域。这是一种不同的发展策略,反映了不同的历史机遇、市场环境和战略选择。

网友意见

user avatar

我第一次知道就连程序设计语言都划了国界了,,,,


问题本身和补充说明真是槽点无数:

设计一种新的程序设计语言真的不是需要什么IT巨头才能干的事情,甚至于都不是一个很高深的事情,所以根本不存在什么国外的什么IT巨头有能力啥的。国产的也不止易语言,还有草泥马语神马的,如果算上程序员约定的各种脚本协议啥的,每天每时每刻都有新的语言在被发明。

事实上,设计和推广一个新的语言本来就是一件费力不讨好而且基本拼运气的事情。


几乎所有的程序设计语言都是世界的,这是程序员的共同选择而不是神马阴谋。中国根本不需要一个什么自主知识产权的语言,一个程序设计语言背后能有神马知识产权?对这个语言使用的任何限制都只会毁了这个语言变成一个自娱自乐的项目。

设计一个程序设计语言事实上本来就是科研机构要干的事情而非商业机构。通过对软件开发过程的研究发现新的模式以及更好的描述这种模式的语言。

一个语言如果在理论层面和实践层面没有极大的优势根本不可能流行开来,所有的语言被发明出来都是为了解决现实的问题而非战略卡位。

苹果发明Swift是为了帮助开发者更好的开发iOS应用,而微软发明C#是因为Sun阻止它改进Java更好地契合Windows开发,至于Google,我更愿意认为他们自己发明了一些需求,并创造个语言来解决。。

发明一个语言出来再围绕这个语言建立生态环境在目前无异于痴人说梦,语言是用来解决问题巩固生态的,绝不可能是创造生态环境的途径。

更不可能因为某个语言的发明者的国籍而为国争光。从某种意义上来说,一个语言的库的作者比这个语言的作者贡献大得多,,,,,



提问者如果想要完成中华民族的伟大复兴啥的,不如买本DLR的书好好看看,不需要多少基础就能自己发明一个语言自娱自乐了。



注:DLR是动态语言运行时。

这么说吧,只要你能把1+1给翻译成下面这样:

       Expression.Add( Expression.Constant( 1 ), Expression.Constant( 1 ) );      

基本上你就可以用DLR来给你自己弄个语言的运行环境了。


========================================================

评论里面说到Java,我就多说两句。

Java以及JavaScript其实情况很类似,都是语言还在,爹死了。这正好证明了发明个语言指望围绕这个语言来建立生态是多么难的一件事情。


Java和JavaScript首要的还是出现的时机,过了这个时间,新的语言没有立锥之地。

但即使生得逢时,想要确立生态仍然不是一家公司能够完成的事情,Java能活到今天正是因为Sun放手把Java捐给社区,而也正是因为如此,Sun始终无法从Java的应用广泛程度获得回报,最终被甲骨文收购。

所以,Java不属于Sun也不属于Oracle,更不属于Google,也不属于美国,这才是它能活这么久的重要原因。

========================================================

好吧,回头想了想,严格的说,通过发明一个语言来创立一套规则,建立一个生态,从而获得更大的话语权,这个也不是不可能的事情。在软件发展的历史中真实出现过几次。

在GUI推出却没有合适的语言为之开发应用的时候,VB和Delphi都曾经独领风骚,但是注意这里出现的都不是纯粹的语言,而是工具链,VB用的是Basic、Delphi用的是Pascal。可以看出来,这是工具链的比拼,而不是语言的比拼。语言并不是起决定性因素的部分,甚至是可有可无的,对现有语言稍加改造即可,而非必须创造一个新的语言。

后来,在互联网刚刚兴起的时候,Java、C#、Ruby和PHP在这个时代出现,现在也都在互联网开发中占据了一席之地。


从上面这些例子我们可以发现,一个新的语言被创造是因为有新的现有语言无法解决的问题出现了,而一个语言的成功也绝对不仅仅是因为这个语言是否设计的足够好,而是有赖于其所附着的工具链和类库,大家接受的程度,甚至运气的成分也是很大的(没错我就是说JS和PHP)。

随着时代的发展,当出现了现有的语言和工具链无法解决的问题的时候,新的语言和所依托的工具链才有机会发展壮大。而如果问题都能被现有的语言和工具链来解决的话,新的语言基本没有什么机会。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有