Không thể chạy Python trực tiếp trong trình duyệt vì không trình duyệt hiện đại nào có sẵn Python interpreter. JavaScript là ngôn ngữ duy nhất chạy native trong browser (không cần plugin).
Giải pháp: Transpiler (Chuyển dịch)
Viết Python -> biên dịch thành JavaScript -> chạy trong browser.
Các công cụ phổ biến
- Brython: Python 3 trong browser, chậm hơn JS.
- Transcrypt: Compile Python -> JS tối ưu, gần hiệu năng native.
- Pyodide: CPython compile sang WebAssembly, chạy NumPy, Pandas trong browser.
- MicroPython: Python nhúng cho vi điều khiển, cũng có port WebAssembly.
Ví dụ Transcrypt
# Python (hello.py)
def greet(name):
return f"Hello, {name}!"
document.getElementById("btn").onclick = lambda: alert(greet("World"))
Biên dịch: transcrypt -b -m hello.py -> sinh hello.js.
Trade-offs
- Kích thước JS output lớn hơn code Python gốc.
- Không hỗ trợ toàn bộ stdlib (threading, multiprocessing, file I/O...).
- Debug khó hơn (source map giúp phần nào).
- Hiệu năng thường kém hơn JS native.
Kết luận: Dùng cho prototyping, 교육, hoặc logic phức tạp đã có sẵn Python. Production web frontend vẫn nên viết TypeScript/JavaScript.