编程语言
编程语言是人与计算机沟通的桥梁,从机器语言到高级语言,不断朝着更抽象、更高效的方向演进。
发展简史
1950s Fortran, Lisp ← 早期高级语言
1960s COBOL, BASIC, C ← 结构化编程
1980s C++, Objective-C ← 面向对象兴起
1990s Java, Python, PHP, JavaScript, Ruby
2000s C#, Go, Swift, Kotlin, Rust, TypeScript
2010s Dart, Zig, Mojo ← 新时代语言查看教程
以下语言已有详细文档,点击可查看:
- Java — 跨平台的面向对象语言,企业级应用首选
- Java 进阶 — Java 核心进阶(集合、多线程、JUC、JVM、NIO、Lambda 等)
- JavaScript — Web 前端核心语言,浏览器 + Node.js 双端运行
- Python — 优雅简洁的通用编程语言,数据科学与 AI 首选
其他主流语言简史
C 语言(1972)
Dennis Ritchie 在贝尔实验室开发,用于重写 Unix 操作系统。C 语言是系统级编程的基石,影响了几乎所有后来的语言(C++、Java、C#、Go、Rust 等)。
应用领域:操作系统、嵌入式、驱动开发、编译器
C++(1985)
Bjarne Stroustrup 在贝尔实验室以 C 为基础加入面向对象特性,最初称"C with Classes"。C++ 在保留 C 的性能优势的同时,提供了类、继承、多态、模板等现代编程特性。
应用领域:游戏引擎、浏览器、高频交易、图形图像
C#(2000)
微软为 .NET 平台设计的语言,由 Anders Hejlsberg(Turbo Pascal / Delphi 作者)主导。吸收了 C++ 和 Java 的优点,是 Windows 生态的核心开发语言。
应用领域:Windows 桌面、Unity 游戏、企业应用
Python(1991)
Guido van Rossum 在荷兰国家数学与计算机科学研究所开发,强调代码可读性和简洁性。设计哲学:"There should be one — and preferably only one — obvious way to do it."
| 版本 | 时间 | 里程碑 |
|---|---|---|
| Python 2.0 | 2000 | 引入列表推导、垃圾回收 |
| Python 3.0 | 2008 | 不兼容 2.x,统一 Unicode、print 改为函数 |
| Python 3.12 | 2023 | 类型语法增强,性能持续优化 |
应用领域:数据科学、AI/机器学习、Web 后端、自动化脚本
Go(2009)
Google 为解决大规模分布式系统开发效率而设计,由 Robert Griesemer、Rob Pike、Ken Thompson(Unix 和 C 语言作者之一)共同设计。简洁、并发原生、编译快是它的三大特点。
应用领域:云原生、微服务、容器工具(Docker / Kubernetes)、CLI 工具
Rust(2015)
Mozilla 开发的系统编程语言,核心目标是 内存安全无需 GC。所有权(Ownership)系统在编译期保证内存安全,避免空指针、野指针等问题。连续多年被评为"最受开发者喜爱的语言"。
应用领域:系统工具、WebAssembly、嵌入式、游戏引擎
TypeScript(2012)
微软开发的 JavaScript 超集,在 JS 基础上加入静态类型检查。2016 年 Angular 2 采用后迅速普及,目前已成为大型前端项目的标配。
应用领域:大型 Web 应用、Node.js 后端
Swift(2014)
Apple 为替代 Objective-C 而开发,支持 Playgrounds 交互式编程、可选类型、协议扩展等现代语言特性。Swift 6 进一步增强了并发安全和所有权模型。
应用领域:iOS / macOS 应用开发
Kotlin(2016)
JetBrains 开发的 JVM 语言,与 Java 100% 互操作,2017 年被 Google 宣布为 Android 官方开发语言。相比 Java 更简洁(空安全、扩展函数、数据类等)。
应用领域:Android、JVM 后端(Spring Boot 支持 Kotlin)
Dart / Flutter(2011 / 2018)
Google 开发的 Web 语言(Dart),后来配合 Flutter 框架成为跨平台移动/桌面/Web 开发的强力方案。Hot Reload 是其最大卖点。
应用领域:跨平台 App(Flutter)、Web
Zig(2016)
新一代系统编程语言,定位是替代 C。没有 GC、没有隐式控制流、编译期完全计算,目标是成为"更靠谱的 C"。手动内存管理 + 编译期反射是核心特性。
应用领域:系统编程、嵌入式、高性能工具
编程范式
| 范式 | 说明 | 代表语言 |
|---|---|---|
| 命令式 | 一步步告诉计算机怎么做 | C、Fortran |
| 面向对象 | 封装、继承、多态 | Java、C++、Python |
| 函数式 | 纯函数、不可变数据、高阶函数 | Haskell、Scala、Clojure |
| 逻辑式 | 用规则和事实推导结果 | Prolog |
| 多范式 | 混合多种范式 | JavaScript、Python、Kotlin、Rust |
编译型 vs 解释型
| 类型 | 过程 | 特点 | 代表 |
|---|---|---|---|
| 编译型 | 源码 → 机器码 → 执行 | 速度快,跨平台需重新编译 | C、C++、Go、Rust |
| 解释型 | 源码 → 逐行解释执行 | 跨平台好,速度慢于编译型 | JavaScript、Python、Ruby |
| JIT 编译型 | 源码 → 字节码 → JIT → 机器码 | 兼顾跨平台和性能 | Java、C#、JavaScript (V8) |
如何看待编程语言
- 没有银弹 — 每种语言都有其擅长和不擅长的领域,选型看场景
- 语言只是工具 — 算法、数据结构、设计模式、架构能力才是核心竞争力
- 多语言视野 — 学习不同语言的设计理念(如 Rust 的所有权、Go 的并发原语)能帮助写出更好的代码
- 基础最重要 — C / 操作系统 / 计算机网络 / 数据库 — 这些知识在任何语言中都适用