post-image

Python Có Phải Là Ngôn Ngữ Của Tương Lai?

1. Tổng quan

Giống như mọi công nghệ khác, Python là một ngôn ngữ lập trình mạnh nhưng cũng tồn tại nhiều điểm yếu. Hãy cùng phân tích những đặc điểm đáng chú ý nhất và đánh giá xem liệu chúng ảnh hưởng thế nào đến tương lai của Python.

Điều gì khiến cho Python phổ biến ở hiện tại?

Guido van Rossum, một nhà khoa học máy tính người Hà Lan, đã phát minh ra ngôn ngữ lập trình Python vào năm 1989. Điều đáng ngạc nhiên là khi đã gần ba thập kỷ trải qua và phát minh của ông vẫn vượt qua gần như tất cả các đối thủ và đây là lý do:

Là một ngôn ngữ lâu đời

Python đã có từ những năm 1990. Điều đó không chỉ có nghĩa là nó đã có nhiều thời gian để phát triển mà nó cũng đã đủ thời gian để xây dựng được một cộng đồng lớn hỗ trợ phía sau.

Vì vậy, nếu bạn có bất kỳ vấn đề nào trong khi code bằng Python, tỷ lệ cược cao là bạn sẽ có thể giải quyết nó chỉ bằng một lần tìm kiếm duy nhất trên Google. Đơn giản là nhờ vào sự lâu đời của nó, người khác cũng đã từng gặp vấn đề tương tự và chia sẻ cách giải quyết lên mạng.

Dễ dàng cho người mới bắt đầu

Vì là một ngôn ngữ lâu đời, các lập trình viên đã có đủ thời gian để tạo ra các bài giảng và hướng dẫn sử dụng ngôn ngữ này một cách chi tiết cho người mới bắt đầu có thể dễ dàng làm quen. Bên cạnh đó, cú pháp của Python cũng rất dễ đọc. Nó cũng dễ dàng để thiết lập; bạn không cần phải xử lý bất kỳ vấn đề đường dẫn nào như Java hoặc các vấn đề về trình biên dịch như C ++ .

Để bắt đầu code, bạn không cần chỉ ra một kiểu dữ liệu cụ thể, bạn chỉ cần khai báo một biến là đủ. Python sẽ tự hiểu nó là một số nguyên, float, boolean hay bất cứ cái gì khác. Đây là một lợi thế rất lớn cho người mới bắt đầu. Nếu bạn đã từng phải lập trình với C++, chắc hẳn bạn sẽ cảm nhận được sâu sắc “nỗi khổ” khi cố gắng đổi một số dạng float sang số nguyên rồi kết quả là chương trình của bạn không biên dịch được.

Nó linh hoạt và đa năng

Cũng nhờ ưu điểm là xuất hiện từ sớm nên các nhà phát triển đã có thể tạo ra rất nhiều thư viện hỗ trợ cho mọi mục đích của Python. Thậm chí, ngày nay bạn có thể dễ dàng tìm thấy một thư viện hỗ trợ hầu hết mọi thứ bạn cần.

Python có nhiều thư viện cho các nhu cầu khác nhau. Django và Flask là hai trong số phổ biến nhất để phát triển web và NumPy và SciPy rất phổ biến cho khoa học dữ liệu. Trên thực tế, Python có một trong những bộ sưu tập tốt nhất về thư viện khoa học dữ liệu và học máy, bao gồm TensorFlow , Scikit-Learn , Keras , Pandas, vv… .

Gần như các thư viện của Python có thể phục vụ được các tính năng mà bạn cần. Điều này làm cho Python luôn lọt top trong sự lựa chọn của dân lập trình gần đây, bạn có thể nhìn thấy dẫn chứng qua sự gia tăng của Machine Learning trong vài năm qua.

Những nhược điểm của Python – liệu nó có thể tồn tại lâu nữa không?

Giống như mọi công nghệ khác, Python cũng có điểm yếu. Hãy cùng điểm qua những điểm yếu đáng chú ý nhất và đánh giá xem liệu chúng ảnh hưởng thế nào đến “sự sống còn” của Python.

Tốc độ

Python thực sự chậm.

Trung bình, để hoàn thành một nhiệm vụ với Python, bạn sẽ cần khoảng thời gian gấp 2-10 lần so với những ngôn ngữ khác.
Có nhiều lý do cho điều đó. Một trong số đó là do bạn không cần chỉ định ra các loại dữ liệu trong Python như trong các ngôn ngữ khác. Điều này có nghĩa là rất nhiều bộ nhớ cần được sử dụng, bởi vì chương trình cần dành đủ dung lượng cho mỗi biến mà nó hoạt động trong mọi trường hợp. Và việc sử dụng nhiều bộ nhớ khiến Python mất rất nhiều thời gian tính toán.

Một lý do khác là Python chỉ có thể thực thi một nhiệm vụ tại một thời điểm. Đây là hệ quả của các kiểu dữ liệu linh hoạt – Python cần đảm bảo mỗi biến chỉ có một kiểu dữ liệu và các quy trình song song có thể làm rối loạn điều đó.

Scope

Ban đầu, Python sử dụng scope động (dynamic scope). Điều này về cơ bản có nghĩa là, để đánh giá một biểu thức, trước tiên trình biên dịch sẽ tìm kiếm khối lệnh trước và sau đó tìm đến các call function.

