Bạn có thể dịch javascript sang python không?

Yêu Trăn?

Bởi Serdar Yegulalp

Nhà văn cao cấp, InfoWorld.

suy nghĩ

Python hay JavaScript? . Đó là JavaScript trong trình duyệt hoặc không có gì

Chà, có lẽ không phải là không có gì. JavaScript là ngôn ngữ mục tiêu yêu thích cho “bộ chuyển mã” chuyển đổi ngôn ngữ lập trình này sang ngôn ngữ lập trình khác [xem. TypeScript, Emscripten, Cheerp, Cor]. Và lượng người theo dõi khổng lồ cùng với vô số thư viện có sẵn của Python khiến nó trở thành một ứng cử viên tuyệt vời để được chuyển đổi, tôi. e. được phiên mã, thành JavaScript

[ Cũng trên InfoWorld. 6 ngôn ngữ lập trình tốt nhất để phát triển AI ]

Dưới đây là bốn dự án hiện tại để làm cho Python trở nên hữu ích trong thế giới JavaScript. Một nổi bật bởi có thể chuyển đổi theo cả hai hướng

Brython

Một trong những lời hứa mà WebAssembly đưa ra là cho phép chúng tôi sử dụng bất kỳ ngôn ngữ nào mà chúng tôi chọn để phát triển cho web, mặc dù đây vẫn là một mục tiêu xa vời. Triết lý đằng sau Brython, ít nhất là liên quan đến Python 3, tại sao phải chờ đợi?

Brython triển khai phiên bản Python 3 để lập trình web phía máy khách thông qua thư viện JavaScript mô phỏng tất cả các từ khóa và hầu hết các phần mềm tích hợp sẵn cho Python 3. Các tập lệnh được viết bằng Python có thể được đưa trực tiếp vào trang web. Brython cung cấp giao diện mô-đun Python cấp cao [gói browser] để tương tác với DOM và trình duyệt, tôi. e. để xử lý tất cả công việc thường được thực hiện trực tiếp trong JavaScript

Rất nhiều ví dụ về mã trực tiếp và một bộ sưu tập các ứng dụng nhỏ minh họa cách thức hoạt động của tất cả. Thậm chí có thể sử dụng Brython để viết ứng dụng Android gốc bằng Python. Chức năng Async khả dụng, mặc dù bạn phải sử dụng mô-đun async của Brython thay vì asyncio của Python

Brython không thoát khỏi những hạn chế đối với JavaScript trong trình duyệt. Ví dụ: không có hỗ trợ để xử lý hệ thống tệp cục bộ. Tuy nhiên, có hỗ trợ sử dụng bộ nhớ cục bộ HTML5, nếu tất cả những gì bạn cần là một cách nào đó để duy trì dữ liệu trên cơ sở từng ứng dụng

JavaScripthon

JavaScripthon tập trung hoàn toàn vào việc dịch Python 3. 5 trở lên sang JavaScript mà không cố gắng cung cấp hỗ trợ đầy đủ trong trình duyệt theo các dự án như Brython. Nó phát ra mã ES6 để giảm thiểu nhu cầu về polyfill ở phía trình duyệt và hoạt động tốt với các công cụ như Webpack bằng cách bảo tồn bản đồ nguồn

Hầu hết các từ khóa và hành vi phổ biến của Python đều được hỗ trợ, bao gồm asyncawait, Python 3. 6 f-string, các phương thức và kế thừa của lớp Python. Bạn cũng có thể chèn JavaScript nội tuyến thông qua lệnh gọi hàm đặc biệt, nếu bạn cần trực tiếp chuyển xuống JavaScript

Lưu ý rằng các lần xác nhận cuối cùng đối với dự án JavaScripthon là vào tháng 5 năm 2018, vì vậy dự án này chưa nhận được hỗ trợ cho các tính năng Python mới nhất, chẳng hạn như “toán tử hải mã. ” Nhưng bất cứ ai sử dụng Python 3. 6 tính năng nên được hỗ trợ tốt

[ Cũng trên InfoWorld. 24 thư viện Python cho mọi nhà phát triển Python ]

Jiphy

Tên Jiphy là viết tắt của “JavaScript in, Python out. ” Nói cách khác, Jiphy chuyển đổi theo cả hai hướng giữa hai ngôn ngữ. Ngoài ra, mã từ cả hai ngôn ngữ có thể được trộn lẫn trước khi được chuyển đổi sang ngôn ngữ đích

Trước khi bạn đi sâu vào và bắt đầu chuyển đổi tất cả OpenStack sang JavaScript, hãy chú ý. Jiphy không phải là về chuyển đổi cơ sở mã toàn diện. Thay vào đó, chức năng của nó, như README đặt nó, “để giảm chuyển ngữ cảnh cần thiết cho một nhà phát triển Python để viết mã JavaScript và ngược lại. ”

Hạn chế lớn nhất đối với Jiphy là nó chỉ hỗ trợ một số tính năng của Python. Cả lớp và đối số mặc định đều không khả dụng, mặc dù các trình trang trí và ngoại lệ được hỗ trợ. Phần lớn điều này là do Jiphy cố gắng tạo ra mối quan hệ trực tiếp giữa mã nguồn và mã đích, nhưng các nhà phát triển của nó đã để mắt đến các tính năng mới trong ES6 để hỗ trợ tính năng Python nâng cao hơn

Lưu ý rằng dự án Jiphy chưa được cập nhật từ cuối năm 2017. Jiphy nên được coi là thử nghiệm nghiêm ngặt cho đến khi tiếp tục công việc trên nó

JS2Py

