Skip to content

Bản đồ ngôn ngữ lập trình

Mở đầu

Tại sao có nhiều ngôn ngữ lập trình? Học cái nào? Chương này dẫn bạn từ "tiến hoá ngôn ngữ" tới "paradigm" tới "cách chọn".

Kết luận: không có ngôn ngữ tốt nhất, chỉ có ngôn ngữ phù hợp scenario nhất.

Bạn sẽ học:

  • Năng lực chọn lý tính dựa nhu cầu project
  • Hiểu sâu "OOP", "functional programming" là cách tư duy khác
  • Lịch sử 70+ năm evolution
  • Nền cho hiểu ngôn ngữ mới và quyết định tech selection
ChươngNội dung
1Evolution ngôn ngữ (machine → high-level)
2Paradigm (imperative, OOP, functional)
3Chọn ngôn ngữ theo scenario

0. Người "nói chuyện" với máy thế nào?

Robot chỉ hiểu binary:

  • Gõ 0/1 trực tiếp — sai 1 bit là sai hết (machine language)
  • MnemonicMOV AX, 1 dễ hơn 10110000 00000001 (assembly)
  • Gần ngôn ngữ tự nhiênint sum = 1 + 2; (high-level)

Trend 70+ năm: ngày càng gần tư duy người.


1. Evolution ngôn ngữ

编程语言图谱演化历程 · 编程范式 · 类型系统 · 语言对比
1940s
机器语言
二进制
1950s
汇编 & 早期高级语言
汇编FortranLispCOBOL
1970s
系统编程时代
CPascalSmalltalk
1980-90s
OOP & 互联网
C++JavaPythonJavaScript
2000s
现代语言
C#GoScalaRuby
2010s+
新一代语言
RustSwiftKotlinTypeScript
2000s现代语言
语言设计更注重开发效率和安全性,Go 为云原生而生。
Go并发友好,Docker/K8s 的实现语言
RubyRails 框架带来 Web 开发效率革命
核心思想:编程语言从机器语言到现代高级语言,一直在朝着"更接近人类思维"的方向演化。

Tóm 1 câu

Ngày càng gần tư duy người, ngày càng an toàn, ngày càng hiệu quả. Từ 0/1, assembly, C structured, Java OOP, tới Rust memory-safe.


2. Paradigm: cách tư duy vấn đề

Paradigm không phải đặc tính ngôn ngữ, mà cách tư duy.

2.1 Imperative — "từng bước bảo máy làm gì"

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

2.2 OOP — "đóng gói data + behavior thành object"

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

2.3 Functional — "compose pure function, không sửa state"

haskell
sum = foldl (+) 0

2.4 Declarative — "chỉ nói làm gì, không quan tâm làm sao"

sql
SELECT name FROM users WHERE active = true

Trong thực tế

Ngôn ngữ hiện đại đa multi-paradigm. Python, JavaScript support OOP + functional. Chọn cách phù hợp vấn đề.


3. Type system

StrongWeak
StaticJava, Rust, TypeScript — an toàn nhấtC, C++ — nhanh nhưng cẩn thận
DynamicPython, Ruby — linh hoạt + an toànJavaScript, PHP — linh hoạt + dễ sai

Câu hỏi: "1" + 1 bằng gì?

  • JavaScript (weak): "11" — tự convert
  • Python (strong): TypeError — bắt nghĩ rõ

4. Compiled vs Interpreted

CompiledInterpretedJIT
ProcessTranslate hết rồi chạyĐọc 1 dòng chạy 1 dòngInterpret + hotspot compile
Tốc độNhanh nhấtChậm hơnTrung bình
Đại diệnC, Rust, GoPython, RubyJava, JavaScript

5. Cách chọn ngôn ngữ

Theo scenario

ScenarioĐề xuấtLý do
Web frontendJavaScript, TypeScriptBrowser chỉ hiểu JS
Web backendGo, Java, Python, Node.jsEcosystem mature
MobileSwift (iOS), Kotlin (Android)Official
AI / DataPythonPyTorch, Pandas
System programmingC, RustControl hardware
Cloud-nativeGo, RustDocker/K8s đều Go

Roadmap học

  1. Python — entry point thời AI
  2. JavaScript — Web full-stack
  3. TypeScript — add type cho JS
  4. Go hoặc Rust — hiểu compiled language

6. Tổng kết

Điểm core

  1. Evolution: ngày càng gần tư duy người
  2. Paradigm: chọn theo vấn đề
  3. Type: ảnh hưởng an toàn + linh hoạt
  4. Compiled vs interpreted: nhanh vs linh hoạt
  5. Không có silver bullet — chọn theo scenario

2026 update

  • Mojo mature: Python-like + Rust performance cho AI
  • Bun runtime thay Node trong nhiều startup
  • Rust mainstream cho systems + cloud + WASM
  • Zig simpler than C, more explicit
  • AI assistant giúp học ngôn ngữ mới nhanh hơn → đừng ngại học cái thứ 5, 6

Bước tiếp: