
นับตั้งแต่ภาษา Python ได้ถือกำเนิดมาพร้อมกับการพัฒนา CPython ที่พัฒนา Python บนภาษา C ตลอดเวลาที่ผ่านมา มี implementation อื่น ๆ ได้แก่ Jython ที่นำ Python ไปรันบน Java, IronPython ที่นำ Python ไปรันบน .NET
จนการมาของกระแสภาษา Rust ล่าสุดในปี ค.ศ.2018 ได้มีกลุ่มนักพัฒนา พยายามนำภาษา Python ไปรันบนภาษา Rust ด้วยโครงการที่ชื่อว่า RustPython

RustPython เป็น Interpreter ภาษา Python บนภาษา Rust โดยสามารถรันโค้ดโปรแกรมภาษา Python บน Rust ได้และสามารถแปลงไปเป็น WebAssembly ได้แถมมีความสามารถด้าน JIT และ VM
สำหรับ RustPython ปัจจุบันยังอยู่ในช่วงกำลังพัฒนา โดยมีเป้าหมายคือ สามารถรันโค้ด Python อย่างเต็มรูปแบบได้บนภาษา Rust และมีคุณสมบัติ เร็ว เชื่อถือได้ และปลอดภัย สามารถใช้งานได้จาก Rust และคอมไพล์ไปเป็น WebAssembly ได้ [1]

ก่อนอื่นให้เราไปติดตั้ง Rust ก่อน โดยเข้าไปที่ rust-lang.org/tools/install จากนั้นโหลดมาติดตั้งให้เรียบร้อย
จากนั้นให้เรา clone โปรเจคมา
git clone https://github.com/RustPython/RustPython
แล้วสั่ง cd แล้วลอง build แสดงผลลัพธ์ไฟล์ demo.py
cd RustPython
cargo run --release demo.py
ถ้าได้ผลลัพธ์ แสดงว่าสามารถ build ได้อย่างถูกต้อง
Hello, RustPython!
จากนั้น เราลอง interactive shell ได้ด้วยคำสั่ง
cargo run --release
จะได้โหมดสำหรับรับคำสั่งผ่านแป้นพิมพ์
Welcome to the magnificent Rust Python 0.1.2 interpreter 😱 🖖
No previous history.
>>>>>
สามารถติดตั้งเพื่อเรียกใช้งานได้ด้วยคำสั่ง
cargo install --path ./
แล้วเราสามารถไปเรียกใช้คำสั่ง rustpython ที่ไหนก็ได้ในเครื่อง
# rustpython
Welcome to the magnificent Rust Python 0.1.2 interpreter 😱 🖖
No previous history.
>>>>>
การใช้งาน Python บน RustPython

>>>>> i = input()
test
>>>>> print(i)
test
>>>>> แมว = 1
>>>>> แมว * 2
2
และสามารถเรียกใช้งานไลบรารีพื้นฐานต่าง ๆ ได้บนฐาน Python 3.8
>>>>> import math
>>>>> math.pi
3.141592653589793
นอกจากนั้น ยังสามารถลองเล่น RustPython แบบออนไลน์ได้ด้วย (ผ่าน WebAssembly)

ความเข้ากันได้ RustPython กับ CPython
RustPython ได้มีระบบทดสอบกับชุดทดสอบของ Python สำหรับทดสอบความเข้ากันได้ของโค้ดภาษา Python ซึ่งปัจจุบัน RustPython ทำผ่านไปแล้ว 71.81%

และเมื่อไม่นานมานี้ RustPython เพิ่งรองรับ PIP [5]
ประสิทธิภาพของ RustPython
![]() |
ผลการวัดประสิทธิภาพ RustPython เทียบกับ Python 3 ที่มา pybenchmarks.org/u64q/rustpython.php |
ณ ปัจจุบันที่เขียนบทความ ประสิทธิภาพของ RustPython ยังสู้ CPython 3 ไม่ได้ (อาจเรียกได้ว่า CPython ปกติเร็วกว่าหลายเท่าตัว) [2] ซึ่งอาจต้องใช้เวลาพัฒนาอีกสักระยะหนึ่งในการปรับปรุงประสิทธิภาพในกระบวนการพัฒนา
ท่านใดสนใจอยากร่วมพัฒนาหรืออยากลอง RustPython สามารถเข้าไปได้ที่ https://github.com/RustPython/RustPython
ขอขอบคุณ ปู Ferris จาก rustacean.net และรูปอีโมจิงูจาก Microsoft
บรรณานุกรม
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)