เขียน Python ให้เหมือน Rust
(kobzol.github.io)- หลังจากเริ่มใช้ Rust ก็ได้นำแนวคิดบางอย่างของ Rust มาปรับใช้กับวิธีเขียนโค้ด Python
- ใช้ Type Hint ให้มากที่สุดเท่าที่ทำได้
- ใช้ Dataclasses แทน tuple/dictionary
- Algebraic data types(ADT)
- แพตเทิร์น newtype
- เข้ารหัส invariant ด้วยการใช้ประเภทข้อมูล
- bounding boxes ที่มีการกำหนดชนิดอย่างเข้มงวด
8 ความคิดเห็น
ถ้าอย่างนั้นจะใช้ python ไปทำไม...
(feat. ถ้าอย่างนั้นจะใช้ nodejs ไปทำไม)
ดูเหมือนมีแค่เรื่องประเภทข้อมูลเท่านั้น แบบนี้เอามาเทียบกับ Rust ได้จริงเหรอครับ?
ถ้าจะเขียน Python แบบ Rust สู้ใช้ Rust ไปเลยไม่ดีกว่าเหรอ?..
ใช้ Tensorflow กับ PyTorch บน Rust ได้ไหม? ต่อให้ใช้ได้ ก็ยังไม่แน่ว่าจะใช้ไลบรารีที่พ่วงอยู่กับมันมากมายเหล่านั้นได้ด้วยหรือเปล่า เป็นความคิดที่มองอะไรตื้นเขินเกินไปครับ
ผมคิดว่าการนำคุณลักษณะที่ดีบางอย่าง (แนวคิด) ของภาษาหนึ่งมาใช้ กับการใช้ภาษานั้นโดยตรง เป็นคนละเรื่องกัน ขึ้นอยู่กับสถานการณ์ แม้ว่าจะใช้คุณลักษณะเฉพาะของภาษาเชิงฟังก์ชันอย่าง Lisp หรือ Haskell ได้อย่างมีประสิทธิภาพมากใน JavaScript ก็ไม่ได้หมายความว่าจะสามารถใช้ Lisp ในที่ที่ใช้ JavaScript ได้
แม้จะต้องเลือกใช้ให้เหมาะตามสถานการณ์ แต่โดยทั่วไปแล้วก็นับเป็นแนวทางที่อยากแนะนำครับ
ผม/ฉันไม่ค่อยรู้เรื่อง Python เท่าไหร่....
ถ้าทำแบบนี้ จะมี overhead เพิ่มขึ้นมากไหมครับ/คะ?
เหมือนว่าเนื้อหาโดยรวมจะพูดถึงการใช้ type hint เยอะพอสมควร แต่สิ่งนี้ไม่ได้ทำงานตอนรันไทม์ จึงไม่เกี่ยวกับประสิทธิภาพนะครับ ส่วนการเช็กประเภทแบบ
isinstanceถึงจะช้ากว่าไม่เช็กเลยอยู่บ้าง แต่เท่าที่ทราบมันมีการแคชไว้ภายใน ถ้าไปทำในลูปขนาดใหญ่มาก ๆ ก็อาจเห็นความแตกต่างได้ครับ