为什么国内创造不出一流的编程语言?
发明一个新语言的商业目的是什么?通常都是一个新的领域,你哪怕给旧的语言写library也解决不了问题。譬如说google发明go——微软的.net肯定是不可能用的,那他没有办法给google喜欢的C++/Java开发(语法糖那样的)库来解决问题,只能去发明go。因为写法很不一样,模拟不出来。因为语法是很容易影响一个程序员的精神面貌的。
谁叫VC++的co_await还没进标准是吧?要是那个时候C++有co_await,就没有go什么事了,好好写一个调度程序,语法模拟成channel一样就是一个下午的事情。语法是很重要的。
如果一门语言的语法不适合某个问题,那程序员基本不会去选择好好的解决这个问题,而是挑选在这个语言下最舒服的方法来解决这个问题,哪怕这个方法其实并不好。人就是普遍有这样的毛病,所以语法才很重要。因此在类似的情况下,只要满足我方政治目的和意识形态的所有语言都不好用,那就去发明一个新的。
那为啥国内就没有发明出好用的语言呢?因为我们都不去创造新领域,不会遇到这种问题的。不过至少我们已经慢慢创造出那么一两个流行的库了,这是一个好的现象。比如一个由日本的开发者创造的语言:Ruby,它并不只属于日本的,只是作者是日本人而已。
如果 Ruby 没有相关的社区,没有 Ruby on Rails (本体),一个光秃秃的语言,除了编程语言爱好者谁会去用?如果考虑到社区,那么编程语言更是百家饭混血儿。
开源是这个世界最有共产浪漫的事情了,不是有句话吗,共产主义者没有国籍,改一改,开源项目也不应该有国籍。
中国人在IT技术上是跟随者而非领导者,当然我们可以说是后发优势。后发优势的意思是:我虽然落后,但是我可以通过模仿借鉴快速的提升。甚至在某些基础设施的建设上,可以优先使用先进理论,没有历史包袱。
插一句,这个后发优势在语言的生态建设中非常明显,越是后发明的语言,他的生态建设阻力就约小,比如Perl的CPAN当时是最强的生态,别的语言还停留在拷贝代码的阶段。后来Ruby也效仿了Perl,最后成为新语言的标配。JavaScript语言在设计当初有很多的坑,后来为了填坑,但又为了发展,出了很多以其他语言来看很诡异的设计。比如" function* ",比如迟迟没有落地的模块和import
看看现在中国的手机支付我们已经走在了世界,那按照道理,我们应该在语言设计上后发优势呀?
后来者是落后的,资源,注意力有限,首先应该的是去把表面的短板,或者是核心的痛点给解决,只能集中力量先解决这些问题。比如粮食短缺,那么我们就应该先利用现有的技术,把粮食产量搞上去,质量的问题可以缓缓,因为让老百姓填饱肚子是第一步。没有汽车,我们先仿制,安全问题基本过关就行,因为生产大量依赖运输。
所以,在社会发展程度上,我们仍然有很多地方需要追赶发达国家。所以我们在基础学科的建设上,基本上都是为了国家目标而存在的,就是我们存在什么短板,核心难题,就要多花资源和力气去研究。越是基础的东西,研究周期和投入就越大。
这就好比有钱人家庭可以选择的东西很多,大可以花时间精力投入到艺术等对普通人价值不大的领域,而穷人则必须选择适用性广泛的领域,比如搬砖,程序员,首先保证自己的生存,买套房子什么的,进行财富的积累。
拿这两个类比计算机行业的话,大家可以看到,底层工具的发展,通常由两种组织完成,一种是学术领域的组织,另一种则是大公司,尤其是上市公司的研究机构去推动。在发达国家,学术机构本来就站在学术领域的前沿,加上良好的社会保障和福利,让精英们有很多精力和机会去尝试突破。
而发达国家的公司规模也是巨大的,往往在商业上已经在世界占据领先位置,规模是非常巨大的,此时,对于基础理论的一点点突破,都可以形成巨大的效应,比如一个算法的改进,可以节省或者多赚几个亿。或者基础工具的改进可以帮助他们极大提升自己的商业地位(比如浏览器),那么大公司就有非常大的动力去做基础设施的改进。语言工具是一种非常容易影响到上层应用的东西,如果抓住了标准,则就有非常大的话语权,所以Google搞V8,搞Go,其实都有着非常明确的商业目的。
反观国内的大公司,虽然有那么几个已经名列前茅,但论业务规模跟Google Facebook等,还是有些差距的。而且他们服务于国内的用户,更多的是在业务领域的创新,这方面的事情还远远没有结束。
综上所述,从国内的大环境、学术机构和公司的性质、目前的条件等各方面来讲,语言工具都不会是一个非常需要大力投入的领域。但是我们可以看到,也不是完全没有这方面的成绩。像鸟哥惠新宸参与开发了PHP7,易语言,按键精灵这些也同样是探索。
然而在我们的国家变成发达国家的那一天,语言工具会不会变成一个类似于圆珠笔的珠子那样的工具?相关技术已经非常稳定成熟,市场也非常固定,我们并不是没有这种技术,只是在全球化的时代,像圆珠笔芯都完全可以通过进口解决,自由开放的语言工具,为什么就非得自搞一套呢?
P.S. 过几十年的编程语言,是不是还是现在的方式呢?
几千年的学而仕则优,你说都在忙啥[酷拽]
我觉得易语言就很不错。IDE设计上有很多优秀的地方,但也有一些语言本身设计想法上的考虑不周。它真是非常适合汉语人群使用。可惜目前的状态已停止开发,虽有小更新,都是查bug补小角。没资金支持,收不抵支。x64编译、移动平台开发等已成遥远的梦。
首先,有使用汉字编程的"易语言",门槛低但功能较少,难堪大用。
其次回答这个问题,为什么中国没有出名的编程语言,因为通用的编程语言是英语。
再问为什么通用编程语言是英语,因为计算机发明在美国。
为什么计算机发明在美国,因为二战促进美国的科技更加先进。
为什么……算了不扯淡了,就是科技水平不高,没有制定标准的话语权。所以因为华为在5G参与了很多标准的制定,所以美国要把它弄死。
我认为中国的古人都去写诗词,研究文学文字、修辞,文言文去了,没有想着用语言控制机器设备,西方国家有些方面的意识,发明了计算机,编程语言,,按照中国的文字语法是能达到的汉语编程的
短期不赚钱,长期打水漂的也占大多数。不要批评什么浮躁,量子计算机量子通讯都被无数人骂成骗子,就知道中国人习惯于挣看得见的钱,对于未知,不肯投入的。
互联网先机已被美国人占了,别人几个巨头公司一合计,发布的规范就成了标准,国内程序员只有跟在屁股后面学。别说设计编程语言了,你看看编程语言的经典教材,国内都很少有。所以现在国家要不惜一切抢占人工智能制高点
国人分四,士、农、工、商。
学而优则仕。
工这个事,排第三。
并不是有语言就行,得适应生态,环境,发展,壮大,这个很难
你把"编程语言"看做语言,就会产生源于"博大精深"认知的"失落感"。如果将"编程语言"看最是一种生活中的"实物产品",就可以心平气和的接受了。这样的东西太多了。烦恼皆因强出头。