对于很多初学编程的人来说,尤其是马上要入学的大一新生来说,选择哪门子编程语言实在是个痛苦的事。选择对了,毕业后顺利找到工作,完美走向职场;选择错了,毕业后受伤的才华无处安放,大学算是虚度光阴了。
前一段时间哈,我有个远房的亲戚,她家的小孩非要让我指导一下。然后就带了一本书来见我,看了一下封面,我惊呆了。
《易语言从入门到精通》。这是哪门子编程语言,我第一次见到!不敢怠慢,也担心亲戚说我孤陋寡闻,偷偷地搜了一下。易语言的创始人是吴涛,国内为数不多的推崇中文编程语言的程序员大佬。
郑重其事地说,我是个三观很正的人,绝没有半点虚情假意。但我实在不忍心看我这远房表弟误入歧途,毕竟易语言即便是入门了,甚至是精通了,将来也不一定能找到工作啊!
当做兴趣爱好学编程固然好,值得称赞。我这表弟虽然学习不咋滴,年纪轻轻,初中毕业,但据亲戚反馈,酷爱编程,酷爱计算机(也不确定是不是酷爱打游戏)。易语言这本书也是他自己在网上买的。
我有点担心地问他:“能看懂吗?”
表弟不假思索,信誓旦旦地回答:“能啊!”
我随手翻了翻这边书,发现书签已经夹在第 202 页,我天呐,真的有在看啊,看了将近一半了。
必须得负责任啊,我就对亲戚和表弟说,“你看,要不咱换个编程语言吧,比如说 Java!”
亲戚一脸惊愕,“你说哈?”
我只好无奈地将脸迈向我这表弟,只听他娓娓道来:“J-A-V-A!”
“哎呀,不错啊,真的私底下有研究!”我心中暗暗佩服起来了我这表弟。真看不出来,挺爱学的嘛。
“别看这本易语言了,当做兴趣学编程没问题,可咱学习是为了啥,就是为了以后能找份工作,虽然我说得比较俗气。如果说确实对编程感兴趣的话,买点 Java 方面的书读一读。”我语重心长地建议。
表弟深以为然地点点头。
之所以说这件事,就是想告诉同学们,努力固然重要,但选择必须要对,一旦选择错了,那很多努力都是白费。
那,这篇文章就是来给同学们提个醒,2020 年最牛逼的编程语言是什么?看完后你就知道该如何地去选择了。
先来个简要的概括:
Java,服务器端最好的编程语言
C++,最通用的编程语言
C,迄今为止,最值得信任的编程语言
Python,AI(人工智能)、机器学习方向最佳的编程语言
JavaScript,客户端最常用的脚本语言
C#,微软最强有力的面向对象编程语言
Swift,IOS 端最高效的编程语言
GO(Golang),可扩展的编程语言,谷歌出品
PHP,世界上最好的编程语言,不,最好用的 Web 编程语言
Ruby,数据科学方面最可靠的编程语言
为什么我会选择这 10 门编程语言?可不是我收了这些编程语言的钱,故意让它们上榜的,我是有足够多的理由的。
首先来看一下 TIOBE 排行榜,非常非常权威的榜单,下面这 14 个是活得比较久的,可以看得出,除了 SQL 换成了 GO,其他 9 门编程语言都在,并且长期霸榜。
活得比较久,意味着这门编程语言的生命力比较顽强,生态系统比较完备,它们属于丛林的王者——物竞天择,适者生存嘛。它们活得久,并且活得好,那就意味着还能活得更好更久,是这个道理吧?强者更强!
同学们尽管放心,我是负责任的——主要是这些编程语言的作者或者团队是负责任的,尽管开源 PHP 的官方团队已经在 2019 年底彻底解散了,但 PHP 依然很坚挺,很牛逼。
下面让我来详细地说道说道这 10 门编程语言。
01、Java
Java 其实是 C++ 的一个替代品,Sun 公司原本想开发一种比 C++ 更简单的面向对象编程语言,起初叫 Oak。结果没想到,随着时间的流逝,因为 Java 更容易学习,跨平台,就导致 Java 的普及程度远远地超过了 C++。
说句不那么优雅的话,就好像狗血剧里小三上位的桥段一样。
在 Java 虚拟机的帮助下,Java 可以无障碍的在 Linux、Windows、Mac-OS 等多种操作系统下自由地穿梭,这使得它在企业级开发中非常受欢迎。
Java 可以做网站开发、做安卓开发、做桌面级应用开发(Eclipse、NetBeans 等等)、做游戏开发(我的世界)。
来一发 Java 版的 Hello World 吧:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
02、C++
C++,从名字上就可以看得出来,它是 C 语言的亲儿子,是对 C 语言的扩展,旨在为 C 语言创造出面向对象的功能。
随着时间的发展,C++ 进一步发展为具有最直接的内存访问和完整硬件控制的通用语言。正因为 C++ 提供了最广泛的通用功能,就导致掌握起来有一定的难度。
C++ 可以在所有的平台上运行,并且可以有效地利用任何类型的硬件,这使得它可以在资源受到限制的平台上发挥最佳性能。
C++ 可以做游戏开发(星际争霸、魔兽争霸),办公软件(微软 Office)、操作系统(Windows)、关系型数据库(MySQL)、3D 引擎(Microsoft DirectX)、嵌入式开发。
来一发 C++ 版的 Hello World 吧:
#include<iostream.h>
using namespace std;
void main() {
cout<<"Hello World";
03、C
C 语言诞生于 1960 年,作者团队对它只有一个要求:必须得通用,并且能够有效地利用系统资源。因为在那个年代,每一个字节的内存都是昂贵的。
就像 C++ 那样,C 也可以直接访问内存并且控制硬件。C 和操作系统紧密相关,程序员必须亲自处理内存的分配细节,因此很难掌握。尽管 C 语言诞生的很早,但它仍然是目前最常用的编程语言之一。
C 语言的设计影响了众多后来的编程语言,比如说 C++、Ruby、PHP、Python、Java、C# 等等。
C 语言可以做嵌入式开发(单片机),基于嵌入式操作系统的应用软件、驱动程序,高性能的 Web 服务器(Nginx),常见的缓存数据库(Redis)、智能设备或者物联网设备中的操作系统(路由器、摄像头)等等。据说,反正能想到的,都可以用 C 做,就看会不会做。
来一发 C 版的 Hello World 吧:
void main()
{
printf("Hello World");
04、Python
Python 诞生于 1990 年,作者叫吉多·范罗苏姆(Guido van Rossum,Python 之父)。可以说,所有的编程人员都喜欢 Python,因为它的学习成本很低,但应用的等级很高,比如说当下非常有深度的人工智能、机器学习、数据分析。
Python 的语法简洁而优雅,社区也非常活跃。但有一说一,Python 岗位对学历的要求很高。
来一发 Python 版的 Hello World 吧:
print("Hello World")
05、JavaScript
JavaScript 是 Brendan Eich(只用了 10 天时间就设计出来了,牛逼)在第一次浏览器大战时为 Netscape(网景公司)开发的脚本语言。尽管一开始 JavaScript 的设计不够优良(毕竟时间短啊),但随着时间的推移,JavaScript 逐渐发展为一种高级的动态编程语言。
与其说我爱 Javascript,不如说我恨它。它是 C 语言和 Self 语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:‘它的优秀之处并非原创,它的原创之处并不优秀。’
以上 Brendan Eich 对 JavaScript 的评价,读完是不是感觉好气啊——竟然看不起自己的亲生儿子,哈哈。
有大佬曾说,“JavaScript 是互联网的胶带。”这个称赞非常高。HTML 负责结构, CSS 负责展示, 而 JavaScript 负责逻辑,网页前端编程的三剑客形成了。
ExtJS、prototype、JQuery 这些基于 JavaScript 的框架更是把 JavaScript 推向了巅峰。随着 Node.js 的出现,JavaScript 这种客户端的脚本语言竟然可以在服务器端立足了。
现在非常火热的前端框架,Vue.js 就是用 JavaScript 编写的,可以这说,想从事前端开发工作的话,JavaScript 是必学的!
来一发 JavaScript 版的 Hello World 吧:
<script>
alert('Hello World');
</script>
06、C#
一看名字,就知道 C# 和 C/C++ 有着亲密的关系,微软把 C# 设计成具有面向对象的,像 C 一样的编程语言。
最初,C# 被看作是 Java 的复制品,它们之间有着惊人的相似之处,比如说继承、接口,以及与 Java 几乎同样的语法,同样需要先编译后运行。随着时间的发展,以及微软为之付出的巨大努力, C# 沉淀了丰富的类库和框架,开发人员可以在此基础上快速地编写各种基于 .NET 平台的应用程序。
随着 Unity3D 的出现,跨平台的 C# 终于可以大展拳脚了,在开发游戏方面的优势巨大,比如说编译速度快、类库充足。除此之外,要知道 C# 背后的大山是谁,微软啊!
来一发 C# 版的 Hello World 吧:
namespace HelloWorld
class Hello
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
07、Swift
关于 Swift,直接来看苹果官方给出的介绍吧:
Swift 是一种强劲而直观的编程语言,它由 Apple 创造,可用来为 iOS、Mac、Apple TV 和 Apple Watch 开发 app。它旨在为开发者提供充分的自由。Swift 易用并且开源,只要有想法,谁都可以创造非凡。
Swift 是一种快速而高效的语言,能够提供实时反馈,而且可以被无缝集成到现有的 Objective-C 代码中,因此,开发者能够编写安全而可靠的代码,并在节省时间的同时,创造出非常丰富的 app 体验。
来一发 Swift 版的 Hello World 吧:
1
08、Go
Go 的亲爹是 Google,又是一家互联网巨头,可以想象它未来的潜力。
Go 语言的设计非常精致,用起来也非常简单,解决开发扩展方面的能力也比较出众。关键是学习起来也非常容易上手,这些优点促使 Go 语言的增长非常快。
国外如 Google、AWS、Cloudflare、CoreOS 等,国内如七牛、阿里等都已经开始大规模使用 Golang 开发其云计算相关的产品。 可以说前途非常光明。
来一发 Go 版的 Hello World 吧:
package main
import "fmt"
func main()
fmt.Println("Hello World")
09、PHP
PHP 用来开发 Web 应用程序的历史已经超过 35 年了,可以说是老资历了。尽管最近流行度在下降,但瘦死的骆驼比马大。
PHP 是最好的编程语言,这个梗是从哪里来的呢?显然不是吐槽大会!而是 PHP 的官方文档!
PHP is the best language for web programming, but what about other languages?
下图是 PHP 是最好的编程语言的确凿证据。
2010 年前后,PHP 在 Web 开发中一直处于王者的地位,尤其是 WordPress 等内容管理平台的流行,再加上“扎男”的 Facebook(PHP 开发的)的烘托,更加巩固了 PHP 在业界的地位。
我在 2013 年 底准备回洛阳的时候,还学习了三个月的 PHP。时隔多年,下面这本书还躺在我家的书架上积灰。
好了,来一发 PHP 版的 Hello World 吧:
<?php
echo "Hello World";
?>
10、Ruby
Ruby 最初是一种面向对象的脚本编程语言,但是随着时间的流逝,它逐渐发展成为一种解释性的高级通用编程语言。它的学习曲线相当平坦,非常有助于提高开发人员的生产力。
Ruby 的作者松本行弘曾说过一段非常经典的话:
“ 人们特别是电脑工程师们,常常从机器着想。他们认为:‘这样做,机器就能运行的更快;这样做,机器运行效率更高;这样做,机器就会怎样怎样怎样。’实际上,我们需要从人的角度考虑问题,人们怎样编写程序或者怎样使用机器上应用程序。我们是主人,他们是仆人。 ”
Ruby 正是基于这种理念产生的。网上有句话是这样说的,学习 Ruby on Rails 能让你看到 Web 框架顶端的景色。听说,GitHub 官网是通过 Ruby on Rails 开发的(不准确,不知道有没有同学可以确认下)。
JavaEye 的创始人范凯曾说:
在我们国内,Ruby 是个小众的编程语言,但在硅谷,Ruby 很火,被誉为云计算时代的 Web 编程语言。
当然了,之所以把 Ruby 放在最后一位,同学们一定懂我的意思。