ภาษาโปรแกรม Dino ที่พัฒนาโดย Vladimir Makarenko ในปี 2013 ได้ดึงดูดความสนใจจากนักพัฒนาด้วยชุดฟีเจอร์ที่ทะเยอทะยานซึ่งผสมผสานการเขียนโปรแกรมเชิงวัตถุ การเขียนโปรแกรมเชิงฟังก์ชัน และความสามารถในการเขียนสคริปต์เข้าด้วยกัน อย่างไรก็ตาม การอภิปรายล่าสุดในชุมชนนักเขียนโปรแกรมมุ่งเน้นไปที่ผลการทดสอบประสิทธิภาพที่น่าเป็นห่วงมากกว่าฟีเจอร์ที่น่าประทับใจ ซึ่งชี้ให้เห็นปัญหาที่อาจเกิดขึ้นในการพัฒนา
คุณสมบัติหลักของภาษา Dino :
- รองรับหลายรูปแบบการเขียนโปรแกรม (OOP, imperative, functional programming)
- การพิมพ์แบบคงที่พร้อมการอนุมานประเภทข้อมูล
- C++ TAPI (Transparent As Possible Interface)
- รองรับ SQLite3 และ wxWidgets ในตัว
- การจับคู่รูปแบบขั้นสูงและ fibers
- รองรับการจัดการข้อผิดพลาดและ threading
- การพัฒนาบนพื้นฐาน LLVM
ข้อกังวลด้านประสิทธิภาพครองใจการอภิปรายในชุมชน
ประเด็นสำคัญที่สุดที่สมาชิกชุมชนยกขึ้นมาคือประสิทธิภาพการทดสอบของ Dino โดยเฉพาะเมื่อเปรียบเทียบกับภาษาที่มีชื่อเสียงอย่าง OCaml, Python และ Ruby ผลการทดสอบทำให้นักพัฒนาสับสนและตั้งคำถามเกี่ยวกับคุณภาพการพัฒนาภาษานี้ สมาชิกชุมชนคนหนึ่งแสดงความสับสนเกี่ยวกับตัวเลขต่างๆ โดยสังเกตว่า OCaml เป็นที่รู้จักในเรื่องความเร็ว ทำให้ผลการเปรียบเทียบยากที่จะตีความได้
ข้อกังวลด้านประสิทธิภาพกลายเป็นเรื่องน่าเป็นห่วงมากขึ้นเมื่อพิจารณาว่าหาก Dino ช้ากว่า Python หรือ Ruby ในบางสถานการณ์จริงๆ แล้ว สิ่งนี้อาจบ่งชี้ถึงปัญหาการพัฒนาพื้นฐานที่ร้ายแรง นักพัฒนาบางคนคาดเดาว่าการทดสอบอาจใช้เวอร์ชัน interactive bytecode compiler และ interpreter ของ OCaml ซึ่งช้ากว่าเวอร์ชันที่ปรับให้เหมาะสมอย่างมาก ทำให้ผลการเปรียบเทียบเบี่ยงเบนไปได้
ข้อกังวลเกี่ยวกับมาตรฐานประสิทธิภาพ:
- ผลการเปรียบเทียบที่ไม่ชัดเจนเมื่อเทียบกับ OCaml , Python และ Ruby
- ปัญหาคุณภาพการพัฒนาที่อาจเกิดขึ้นซึ่งสะท้อนจากประสิทธิภาพที่ช้า
- ขาดซอร์สโค้ดมาตรฐานสำหรับการตรวจสอบโดยชุมชน
- การคาดเดาเกี่ยวกับ OCaml bytecode interpreter ที่อาจส่งผลต่อความแม่นยำในการเปรียบเทียบ
การออกแบบที่เต็มไปด้วยฟีเจอร์ดึงดูดความสนใจแม้จะมีปัญหาประสิทธิภาพ
นอกเหนือจากข้อกังวลด้านประสิทธิภาพแล้ว Dino ยังได้รับคำชมสำหรับชุดฟีเจอร์ที่ครอบคลุมซึ่งตอบสนองช่องว่างทั่วไปที่พบในภาษาสคริปต์ยอดนิยม ภาษานี้เสนอการผสมผสานที่น่าสนใจระหว่าง static typing กับ type inference ความสามารถ pattern matching ที่กว้างขวาง และฟีเจอร์สมัยใหม่อย่าง fibers ที่มักจะหายไปจากภาษาหลัก
ดูเหมือนว่าจะมีอัตราส่วนที่สูงของฟีเจอร์ประเภท 'ฉันใช้ X เพราะมันเป็นตัวเดียวที่มี Y' ทั้งหมดอยู่ในที่เดียว น่าสนใจมากสำหรับผู้ใช้ Python เพราะมันเติมเต็มช่องว่างของภาษาที่รู้จักกันดี
ปรัชญาการออกแบบของภาษานี้ดูเหมือนจะมุ่งเป้าไปที่นักพัฒนาที่มักเปลี่ยนภาษาบ่อยๆ เพื่อเข้าถึงฟีเจอร์เฉพาะ ตัวอย่างเช่น นักพัฒนาที่ชอบ Python แต่ต้องการ fibers ของ Ruby หรือผู้ที่ชอบ Ruby แต่ต้องการ pattern matching ขั้นสูง อาจพบว่าแนวทางแบบรวมของ Dino น่าสนใจ
คำถามเกี่ยวกับการพัฒนาและเครื่องมือ
การอภิปรายในชุมชนยังได้สัมผัสรายละเอียดการพัฒนาของภาษาและระบบนิเวศเครื่องมือต่างๆ Dino ถูกสร้างด้วยการสนับสนุน LLVM และเสนอการรวมที่กว้างขวางกับ C++, SQLite3 และ wxWidgets ซึ่งแสดงให้เห็นการมุ่งเน้นไปที่การพัฒนาแอปพลิเคชันเชิงปฏิบัติมากกว่าแค่ความสนใจทางวิชาการ
อย่างไรก็ตาม การขาดรหัสการทดสอบที่หาได้ง่ายและการวิเคราะห์ประสิทธิภาพโดยละเอียดทำให้ชุมชนยากที่จะประเมินความเป็นไปได้ในการใช้งานจริงของภาษานี้อย่างเหมาะสม ช่องว่างด้านความโปร่งใสนี้ได้ส่งผลให้เกิดความสงสัยเกี่ยวกับความพร้อมของภาษาสำหรับการใช้งานจริง
สรุป
แม้ว่า Dino จะนำเสนอแนวทางที่น่าสนใจในการผสมผสานกระบวนทัศน์การเขียนโปรแกรมหลายแบบในภาษาเดียว แต่คำถามด้านประสิทธิภาพที่ชุมชนยกขึ้นมาได้เน้นย้ำถึงความสำคัญของการพัฒนาที่แข็งแกร่งและการทดสอบที่โปร่งใสในการพัฒนาภาษา จนกว่าข้อกังวลเหล่านี้จะได้รับการแก้ไขด้วยข้อมูลประสิทธิภาพที่ชัดเจนและรหัสการทดสอบที่เข้าถึงได้ นักพัฒนาอาจยังคงลังเลที่จะนำ Dino มาใช้สำหรับโครงการจริงจัง แม้จะมีชุดฟีเจอร์ที่น่าสนใจก็ตาม