Skip to content

程式語言概念:範式、演化與選型 ​

前言

為什麼有這麼多程式語言?該學哪個?本章帶你從「語言演化」到「程式設計範式」到「如何選擇」,建立對程式語言全景的理解。結論先行:沒有最好的語言,只有最適合場景的語言。

這篇文章會帶你學什麼?

學完這章後,你將獲得:

  • 理性選型能力:面對「學什麼語言」時,能根據專案需求做出判斷
  • 範式理解深度:理解「物件導向」、「函式式程式設計」是不同的思維方式
  • 歷史演進視角:看到 70 多年語言演化
  • 後續學習基礎:為理解新語言設計理念打下基礎
章节內容核心概念
第 1 章語言演化從機器語言到高階語言
第 2 章程式設計範式命令式、物件導向、函式式
第 3 章語言選擇場景驅動的選型方法

0. 程式語言的進化 ​

  • 直接打 0 和 1 — 最原始,效率極低(機器語言)
  • 用助憶符代替 — MOV AX, 1(組合語言)
  • 用接近自然語言 — int sum = 1 + 2;(高階語言)

1. 程式語言的演化 ​

Programming Language MapEvolution · paradigms · type systems · language comparison
1940s
Machine language
Binary
1950s
Assembly and early high-level languages
AssemblyFortranLispCOBOL
1970s
Systems programming era
CPascalSmalltalk
1980s-90s
OOP and the Internet
C++JavaPythonJavaScript
2000s
Modern languages
C#GoScalaRuby
2010s+
Next-generation languages
RustSwiftKotlinTypeScript
2000sModern languages
Language design focused more on developer productivity and safety. Go was created for cloud-native infrastructure.
GoConcurrency-friendly and used to build Docker and Kubernetes
RubyRails brought a major productivity boost to Web development
Core idea:Programming languages have evolved from machine code to modern high-level languages, steadily moving closer to human thinking.

一句話總結

程式語言的演化趨勢:越來越接近人類思維,越來越安全,越來越高效。


2. 程式設計範式:思考問題的方式 ​

2.1 命令式 — 「命令式:過程式指令集」 ​

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

2.2 物件導向 — 「把資料和行為封裝成物件」 ​

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

2.3 函式式 — 「用純函式組合,不修改狀態」 ​

haskell
sum = foldl (+) 0

2.4 宣告式 — 「宣告式:目標導向描述」 ​

sql
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, GoPython, RubyJava, JavaScript

5. 程式語言選擇 ​

按場景選擇 ​

場景推薦語言理由
Web 前端JavaScript, TypeScript瀏覽器只認 JS
Web 後端Go, Java, Python, Node.js生態成熟
行動開發Swift (iOS), Kotlin (Android)官方推薦
AI / 資料PythonPyTorch、Pandas 全在 Python
系統程式設計C, Rust直接操控硬體
雲原生Go, RustDocker/K8s 都是 Go 寫的

學習路線建議 ​

  1. Python — 語法最簡單,AI 時代入口
  2. JavaScript — Web 開發必備,前後端通吃
  3. TypeScript — 給 JS 加上型別系統
  4. Go 或 Rust — 理解編譯型語言和底層概念

6. 總結 ​

核心要點

  1. 語言演化:從機器語言到高階語言,越來越接近人類思維
  2. 程式設計範式:命令式、物件導向、函式式、宣告式,各有適用場景
  3. 型別系統:靜態/動態、強/弱,影響安全性和靈活性
  4. 執行方式:編譯型快,直譯型靈活,JIT 兼顧
  5. 沒有銀彈:根據場景選語言,而不是追求「最好的語言」

下一步學習: