程序语言是一切计算机程序的载体,可谓是计算机技术的核心。
这个世界上有各种各样的程序语言,本合集将介绍尽可能多的、著名的程序设计语言。了解更多的程序语言(以及背后的哲学、生态)有助于技术选型。选择正确的程序语言让开发事半功倍。
本概述会介绍一些学习程序语言需要注意的东西,同时对程序语言的一些技术概念做铺垫。
应该关注什么?
大多数程序语言都可以完成广泛的编程任务,但各有所长,或者说各有侧重。那么,认识一个新的程序语言,应该关注什么?
语法特性
语法是一个程序语言最独特的东西。一些语言在语法层面可能提供了对某些功能的强化和支持。这样的支持或许可以看作是广义的 “语法糖”。我们来看一个例子吧:
// C++
for (int i = 0; i < n; i++) {cout << arr[i] << endl;
}
这段 C++ 代码遍历数组 arr
并逐个输出。以上这种写法几乎在所有的编程语言中是通用的。然而,有以下语法糖:
// C++
for (auto i : arr) {cout << i << endl;
}
// C#
foreach (var item in arr) {Console.WriteLine(i);
}
这两种写法(来自不同语言)也可以实现相同的功能,但是更方便一点。这就是语法特性可能提供的好处。
具体的 “语法特性” 分为哪些将在下文中继续探讨。
生态
一般来说,每种程序语言都会有一个 “标准库”,伴随该语言的 SDK 提供。标准库中的功能拆箱即用,不需要安装第三方库。然而标准库的能力毕竟是有限的,人们封装一些高级功能,就形成了第三方库。一个程序语言的第三方库,就是该语言生态的重要部分。
当然,语言生态除了第三方库(是否足够丰富),还有社区支持、某些特定硬件的支持等。但本合集主要关注第三方库的生态。
第三方库生态和标准库是紧密联系的。如果标准库的功能太少,可能造成第三方库生态的碎片化。这是因为一些常用的功能标准库中没有实现,于是各路大神纷纷出手,打造自己的第三方库,百家争鸣,但是很碎片化。
还有一些细枝末节,比如安装和管理第三方包是否足够方便等。
那么下面就谈谈需要关注的具体技术吧。