Jython là một triển khai của ngôn ngữ lập trình Python được thiết kế để chạy trên nền tảng Java. Việc triển khai trước đây được gọi là JPython cho đến năm 1999
Tổng quan[sửa]
Các chương trình Jython có thể nhập và sử dụng bất kỳ lớp Java nào. Ngoại trừ một số mô-đun tiêu chuẩn, các chương trình Jython sử dụng các lớp Java thay vì các mô-đun Python. Jython bao gồm hầu hết tất cả các mô-đun trong bản phân phối ngôn ngữ lập trình Python tiêu chuẩn, chỉ thiếu một số mô-đun được triển khai ban đầu trong C. Ví dụ: giao diện người dùng trong Jython có thể được viết bằng Swing, AWT hoặc SWT. Jython biên dịch mã nguồn Python thành mã byte Java [một ngôn ngữ trung gian] theo yêu cầu hoặc tĩnh
Lịch sử[sửa]
Jython ban đầu được tạo ra vào cuối năm 1997 để thay thế C bằng Java cho mã hiệu suất cao được các chương trình Python truy cập, chuyển sang SourceForge vào tháng 10 năm 2000. Quỹ phần mềm Python đã trao một khoản tài trợ vào tháng 1 năm 2005. Jython 2. 5 được phát hành vào tháng 6 năm 2009
Tình trạng và lộ trình[sửa | sửa mã nguồn]
Bản phát hành gần đây nhất là Jython 2. 7. 2. Nó được phát hành vào ngày 21 tháng 3 năm 2020 và tương thích với Python 2. 7
Các thay đổi tương thích với Python 3 được lên kế hoạch trong Lộ trình Jython 3.
Mặc dù Jython triển khai đặc tả ngôn ngữ Python, nhưng nó có một số điểm khác biệt và không tương thích với CPython, đây là triển khai tham chiếu của Python
Điều khoản cấp phép[sửa]
Từ phiên bản 2. 2 trở đi, Jython [bao gồm thư viện chuẩn] được phát hành theo Giấy phép Python Software Foundation [v2]. Các phiên bản cũ hơn được bao phủ bởi Jython 2. 0, 2. 1 giấy phép và JPython 1. 1. x Giấy phép phần mềm
Jython là một triển khai của ngôn ngữ kịch bản Python, được viết bằng ngôn ngữ Java và được tích hợp với nền tảng Java. Python là một ngôn ngữ kịch bản hướng đối tượng mạnh mẽ. Jython rất hữu ích vì nó cung cấp các tính năng năng suất của ngôn ngữ kịch bản trưởng thành và không giống như Python, chạy trong bất kỳ môi trường nào hỗ trợ máy ảo Java [JVM]. Điều này có nghĩa là các thư viện Java trên JVM có sẵn để sử dụng khi bạn viết chương trình. Với Jython, bạn có thể tận dụng sự khác biệt này, đồng thời sử dụng cú pháp và hầu hết các tính năng của ngôn ngữ Python
Là một ngôn ngữ kịch bản, Python [và triển khai Jython của nó] dễ học và viết mã hiệu quả, đồng thời có cấu trúc yêu cầu tối thiểu để tạo một chương trình đang chạy. Mã có thể được nhập một cách tương tác, nghĩa là mỗi lần một dòng. Python là một ngôn ngữ kịch bản được giải thích; . Các chương trình Python chỉ đơn giản là các tệp văn bản được diễn giải khi chúng là đầu vào [sau khi phân tích cú pháp để tìm lỗi cú pháp]. Các biểu thức đơn giản, như các giá trị đã xác định, cũng như các hành động phức tạp hơn, chẳng hạn như định nghĩa hàm, được thực thi ngay lập tức và có sẵn để sử dụng. Bất kỳ thay đổi nào được thực hiện đối với mã đều có thể được kiểm tra nhanh chóng. Tuy nhiên, giải thích kịch bản có một số nhược điểm. Ví dụ: việc sử dụng một biến không xác định không phải là lỗi của trình biên dịch, vì vậy nó chỉ được phát hiện nếu [và khi] câu lệnh sử dụng biến đó được thực thi. Trong trường hợp này, chương trình có thể được chỉnh sửa và chạy để gỡ lỗi
Python xem mọi thứ, bao gồm tất cả dữ liệu và mã, là một đối tượng. Do đó, bạn có thể thao tác với các đối tượng này bằng các dòng mã. Một số loại chọn, chẳng hạn như số và chuỗi, thuận tiện hơn được coi là giá trị, không phải đối tượng; . Có một giá trị null được hỗ trợ. Giá trị null này có tên dành riêng None
Để có phần giới thiệu sâu hơn về tập lệnh Python và Jython, cũng như một số tập lệnh mẫu, hãy xem http. //www. ibm. com/developerworks/java/tutorials/j-jython1/j-jython1. html và http. //www. ibm. com/developerworks/java/tutorials/j-jython2/j-jython2. html
Nếu bạn là một lập trình viên Python có kinh nghiệm và muốn bắt đầu làm việc với ngôn ngữ lập trình Jython, thì điều quan trọng là phải biết sự khác biệt chính giữa hai tùy chọn phổ biến này để bạn có thể chọn tùy chọn phù hợp cho dự án của mình. Hướng dẫn này sẽ giúp bạn hiểu rõ hơn tại sao Jython được tạo ra và nó khác với Python như thế nào, cũng như những ưu và nhược điểm của việc sử dụng từng cái trong các tình huống khác nhau
Sau khi đọc bài viết này, bạn sẽ có thể lựa chọn giữa Jython và Python một cách tự tin hơn và xác định ngôn ngữ nào phù hợp nhất với các nhu cầu khác nhau
Mục lục
Khi nào nên sử dụng Jython
Nhược điểm lớn nhất của Jython là nó không được sử dụng rộng rãi như Python; . Nhưng nếu dự án của bạn được viết bằng Java [và bạn muốn tiết kiệm cho mình một số công việc bằng cách sử dụng mã Java trong chương trình Python của mình], thì Jython là một cách tốt để bắt đầu — bạn thậm chí có thể viết ít mã hơn về tổng thể vì Jython hoạt động tốt như thế nào
Đây cũng là một lựa chọn tốt nếu bạn cần quản lý bộ nhớ hoặc không muốn xử lý các sự cố nhập mô-đun của Python. Ngoài ra, vì nó không phổ biến như Python nên có rất nhiều công việc dành cho các lập trình viên biết rõ về nó
So sánh hai
Jython và Python có nhiều điểm tương đồng nhưng cũng có một số điểm khác biệt chính. Jython được viết bởi Jim Hugunin, người vẫn đang nghiên cứu nó cho đến nay, trong khi Python được Guido van Rossum tạo ra vào năm 1989 và tiếp tục được cải thiện bởi các lập trình viên khác tại quỹ của ông — Python Software Foundation [PSF]
Cả hai ngôn ngữ đều hướng đối tượng với các tính năng như ngoại lệ và đa kế thừa có trong cả Jython và Python. Tuy nhiên, có nhiều điểm khác biệt giữa chúng, chẳng hạn như Jython được nhập động trong khi Python được nhập tĩnh và có các bộ hàm tích hợp khác nhau trong cả hai ngôn ngữ
So sánh hiệu suất
Hiệu suất của Python phụ thuộc vào việc triển khai nó; . Bảng so sánh này tóm tắt sự khác biệt về hiệu suất trong một số triển khai của Python và khi chạy các ứng dụng Python [nhưng không phải các tập lệnh ngắn] được viết bằng Jython hoặc Cython. Đặc tả ngôn ngữ Python xác định một cú pháp không chính thức được gọi là mã pythonic
Mặc dù không có tiêu chuẩn duy nhất cho những gì cấu thành mã Pythonic, nhưng nó chỉ ra một số thực tiễn phổ biến nhất định của các lập trình viên Python có kinh nghiệm. Mã tuân theo các phương pháp này có vẻ đơn giản hơn và dễ đọc hơn đối với các lập trình viên Python có kinh nghiệm — đặc biệt là khi xử lý các cấu trúc phức tạp như phạm vi — và do đó giảm thiểu các lỗi do người mới mắc phải khi viết mã Python chính xác. Hãy so sánh một số thứ khác
So sánh cú pháp
Python và Jython giống nhau về mặt cú pháp, nhưng có một số khác biệt nhỏ có thể khiến bạn ngạc nhiên. Sự khác biệt lớn nhất giữa hai ngôn ngữ này là phạm vi của chúng. Jython là ngôn ngữ kịch bản cho Python và nó có thể được sử dụng cho mục đích lập trình chung giống như Python thông thường
Ngược lại, Python là một ngôn ngữ lập trình hoàn toàn khác có cú pháp tương tự như Java. Điều này làm cho Jython linh hoạt hơn nhiều so với Python thông thường vì nó cung cấp cho bạn cách giao tiếp liền mạch với các ngôn ngữ khác cũng như tự đứng vững như một ngôn ngữ lập trình độc lập [mặc dù nó cũng có thể hoạt động cùng với các ngôn ngữ lập trình khác]. Không giống như hầu hết các ngôn ngữ lập trình phổ biến, chẳng hạn như C hoặc Pascal, JyPython thực sự biên dịch mã của nó theo từng dòng thay vì hàng loạt khi chương trình của bạn hoàn thành
So sánh các thư viện có sẵn
Jython có quyền truy cập vào tất cả các thư viện của Python, với một số ngoại lệ nhỏ như SQLite và một số thư viện khác. Nó cũng có thể sử dụng trực tiếp các thư viện Java mà không cần phải viết hoặc biên dịch bất cứ thứ gì thành mã Python trước
Điều này giúp các nhà phát triển Jython sử dụng phần mềm được viết bằng Java dễ dàng hơn đáng kể nếu họ chọn, nhưng điều đó cũng có nghĩa là Jython không tương thích với các triển khai thay thế khác của Python như IronPython hoặc PyPy;