Vấn đề với dynamic scope là mọi biểu thức cần phải được kiểm tra trong ngữ cảnh – điều này thật nhàm chán. Đó là lý do tại sao hầu hết các ngôn ngữ lập trình hiện đại sử dụng scope tĩnh (static scope).

Python đã cố gắng chuyển sang static scope, nhưng điều này làm nó rối ren hơn. Thông thường, các scope bên trong – ví dụ như các function trong function khác – sẽ có thể được nhìn thấy và thay thế cho các scope bên ngoài. Trong Python, scope bên trong có thể nhìn thấy được scope bên ngoài nhưng không thể thay đổi chúng. Điều này gây ra nhiều sự nhầm lẫn không đáng có.

Lambdas

Bất chấp tất cả sự linh hoạt trong Python, việc sử dụng Lambdas khá hạn chế. Lambdas chỉ có thể là biểu thức trong Python chứ không phải là câu lệnh.

Mặt khác, các khai báo biến và câu lệnh (hiển nhiên) luôn ở dạng các câu lệnh. Điều này có nghĩa là Lambdas không thể được sử dụng cho chúng.

Sự khác biệt giữa biểu thức và câu lệnh này khá tùy tiện và không có trong các ngôn ngữ khác.

Khoảng trắng

Trong Python, bạn sử dụng các khoảng trắng lùi đầu dòng để phân cấp các khối lệnh. Điều này khiến code của bạn trở nên trực quan để hiểu.

Với các ngôn ngữ khác, ví dụ C++, sẽ phụ thuộc nhiều hơn vào dấu ngoặc nhọn và dấu chấm phẩy. Mặc dù điều này có thể không trực quan và thân thiện với người mới bắt đầu, nhưng nó làm cho mã dễ bảo trì hơn rất nhiều. Đối với các dự án lớn hơn, điều này thực sự mang lại ý nghĩa.

Các ngôn ngữ mới hơn như Haskell giải quyết vấn đề này: Họ cũng phân cách các code block bằng khoảng trắng lùi đầu dòng, nhưng cũng đưa ra một cú pháp thay thế cho những người không muốn sử dụng khoảng trắng như vậy.

Phát triển ứng dụng điện thoại di động

Không có nhiều ứng dụng di động được phát triển với Python. Chỉ có một thư viện trong Python được gọi là Kivy có thể phục vụ cho cho mục đích này.

Nhưng trong đời sống hằng ngày, mọi người vẫn luôn quan niệm Python không phải là ngôn ngữ cho các ứng dụng di động. Vì vậy mặc dù nó có thể cho kết quả cao khi ứng dụng vào các tác vụ cơ bản trong điện thoại, nhưng mọi người vẫn thường không sử dụng nó để phát triển các ứng dụng di động. Một số framework được sử dụng rộng rãi cho thiết bị di động là React Native, Flutter, Iconic và Cordova.

Có thể nói rằng việc chỉ học Python là không đủ để trở thành một nhà lập trình toàn diện.

Ngôn ngữ nào có thể thay thế Python trong tương lai?

Gần đây, Python có một vài đối thủ cạnh tranh mới trên thị trường:

  • Rust cung cấp loại hình đảm bảo an toàn tương tự như Python – không có biến nào có thể vô tình bị ghi đè. Nhưng nó giải quyết vấn đề hiệu suất hiệu quả hơn Python nhiều. Đây cũng là ngôn ngữ lập trình được yêu thích nhất trong vài năm qua theo StackOverflow Insights.
  • Go là ngôn ngữ tuyệt vời cho những người mới bắt đầu, cũng giống như Python. Và nó đơn giản hơn trong việc bảo trì code. Điểm thú vị là các nhà phát triển Go là một trong những lập trình viên được trả lương cao nhất trên thị trường.
  • Julia là một ngôn ngữ rất mới cạnh tranh trực tiếp với Python. Nó lấp đầy khoảng trống của các tính toán kỹ thuật quy mô lớn: Thông thường, người ta sẽ sử dụng Python hoặc Matlab và vá toàn bộ mọi thứ với các thư viện C++, điều này cần thiết khi triển khai ở quy mô lớn. Bây giờ, người ta có thể sử dụng Julia thay vì phải tung hứng và kết hợp giữa hai ngôn ngữ trên.

Dù còn nhiều ngôn ngữ khác trên thị trường nhưng Rust, Go và Julia là những ngôn ngữ có thể bù đắp cho những nhược điểm của Python. Tất cả các ngôn ngữ này đều vượt trội khi sử dụng cho các công nghệ mới, đặc biệt là Trí tuệ nhân tạo. Mặc dù thị phần của chúng vẫn còn nhỏ nhưng rõ ràng là chúng đang tăng trưởng khá mạnh mẽ, xem số lượng bài nhắc đến các ngôn ngữ này trên StackOverflow ở hình dưới đây:

Kết

Với sự phổ biến phổ biến của Python tại thời điểm này, bạn có thể bắt đầu học python ngay hôm nay. Có thể sẽ mất nửa thập kỷ, thậm chí là cả thập kỷ để các ngôn ngữ mới khác có thể thay thế nó: Rust, Go, Julia hay ngôn ngữ mới nào khác sẽ là mới của tương lai – rất khó để nói vào thời điểm này. Nhưng với các vấn đề về hiệu năng là nền tảng trong kiến trúc của Python, chắc chắn sẽ có ngôn ngữ khác chiếm lấy vị trí của nó.

Leave a Reply

Your email address will not be published.