Như chúng ta đã biết, ngôn ngữ lập trình Python có nhiều cách cài đặt khác nhau. Đối với mỗi cài đặt của Python sẽ sử dụng một trình thông dịch đặc trưng riêng.
Là ngôn ngữ lập trình phát triển nhanh nhất năm 2020, Python không hề thiếu trình thông dịch. Nhưng mỗi trình thông dịch lại đáp ứng các nhu cầu khác nhau, đầu tiên bạn cần phải biết rằng cái gì phù hợp với mình.
Trước khi chúng ta tìm hiểu về 6 trình thông dịch phổ biến nhất của Python, chúng ta sẽ cùng điểm qua về khái niệm trình thông dịch.
Trình thông dịch là gì ?
Trình thông dịch là một loại chương trình máy tính trực tiếp thực thi các chỉ dẫn được viết trong một số ngôn ngữ lập trình và ngôn ngữ kịch bản. Khi nói trực tiếp thực thi thì có nghĩa là nó không cần các chỉ dẫn để có thể được biên dịch thành một chương trình ngôn ngữ máy.
Các trình thông dịch của Python
Sau khi đã hiểu về khái niệm, chúng ta hãy cùng khái quát về 6 trình thông dịch phổ biến nhất của Python :
CPython
Hỗ trợ – đến phiên bản Python 3.7
Đây là phiên bản mặc định và phổ biến nhất của ngông gữ lập trình Python. Được viết bằng C và Python, CPython là trình thông dịch cung cấp một foreign function interface (Tạm dịch: Giao diện chức năng ngoại ngữ) với C và các ngôn ngữ lập trình khác.
CPython cũng có thể được coi là một trình biên dịch bởi vì nó chuyển đổi code Python thành bytecode trước khi thông dịch. Nó sử dụng một GIL hay Global Interpreter Lock, có thể coi là một hạn chế bởi nó nó không cho phép các thread Python song song cho một quy trình.
Là phiên bản tham chiếu của Python, Cpython tương thích với các package của Python và các module mở rộng của C. Bởi vậy, Tất cả các phiên bản của Python đều được cài đặt trong C.
CPython là lựa chọn duy nhất để sử dụng các package Python mà phụ thuộc vào các phần mở rộng của C để có thể hoạt động bình thường. CPython là bắt buộc nếu bạn muốn lập trình các chương trình phức tạp trong Python.
IronPython
Hỗ trợ – Đến phiên bản Python 2.7
Là một phiên bản của Python dành cho .NET framework, IronPython sử dụng cả thư viện của Python và .NET framework. Nó cũng sử dụng code Python cho các ngôn ngữ khác liên quan đến .NET framework.
IronPython cung cấp hỗ trợ cho biên dịch tiêu chuẩn và có một bảng điều khiển tương tác. Sử dụng trình thông dịch Python cho phép các Python script tương tác với các đối tượng của .NET. Với Python Tools for Visual Studio, IronPython được trực tiếp tích hợp vào Visual Studio IDE.
Jython
Hỗ trợ – Đến phiên bản Python 2.7
Trước đây được gọi là JPython, Jython là một phiên bản của Python chạy trên nền tảng Java. Được viết bằng Java và Python, Jython chuyển đổi code Python thành Java bytecode và do vậy cho phép code Python chạy được trên bất kỳ máy nào có JVM.
Jython cung cấp hỗ trợ cho cả biên dịch tĩnh và động. Một chức năng quan trọng khác cuả trình thông dịch Python này đó là nó cho phép import cũng như sử dụng bất kỳ class Java nào như một module Python.
Bất cứ khi nào bạn cần một giao diện với codebase Java sẵn có hay viết code Python cho JVM, bạn có thể tin tưởng vào Jython.
PyPy
Hỗ trợ – Đến phiên bản Python 2.7, Python 3.5 và Python 3.6
PyPy là một sự lựa chọn nếu bạn cần một trình thông dịch nhanh và đáng tin cậy. Trình thông dịch này được cài đặt trong RPython, một bộ phụ kiểu tĩnh của ngôn ngữ Python.
Bao gồm một trình biên dịch JIT, PyPy hỗ trợ back-end cho C, CLI, and JVM. Mục đích chủ yếu của PyPy đó là cung cấp sự tương thích tối đa với CPython và cùng với đó là tăng cường hiệu năng.
PyPy được sử dụng bởi các lập trình viên Python để cải thiện hiệu năng của các code Python cụ thể. Theo trang web chính thức của PyPy, trình thông dịch này nhanh hơn gấp 4.4 lần so với CPython.
PythonNet
Hỗ trợ – Python 2.6 đến Python 3.5
PythonNet cung cấp sự tích hợp gần như hoàn thiện của phiên bản Python tiêu chuẩn với .NET CLR. Cách thức hoạt động của nó có thể được coi là ngược lại so với IronPython.
Cùng với Mono, PythonNet cho phép một phiên bản Python trên hệ điều hành không phải Windows hoạt động trong .NET framework. Chúng ta có thể chạy PythonNet song song với IronPython mà không gặp vấn đề gì.
Stackless Python
Hỗ trợ – Đến phiên bản Python 3.7
Cpython và các trình thông dịch Python phổ biến khác đều phải dựa vào C call cho stack của nó. Tuy nhiên, trình thông dịch Stackless Python lại không cần điều này.
Mặc dù Stackless Python sử dụng C stack, nó sẽ được xóa đi giữa các lần gọi hàm. Do vậy, trình thông dịch này không cần phải phụ thuộc vào C call cho stack của nó. Như CPython, Stackless Python được viết bằng C và Python.
Ngoài việc hỗ trợ cho các thread, Stackless Python cung cấp hỗ trợ cho các kênh thông tin liên lạc, các coroutine, nhị phân được biên dịch sẵn, thuật toán điều phối round-robin, tuần tự hoá tác vụ, và các tasklet.
Tính năng quan trọng nhất của Stackless Python đó là microthreads. Tính năng này giúp tránh được phần lớn các tạp phí (overhead) liên quan đến các thread của hệ thống điều hành.
Python 2 hay Python 3? Nên chọn gì?
Với Python 3 được ra mắt vào năm 2008, đây là thắc mắc thường thấy khi phân vân giữa việc trung thành với phiên bản Python 2 cũ hay chạy theo xu thế sử dụng phiên bản Python 3 mới nhất.
Câu trả lời rất dễ dàng đối với những ai mới tìm hiểu về Python; hãy bắt đầu với phiên bản Python 3 mớivà tốt hơn. Tuy nhiên, Đối với các doanh nghiệp hay chuyên gia mà công việc của họ phụ thuộc nhiều vào Python và có các codebase Python lớn thì đây lại là lựa chọn khá khó khăn.
Phần lớn các ứng dụng hiện nay sử dụng Python 2.7. Tuy nhiên, quá trình chuyển đổi sang Python 3 đang dần tăng lên. Điều này là do Python 2.7 chỉ được nhận hỗ trợ an ninh cho đến năm 2020.
Để xây dựng các ứng dụng Python mới, bạn phải dùng Python 3. Nếu bạn đang làm việc trên một thư viện Python mã nguồn mở thì bạn sẽ muốn lập trình trên cả Python 2 và Python 3. Điều này là bởi một phần lớn lập trình viên Python vẫn ưu tiên sử dụng Python 2.
Khuyến khích sử dụng các trình thông dịch của Python 3.x vì những phiên bản mới hơn cung cấp tăng cường các bản vá lỗi, an ninh, và các module thư viện tiêu chuẩn.
Bạn chỉ cần đến Python 2 nếu đã có sẵn một codebase của Python 2 hay một thư viện chỉ sử dụng cùng phiên bản.
Nếu bạn thật lòng yêu thích Python 2 và không muốn chuyển sang Python 3 thì cũng không sao hết. Tuy nhiên, bạn cũng nên hiểu rằng Python 2 từ năm 2020 trở đi sẽ không còn các tính năng hấp dẫn như các phiên bản hiện tại nữa. Do vậy, bắt đầu tìm hiểu về Python 3 ngay hôm nay, cùng với Python 2 sẽ là một ý kiến hay.
Kết luận
Và trên đây là 6 trình thông dịch phổ biến nhất của Python tính đến thời điểm hiện tại mà bạn có thể tuỳ ý lựa chọn cho riêng mình. Tuy nhiên, mỗi trình thông dịch sẽ có các tính năng và lợi thế khác nhau. Bởi vậy, bạn nên lựa chọn một cách kỹ càng, đặc biệt là khi làm các công việc chuyên môn.
Có kinh nghiệm làm việc với nhiều trình thông dịch Python là một điểm tốt. Vì vậy, bạn hãy không ngừng cố gắng học hỏi nhé !
* Bạn muốn tham khảo KHÓA HỌC PYTHON hãy vào đây nhé *
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #python #java #php