为什么有这么多编程语言
打开招聘网站,你会看到 Python、JavaScript、Java、C++、Go、Rust……几十种语言。为什么不能统一用一种?
因为不同语言设计目标不同:有的追求运行快,有的追求写得快,有的适合网页,有的适合系统。没有「最好」的语言,只有「适合某个场景」的语言。
理解编程语言的分类,你就能看懂技术选型的逻辑。
两大分类:编译型和解释型
程序是用语言写的,但 CPU 只懂机器码(0 和 1)。把人写的代码翻译成机器能跑的形式,有两种方式:
编译型
写完代码后,先用「编译器」整体翻译成机器码,生成可执行文件。之后运行这个文件,不用再翻译。
代表语言:C、C++、Rust、Go。
特点:
- 运行快(已经翻译好,直接跑)。
- 发布简单(给别人一个可执行文件就行)。
- 开发慢(改一行代码要重新编译整个项目)。
解释型
运行时由「解释器」逐行翻译逐行执行,不提前编译。
代表语言:JavaScript、Python、Ruby。
特点:
- 开发快(改完直接跑,不用等编译)。
- 跨平台(只要有对应的解释器,哪都能跑)。
- 运行比编译型慢(每次运行都要翻译)。
JavaScript 是解释型:浏览器内置 JS 引擎,直接解释执行网页里的脚本。Python 也是解释型。
按范式分类
编程语言还可以按「编程风格」分类:
- **面向对象语言**:以「对象」为核心组织代码。Java、C#、Python。
- **函数式语言**:以「函数变换」为核心。Haskell、Clojure。
- **多范式语言**:支持多种风格。JavaScript、Python、Rust 都是多范式。
现代项目常常混合使用,不是非此即彼。
按应用领域分类
- **Web 前端**:JavaScript(唯一能在浏览器跑的语言)、TypeScript。
- **Web 后端**:JavaScript(Node.js)、Python、Java、Go。
- **移动开发**:Swift(iOS)、Kotlin(Android)、Dart(Flutter)。
- **系统编程**:C、C++、Rust。
- **数据科学**:Python、R。
- **游戏开发**:C++、C#。
选中一个就够用
作为小白,不需要学所有语言。选一个生态成熟、社区活跃的入门:
- **JavaScript/TypeScript**:做网站必学,前后端通吃。本站用的就是它。
- **Python**:语法简单,适合入门,数据科学和 AI 用得多。
学好一门后,第二门很容易上手——因为编程思想是通用的,变的只是语法。
编译型 vs 解释型对比
| | 编译型 | 解释型 |
|---|---|---|
| 速度 | 快 | 慢 |
| 开发 | 慢(要编译) | 快(直接跑) |
| 发布 | 给可执行文件 | 给源代码 + 解释器 |
| 调试 | 难(编译后难看) | 易(逐行执行) |
| 代表 | C、C++、Go | JS、Python、Ruby |
理解这个分类,你就能看懂 AI 说的「这是编译型语言」「需要 Node.js 运行时」是什么意思。