写点什么

C、C++、Java 到 Python,编程入门学习什么语言好?

发布于: 2020 年 07 月 15 日

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


最近,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


点击关注,第一时间了解华为云新鲜技术~


发布于: 2020 年 07 月 15 日阅读数: 138
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
C、C++、Java到Python,编程入门学习什么语言好?