摘要:回顾编程语言几十年来的兴衰起伏,仿佛也折射了整个信息产业的变迁沦亡,想要在技术的洪流里激流勇进,找准并学精一两门编程语言更加显得至关重要。

最近,TIOBE更新了7月的编程语言榜单,长年霸榜的C、Java和Python仍然蝉联前三位。万万没想到的是,R语言竟然冲到了第八位,创下了史上最佳记录。而且后续随着业内对数据统计和开掘需要的上涨,R语言热度颇有些势不可挡的架势。

然而作为程序员吃饭的工具,编程语言之间也造成了某种鄙视链,各大论坛里弥漫着剑拔弩张的氛围,众口难调。也难怪有很多初学者会有纳闷,为什么会有这么多编程语言,我到底应该学什么语言?

回顾编程语言几十年来的兴衰起伏,仿佛也折射了整个信息产业的变迁沦亡,想要在技术的洪流里激流勇进,找准并学精一两门编程语言更加显得至关重要。

编程语言的黄金时代

“有人不喜爱花括号,开发了Python;有人在一个周末设计了出了JavaScript;有人因为下班太无聊,于是创造了C语言”。对于编程语言的八卦轶事很多,但归根结底,一个编程语言的诞生肯定是需要的推动。

从面向机器的语言、面向过程的语言到面向对象的语言,编程语言的历史也经验了由繁到简。而互联网崛起的90年代,无疑也是编程语言的黄金时代。

套用维基百科的总结,“1990年代未见到有什么重大的翻新,大多都是以前构想的重组或变动。”

但就是这样的一个时代,却是各种编程语言大放异彩的开始。

彼时最支流的编程语言是贝尔实验室两位大佬创造的C/C++语言,互联网的载体计算机的基础设施,都是用这套语言来编写的,包含Linux操作系统、数据库、编译器等等。

这也奠定了C语言在IT畛域的位置,只有有计算机的存在,C/C++必定会有它们的一席之地。

但后来者居上的故事也随时在产生,这里的配角是曾经闭幕的今日巨头网景和Sun。

1994年,网景公布了一款真正的网络浏览器Navigator,但受限于过后的技术限度,Navigator更像是一个本地展现页面,不具备任何交互性能。巧的是,Sun公司在1995年正式向市场推出他们开发的Java(即Oak语言),特点是“一次编写,到处运行”,网景看中了这个潜力股,抉择与Sun结盟。

过后的Java能够作为脚本嵌入到网页中实现交互性能,即咱们所熟知的Java Applet。然而,网景认为Java作为网页脚本还是过于简单,程序员Brendan Eich就在10天内,集百家之长,开发了Javascript,现在所有浏览器前端库都须要基于JavaScript实现。

计算机的遍及、互联网的崛起,Web利用的呈现,Ruby、PHP等语言也悉数退场。

如知乎作者“强哥学堂”述,“这段时间,尽管没有发明编程语言,然而因为大量企业的参加,编程语言失去了空前的倒退,造成了明天的编程语言的根本状态。也使得软件开发越来越标准化,规模化。”

与此同时,还有一些“小众”的编程语言,正蓄势待发中,期待着“爆红”的机会。

苹果的搅局,生态很要害

2010年iPhone 4问世,乔布斯用智能手机改写了之后的互联网倒退轨迹。iOS和Android撑持起的智能手机市场,让挪动互联网成为相对的舞台配角。

苹果创始了一个全新的生态,作为iOS的利用开发语言,始于1984年的Objective-C从籍籍无名走向声名大噪,依靠各种iPhone、iPad应用程序的开发,Objective-C曾一度挺进TIOBE排行榜的Top 3。

不过,苹果在2014年的WWDC上推出了新的编程语言Swift,反对编写macOS/OS X、iOS、iPadOS、watchOS和tvOS的软件应用,并在第二年发表开源、反对Linux。

自此之后,Objective-C的市场份额逐年递加,从2014年的12%降落到2016年的1%。从下图也能够看出,新语言Swift从0开始,这几年始终处于稳定增长中,往年1月也冲进了TIOBE榜单的第九位。

