Python vs Javascript, còn tôi là trọng tài
1. Độ phủ sóng
Thật khó để đem cái này ra so sánh khi Javascript vừa có thể làm backend và frontend. Trong khi đó, Python có thể làm backend, AI, automation,... Nhưng với một software engineer như mình thì Javascript vẫn có độ phủ sóng cao hơn vì mình chỉ cần học 1 loại cú pháp và giờ mình có thể làm cả frontend và backend :smile:.
2. Cú pháp
Mình là người rất thích cú pháp của C vì tính rõ ràng của nó nên có những cú pháp được mang lên cả Javascript và Python làm mình khá happy.
Nhưng tại sao Javascript có switch case còn Python lại không có!!!!.

Một điểm nữa Javascript ăn đứt Python đó là nó cho phép truyền định nghĩa hàm vào tham số của hàm khác. Ok, tôi hiểu nỗi khổ của mấy ông, cũng vì mấy ông đâu có cái này để định nghĩa hàm.
javascript(function () {
console.log("Python");
});
python(def javascript():???)
Tương tự, lambda trong Python thì đúng là vô dụng khi nó không thể thực hiện nhiều hơn 1 câu lệnh.
Cân kèo 1 xíu, Python cũng có những điểm mạnh riêng của nó mà Javascript không thể có như
arr = [i for i in range(100)]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ..., 100]
Còn ông này thì :/
arr = [];
for (let i = 0; i < 100; ++i) {
arr.push(i);
}
Một trong những đặc sản của Javascript là cái thứ của nợ này
[0] == ![0]; // true
Array(3) == ",,"; // true
typeof null; // "object"
null instanceof Object; // false
"string" instanceof String; // false
3. Tối ưu
Phần này Javascript ăn Python. Javascript làm rất tốt việc tối ưu bộ nhớ. Nó có thể xác định được kiểu của biến và bỏ qua khá nhiều công đoạn giúp nó đạt hiệu quả tính toán cao hơn. Trong khi đó, điều này chỉ có trong các bản Python mở rộng như Pypy chứ cái ông Python thường thì lại không có.
Mọi người có thể đem 2 đoạn mã này ra so sánh
function fib(n) {
if (n < 2) return n;
return fib(n - 1) + fib(n - 2);
}
const start = Date.now();
fib(40);
console.log(Date.now() - start);
Còn đây là Python
from time import time
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
start = time();
fib(40)
print(time()-start)
Javascript nhanh hơn Python tầm 1.5 lần.
Vậy, nên dùng cái nào?
Với kinh nghiệm của mình, ai muốn làm web thì học javascript là lợi nhất do nó có thể làm cả backend và frontend. Hơn nữa, việc làm web bằng Javascript có ưu điểm là có rất nhiều builtin tiện lợi cho dân web.
Còn ai muốn học AI, data hay làm mấy tool automation hay thuật toán gì đó thì nên học Python. Đặc biệt, mình thấy Python xử lí string khá ngon và ngắn gọn.
Tóm lại mình viết bài này với lí do là khi chuyển sang Javascript mình thấy nó khá tiện lợi với công việc của mình nên quay lại chù cái thằng Python :smile:.