为什么我们不再发明编程语言了?
上个世纪,数百种编程语言被发明出来,但是进入21世纪,当我们都进入互联网时代时,只剩那么寥寥几个了。如果你翻一下TIOBE得编程语言排行榜,就会发现20年来,上蹿下跳的就是那几张老面孔:C , Java, Python ,C++ , C#, JavaScript......https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2025%2F0409%2F7aa0e5b8j00sufepu007xd200u000c2g00it007k.jpg&thumbnail=960x2147483647&quality=75&type=webp80年代后期,平均每个月就会出现一种新语言,现在,平均每年出现一个就不错了。我有点好奇,就去扒了扒其他编程语言的出现时间,把他们分成了分为中生代、新生代和老年代。先看中生代的家伙们,20多岁,30出头,正是编程的中坚力量。Python : 1991Visual Basic : 1991PHP : 1995Ruby : 1995Java : 1995JavaScript : 1995C# : 2000(1995年还真是神奇的一年啊,几位大佬同时诞生。)再看这些老前辈,尤其是C语言,老而弥坚,屹立50年不倒,把系统级编程吃得死死的。Lisp : 1958COBOL : 1959Pascal : 1970C : 1972Objective-C : 1984C++ :1985Object Pascal : 1986新生代则活力无限, 锋芒毕露,对老家伙们虎视眈眈。Go : 2009Rust : 2010Kotlin : 2011Elixir : 2011Julia : 2012TypeScript : 2012Swift : 2014新生代只是它们想挑战中生代的地位,抢班夺权,希望渺茫。主要有这么几个原因:1. 编程范型没有变化还是老三样:面向过程,面向对象, 函数式。在冯诺依曼架构下,恐怕也不会出现什么新的范型了吧。现在TIOBE排行前十的中生代语言完美涵盖了这些范型,例如Java,刚诞生的时候支持面向对象,但是后来补上了函数式这一课。像Python、JavaScript一开始就支持面向对象和函数式编程。2. 开发领域开发领域有桌面开发、Web开发、系统级软件开发、后端开发,数据分析,人工智能等。中生代的编程语言不但这些领域看得死死的,还互相扩展,侵入对方的领地。其中最典型的就是JavaScript这个屌丝的逆袭,一开始不过是寄居在浏览器中的一个小语言,后来通过V8, Node.js竟然进入了后端,还用Electron蚕食桌面开发!Python也是,本来用它写点儿小工具,开发点儿小网站,后来竟然傍上了人工智能这个大款,从此发达了。3. 生态系统Java , Python, JavaScript,C , C#等经过这么些年的发展,哪个不是积累了海量的类库,哪一个没有庞大的生态系统?想动它们,没有一场革命是绝对不行的。新语言即使很好,但是看看那么多现有的代码,谁敢轻易切换?4. 时代的红利Java遇到了互联网,Python遇到了大数据和AI, JavaScript遇到了前端开发, 时代的机遇让它们爆炸式发展。Go的运气不错,遇到了云计算,强势崛起。其他几位想要出头,那是相当难了。我曾经悲观地认为:主流的编程语言已经都被发明出来了!以后新出现的语言都是改进,改良,没法闹革命翻身了。举个不恰当的比喻, C, Java, Python, JavaScript,C# , C++, PHP 就像现在的西方七国集团,牢牢占据着最大的市场,然后只要有新人冒出来,就会受到无情的打击。就像现在中国想技术突破,被美国和西方不择手段地打压一样。但是也并不绝对,就像中国一定要向上突破一样,我看到在系统编程领域,也有一个新星冉冉升起:Rust。https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2025%2F0409%2F726c8a53j00sufepu0013d200u000f0g008j0049.jpg&thumbnail=960x2147483647&quality=75&type=webp
Rust虽然没有发明新东西,但是却融合了多种语言的特性和多种编程泛型,它不但包含了上面说的三大编程范式,还集结了泛型、底层内存管理、所有权等特性,可以说是一个集大成者(这也恰恰是它学习曲线陡峭的原因)。Rust是一门同时追求安全、并发和性能的现代系统级编程语言,有望挑战C语言的地位。当然,编程语言少,对程序员来说是好事, 程序员可以少学一点东西,少掉几根头发。全文完,觉得不错的话点个赞或者在看吧!
页:
[1]