尽管一门计算机语言从编译器、语法、根底库到在程序员的圈子中遍及,并不是短时间能够一蹴而成,但苹果依然以一己之力将Objective-C和Swift带入了编程语言的支流市场,由此可见,编程语言和一个产品的生态规模非亲非故。

微软和Visual Basic的关系也是如此,挪动互联网时代之前,VB已经依附可视化的开发环境,成为最煊赫一时的桌面开发工具,并一度领有300万开发者。而且借助Windows操作系统市场劣势,VB现在也始终放弃着居高不下的热度(遗憾的是,微软示意不打算持续演变 Visual Basic了)。

回到挪动互联网时代,另一边的Android抉择的是Java,随着Android营垒的越来越宏大,Java始终是TIOBE榜单上的第一,问题最差也能拿个第二。

一个编程语言的长盛不衰,除了它自身的劣势之外,其生态的建设也至关重要,毕竟用的人多了,也就能自成一派,这一点在Python的风行中体现的酣畅淋漓。

大数据+AI时代,Python一骑绝尘

当学Python要从娃娃抓起的口号开始风行时,编程语言从IT圈子进入到公众圈。

大数据、AI的时代,Python能够说是一骑绝尘,从数据分析、机器学习、Web开发到爬虫开发都能够在Python的帮忙下十分轻松的解决。

统计分析人员能够用Python解决数据爬取和剖析的问题,大学生能够用Python解决租房的问题……

最要害的是,Python的学习门槛比C++,Java都要低,简洁的语法、成熟的第三方库,即便是非程序员群体,也能在短时间内速成。

用于统计分析、绘图、数据挖掘的R语言也是如此,赶上了数据利用剖析的潮流,天然能从泛滥编程语言中怀才不遇。

针对往年7月榜单R语言创纪录的问题,TIOBE的 CEO Paul Jansen 明确示意有两大趋势起着关键作用:一是商业统计语言和软件包(如 SAS、Stata 和 SPSS)的时代曾经完结,大学和钻研机构采纳Python和R进行统计分析;二是与COVID-19相干的钻研须要进行大量统计和数据挖掘,所以易于学习和应用的统计编程语言热度回升。

再比方诞生于2010年,由Mozilla主导开发的Rust语言,其更加强调安全性、存储器配置、以及并发解决等个性。去年Facebook推出的区块链我的项目Libra,就抉择了Rust语言来构建,因为它足够平安。

Rust的排名也从2012年的200名开外,在最新一期TIOBE榜单上冲进了Top20。

咱们以互联网的崛起为分界线,能够看到各个编程语言的此消彼长,必然随同着新的产品和技术。适应新技术倒退的编程语言,即使时隔几十年,也能够从新焕发荣耀。而且随着开源社区的壮大,一门优良的编程语言能够博采众家之长,成长为后起之秀。

结语

如果你想以编程语言立生,倡议你先学习Java,而后是Python和C++,因为这三种编程语言,基本上能够解决咱们工作中遇到的大部分问题。

所以,无妨先试试华为云推出的Java开发全栈成长打算,让你0根底入门,构建Java技能体系,向全栈工程师迈进!

最初,如C#之父Anders Hejlsberg曾总结:如果要我概括在将来十年编程语言会变成什么样,首先,我认为编程语言应该变得更加“申明式”,咱们须要设法为语言引入一些如元编程,函数式编程的能力,同时可能也要寻找让用户有方法扩大语法,使他们能够结构畛域特定语言等等。不过总体来说我想强调的是,对于编程语言,新的范式则是“多范式”编程语言。

本文局部内容有参考以下文章:

1、《IT行业激荡30年->编程语言变迁史》

https://zhuanlan.zhihu.com/p/106808045

2、《计算机和编程语言的倒退历史》

https://blog.csdn.net/abc6368765/article/details/83990756

点击关注,第一工夫理解华为云陈腐技术~