前言

为什么有这么多编程语言?该学哪个?本章带你从"语言演化"到"编程范式"到"如何选择",建立对编程语言全景的理解。结论先行:没有最好的语言,只有最适合场景的语言。

这篇文章会带你学什么?

学完这章后,你将获得:

  • 理性选型能力:面对"学什么语言"时,能根据项目需求做出判断,而不是盲目跟风
  • 范式理解深度:理解"面向对象"、“函数式编程"是不同的思维方式,而不仅仅是语法差异
  • 历史演进视角:看到 70 多年语言演化——从手写 0 和 1 到自然语言生成代码
  • 后续学习基础:为理解新语言设计理念、技术选型决策打下基础
章节 内容 核心概念
第 1 章 语言演化 从机器语言到高级语言
第 2 章 编程范式 命令式、面向对象、函数式
第 3 章 语言选择 场景驱动的选型方法

0. 人类如何和计算机"说话”?

想象你要和一个只懂二进制的机器人沟通:

  • 直接打 0 和 1 — 最原始,效率极低,一个 0 写成 1 就全错了(机器语言)
  • 用助记符代替MOV AX, 110110000 00000001 好认多了(汇编语言)
  • 用接近自然语言int sum = 1 + 2; 人类可以直接读懂(高级语言)

编程语言就是人类与计算机沟通的桥梁,70 多年来一直在朝着"更接近人类思维"的方向进化。


1. 编程语言的演化

👇 动手点点看:探索编程语言从 1940 年代到今天的演化历程

💡 一句话总结

编程语言的演化趋势:越来越接近人类思维,越来越安全,越来越高效。从手写 0/1,到汇编助记符,到 C 的结构化编程,到 Java 的面向对象,再到 Rust 的内存安全——每一代语言都在解决上一代的痛点。


2. 编程范式:思考问题的方式

编程范式不是语言特性,而是思维方式——就像写作有诗歌、小说、论文不同的文体。

2.1 命令式 — “一步步告诉计算机怎么做”

  int sum = 0;
for (int i = 0; i < n; i++) {
    sum += arr[i];
}
  

2.2 面向对象 — “把数据和行为封装成对象”

  class Dog:
    def __init__(self, name):
        self.name = name
    def bark(self):
        print(f"{self.name} says woof!")
  

2.3 函数式 — “用纯函数组合,不修改状态”

  sum = foldl (+) 0
-- 相同输入永远产生相同输出
  

2.4 声明式 — “只说做什么,不管怎么做”

  SELECT name FROM users WHERE active = true
-- 数据库自己决定怎么查最快
  
💡 实际开发中

现代语言大多是多范式的。Python 既支持面向对象,也支持函数式;JavaScript 也一样。不用纠结"哪个范式最好",而是根据问题选择最合适的方式。


3. 类型系统:数据的交通规则

强类型 弱类型
静态 Java, Rust, TypeScript — 最安全 C, C++ — 高效但要小心
动态 Python, Ruby — 灵活且安全 JavaScript, PHP — 灵活但易出错

关键问题"1" + 1 等于什么?

  • JavaScript(弱类型)"11" — 悄悄帮你转了
  • Python(强类型)TypeError — 让你自己想清楚

想深入了解类型系统?→ 类型系统入门 | 编译原理入门


4. 编译型 vs 解释型

编译型 解释型 JIT
过程 先全部翻译,再执行 边读边执行 先解释,热点再编译
速度 最快 较慢 中等
调试 需编译等待 即时反馈 即时 + 优化
代表 C, Rust, Go Python, Ruby Java, JavaScript

5. 如何选择编程语言?

按场景选择

场景 推荐语言 理由
Web 前端 JavaScript, TypeScript 浏览器只认 JS
Web 后端 Go, Java, Python, Node.js 生态成熟
移动开发 Swift (iOS), Kotlin (Android) 官方推荐
AI / 数据 Python PyTorch、Pandas 全在 Python
系统编程 C, Rust 直接操控硬件
云原生 Go, Rust Docker/K8s 都是 Go 写的

学习路线建议

  1. Python — 语法最简单,AI 时代入口
  2. JavaScript — Web 开发必备,前后端通吃
  3. TypeScript — 给 JS 加上类型系统,体验静态类型
  4. Go 或 Rust — 理解编译型语言和底层概念

6. 总结

📚 核心要点
  1. 语言演化:从机器语言到高级语言,越来越接近人类思维
  2. 编程范式:命令式、面向对象、函数式、声明式,各有适用场景
  3. 类型系统:静态/动态、强/弱,影响安全性和灵活性
  4. 运行方式:编译型快,解释型灵活,JIT 兼顾
  5. 没有银弹:根据场景选语言,而不是追求"最好的语言"

下一步学习

Last updated 26 Apr 2026, 03:21 +0800 . history