JS2Py chuyển đổi JavaScript sang Python, đúng như tên gọi của nó, sử dụng công cụ chuyển đổi Python thuần túy. Nó hiện chỉ có hỗ trợ chính thức cho ES5, mặc dù có hỗ trợ ES6 thử nghiệm cho những người dũng cảm và táo bạo

JS2Py hỗ trợ rất nhiều tương tác chéo giữa Python và JavaScript. Bạn có thể nhập Nút hiện có. js trong mã Python của bạn, bằng phương pháp js2py.require. Các biến từ phía JavaScript có thể được đánh giá ở phía Python và các đối tượng Python cũng có thể được sử dụng từ mã JavaScript

JS2Py cũng bao gồm một máy ảo có tính thử nghiệm cao để đánh giá mã JavaScript từ Python, nhưng nó chưa được khuyến nghị sử dụng trong sản xuất

[ Cập nhật các chủ đề nóng trong phát triển phần mềm với bản tin Báo cáo nhà phát triển ứng dụng của InfoWorld ]

RapydScript

RapydScript hứa hẹn “JavaScript Python không tệ. ” Dự án tương tự như CoffeeScript ở chỗ nó nhập mã được viết bằng một ngôn ngữ thay thế – trong trường hợp này là một hương vị của Python – và tạo ra JavaScript có thể chạy ở mọi nơi.  

Do đó, RapydScript cung cấp những gì tốt nhất của cả hai thế giới, đưa cú pháp rõ ràng của Python vào các khả năng của JavaScript như hàm ẩn danh, thao tác DOM và khả năng tận dụng các thư viện JavaScript như jQuery hoặc Node. lõi js. Đúng vậy—bạn có thể sử dụng mã do Rapydscript tạo để điều khiển các trang web hoặc ứng dụng Node.  

Một tính năng tiện lợi khác của RapydScrypt. Nó cung cấp cả hai danh pháp Python và JavaScript cho các hoạt động nhất định khi có thể. Chẳng hạn, ký hiệu đặc biệt $ được jQuery sử dụng hoạt động như vốn có trong RapydScript và các mảng có thể hỗ trợ cả phương thức .push [JavaScript] và .append [Python]

chuyển mã

Nếu bạn nghe thấy cái tên Transcrypt và nghĩ rằng TypeScript, bạn sẽ không còn xa nữa đâu. Chuyển mã tuân theo cùng một ý tưởng cơ bản—nó chuyển mã Python sang JavaScript. Nó cũng cố gắng bảo tồn, bất cứ khi nào có thể, cấu trúc và thành ngữ của mã Python gốc, bao gồm các cấu trúc như lambdas và đa kế thừa giữa các lớp

Hơn nữa, bản đồ nguồn có thể được tạo cho mã được phiên mã quay trở lại Python gốc, vì vậy các nhà phát triển có thể gỡ lỗi bằng cách sử dụng mã đó thay vì JavaScript được tạo. Theo tài liệu, Transcrypt hoàn thành các tác vụ này với mô-đun Cây cú pháp trừu tượng của CPython, cho phép truy cập theo chương trình theo cách Python phân tích cú pháp mã của chính nó

Một trong những lợi thế lớn nhất của Transcrypt là quyền truy cập tự động vào Mô hình đối tượng tài liệu [DOM] của JavaScript. Ví dụ: nếu bạn cố gắng truy cập document.getElementById bằng Python, thì mã được chuyển đổi sẽ sử dụng document.getElementById thực tế trong JavaScript

Một dự án được liên kết và vẫn còn rất nhiều bí mật là Numscrypt, chuyển thư viện toán học và thống kê NumPy sang JavaScript. Cho đến nay, Numscrypt chỉ cung cấp một tập hợp con các tính năng của NumPy, mặc dù các tính năng này [e. g. , toán ma trận] là một trong những cách được sử dụng phổ biến nhất. Tuy nhiên, Numscrypt chưa được cập nhật từ năm 2018

Có liên quan

  • con trăn
  • JavaScript
  • Phát triển phần mềm

Serdar Yegulalp là một nhà văn cao cấp tại InfoWorld, tập trung vào học máy, container hóa, devops, hệ sinh thái Python và đánh giá định kỳ

Tôi có thể chuyển đổi JavaScript sang Python không?

Python3. Mô-đun js2py cung cấp một cách để chuyển đổi mã JS thành mã Python, chúng ta phải sử dụng hàm translate_file[] cho việc này . Sau khi dịch, chúng tôi sẽ nhập tệp Python và cung cấp một cái gì đó cho hàm được khai báo trong tệp javascript.

Python và JavaScript có thể hoạt động cùng nhau không?

Bạn có thể kết hợp JavaScript và Python mà không cần sử dụng cơ sở dữ liệu hoặc phát triển cấu trúc API rườm rà để nâng cao hiệu quả phát triển .

Tôi có nên chuyển từ Python sang JavaScript không?

Mặc dù Python có thể được sử dụng làm ngôn ngữ giao diện người dùng, nhưng các bộ chuyển mã chuyển đổi mã Python thành JavaScript khiến ứng dụng chậm hơn. Do đó, tốt hơn hết là sử dụng Python để phát triển phụ trợ và sử dụng JavaScript cho giao diện người dùng . Nếu bạn đã chọn một ngôn ngữ trong hai ngôn ngữ này, bạn nên bắt đầu học ngay bây giờ.

Tôi có thể nhập Python bằng JavaScript không?

js và Python hoạt động cùng nhau như thể chúng là một phần của cùng một hệ thống và chia sẻ cấu trúc dữ liệu. Với JSPyBridge, bạn có thể nhập và sử dụng các phương thức API Python trong Node. js như thể chúng là bản địa và ngược lại . Trong hướng dẫn này, chúng ta sẽ sử dụng JSPyBridge để tương tác giữa các Node.

Chủ Đề