ความทะเยอทะยานด้านการเรียนรู้ของเครื่องของ OCaml เผชิญกับความสงสัยจากชุมชน แม้จะมีระบบนิเวศ Raven ใหม่

BigGo Editorial Team
ความทะเยอทะยานด้านการเรียนรู้ของเครื่องของ OCaml เผชิญกับความสงสัยจากชุมชน แม้จะมีระบบนิเวศ Raven ใหม่

ภาษาโปรแกรมมิ่ง OCaml กำลังมีความพยายามครั้งใหม่ในการเข้าสู่พื้นที่การเรียนรู้ของเครื่อง (machine learning) ด้วย Raven ระบบนิเวศที่ครอบคลุมซึ่งออกแบบมาเพื่อนำความสามารถด้านวิทยาศาสตร์ข้อมูลมาสู่ภาษาโปรแกรมมิ่งเชิงฟังก์ชันนี้ อย่างไรก็ตาม การสนทนาในชุมชนเผยให้เห็นถึงความสงสัยอย่างมีนัยสำคัญว่า OCaml จะสามารถเอาชนะความท้าทายในอดีตเพื่อแข่งขันกับ Python ในวงการวิทยาศาสตร์ข้อมูลได้หรือไม่

ระบบนิเวศการเรียนรู้ของเครื่องใหม่ของ OCaml

Raven มีเป้าหมายที่จะมอบเครื่องมือให้กับนักพัฒนา OCaml ที่เทียบเคียงได้กับชุดเครื่องมือวิทยาศาสตร์ข้อมูลยอดนิยมของ Python โครงการระยะก่อนอัลฟานี้ประกอบด้วย Ndarray (คล้ายกับ NumPy), Hugin (สำหรับการสร้างภาพ), Quill (สมุดบันทึกแบบโต้ตอบ) และ Rune (สำหรับการหาอนุพันธ์อัตโนมัติ) ระบบนิเวศนี้ถูกออกแบบมาเพื่อใช้ประโยชน์จากจุดแข็งที่มีอยู่ของ OCaml ในด้านความปลอดภัยของประเภทข้อมูลและประสิทธิภาพ ในขณะที่ทำให้ขั้นตอนการทำงานด้านการเรียนรู้ของเครื่องเป็นที่เข้าใจได้ง่ายสำหรับนักพัฒนา

นี่ไม่ใช่ความพยายามครั้งแรกที่จะนำการคำนวณทางวิทยาศาสตร์มาสู่ OCaml สมาชิกในชุมชนได้กล่าวถึงความพยายามก่อนหน้านี้ เช่น Owl ซึ่งเป็นไลบรารีการคำนวณทางวิทยาศาสตร์ที่เพิ่งได้รับการฟื้นฟูขึ้นมาใหม่ ผู้แสดงความคิดเห็นคนหนึ่งเล่าว่าเคยใช้ Owl เมื่อประมาณสิบปีก่อน พบว่าใช้งานได้แต่ค่อนข้างยากลำบากเมื่อเทียบกับ NumPy แม้ว่าในเวลานั้นจะมีประสบการณ์กับ OCaml มากกว่า Python ก็ตาม

การเปรียบเทียบระบบนิเวศ Python กับ Raven

งาน ระบบนิเวศ Python ระบบนิเวศ Raven
การคำนวณเชิงตัวเลข NumPy Ndarray
การแสดงภาพ Matplotlib, Seaborn Hugin
สมุดบันทึก Jupyter Quill
การหาอนุพันธ์อัตโนมัติ JAX Rune
การจัดการดาต้าเฟรม Pandas ยังไม่มีให้ใช้งาน
การเรียนรู้เชิงลึก PyTorch, TensorFlow ยังไม่มีให้ใช้งาน

ความท้าทายในการนำ OCaml มาใช้ (จากการสนทนาในชุมชน)

  • การรองรับมัลติคอร์มาช้า
  • การรับรู้ว่าเข้าถึงได้ยากกว่าตัวเลือกอื่น
  • การสนับสนุน Windows ที่มีจำกัดจนถึงเมื่อไม่นานมานี้
  • แนวคิดขั้นสูง (แนวทางเชิงฟังก์ชัน, การเขียนโปรแกรมระดับโมดูล)
  • ชุมชนที่เล็กกว่าเมื่อเทียบกับ Python และภาษาอื่นๆ
  • การผลักดันทางการตลาดในชุมชนที่พูดภาษาอังกฤษมีน้อย

ความท้าทายในอดีตที่ส่งผลต่อการยอมรับ OCaml

การสนทนาในชุมชนได้เน้นย้ำถึงปัจจัยหลายประการที่เคยจำกัดการยอมรับ OCaml ในวงกว้าง โดยเฉพาะอย่างยิ่งในพื้นที่การเรียนรู้ของเครื่อง ปัญหาสำคัญประการหนึ่งคือการล่าช้าในการนำการรองรับมัลติคอร์มาใช้ ซึ่งผู้แสดงความคิดเห็นคนหนึ่งแนะนำว่าอาจส่งผลให้ภูมิทัศน์ของภาษาโปรแกรมมิ่งในปัจจุบันเปลี่ยนแปลงไปอย่างมากหากมีให้ใช้งานประมาณปี 2010

น่าเสียดายที่ไวยากรณ์ที่ปรับปรุงใหม่ไม่เคยได้รับความนิยม และที่ OCaml ทำพลาดในเรื่องมัลติคอร์มานานกว่าทศวรรษ ถ้า OCaml มีมัลติคอร์ที่ดีประมาณปี 2010 ภูมิทัศน์ของภาษาโปรแกรมมิ่งในปัจจุบันอาจดูแตกต่างออกไป

คนอื่น ๆ ได้คัดค้านการประเมินนี้ โดยชี้ให้เห็นว่า Python ประสบความสำเร็จอย่างมากแม้จะมีข้อจำกัดด้านมัลติคอร์ที่คล้ายคลึงกันในช่วงเวลาเดียวกัน คำอธิบายทางเลือกสำหรับการยอมรับ OCaml ที่มีจำกัดรวมถึงการไม่ได้มีต้นกำเนิดจากอเมริกา การขาดการตลาดในภาษาอังกฤษ และแนวคิดการเขียนโปรแกรมขั้นสูงที่ล้ำสมัยเกินไปสำหรับนักพัฒนาหลายคน

การแข่งขันจากภาษาเชิงฟังก์ชันอื่น ๆ

ความคิดเห็นเผยให้เห็นว่า OCaml เผชิญกับการแข่งขันไม่เพียงแต่จาก Python แต่ยังรวมถึงจากภาษาโปรแกรมมิ่งเชิงฟังก์ชันอื่น ๆ ด้วย ผู้แสดงความคิดเห็นหลายคนแสดงความชื่นชอบทางเลือกอื่น เช่น Haskell, Elixir หรือ F# โดยเฉพาะอย่างยิ่ง F# ถูกกล่าวถึงว่ามีศักยภาพที่เป็นประโยชน์สำหรับการประยุกต์ใช้การเรียนรู้ของเครื่อง เนื่องจากการเข้าถึงระบบนิเวศ .NET ที่กว้างขวางกว่า ในขณะที่ยังคงรักษาฟังก์ชันการทำงานส่วนใหญ่ของ OCaml ไว้

โครงการ F# บางส่วนที่กล่าวถึงในการสนทนาได้แก่ TorchSharp, DiffSharp และ Furnace ซึ่งบ่งชี้ว่าภาษาเชิงฟังก์ชันของ Microsoft อาจมีจุดเริ่มต้นที่ดีกว่าในการสร้างเครื่องมือการเรียนรู้ของเครื่องที่มีระบบประเภทข้อมูลที่แข็งแกร่ง

ความรู้สึกของชุมชนและแนวโน้มในอนาคต

แม้จะมีการประกาศเกี่ยวกับ Raven แต่ความรู้สึกโดยรวมของชุมชนดูเหมือนจะระมัดระวัง ผู้แสดงความคิดเห็นหลายคนชื่นชมข้อดีทางเทคนิคของ OCaml แต่แสดงความสงสัยเกี่ยวกับความสามารถในการได้รับแรงฉุดที่สำคัญในพื้นที่การเรียนรู้ของเครื่อง ตามที่ผู้แสดงความคิดเห็นคนหนึ่งกล่าวไว้ พวกเขาไม่ได้คาดหวังว่าจะมีอะไรที่จะสามารถแย่งส่วนแบ่งที่มีขนาดใหญ่จาก Python ในพื้นที่ ML/DL ได้

คนอื่น ๆ อธิบาย OCaml ว่าเป็นภาษาที่หยาบกร้านแต่สร้างโค้ดเบสที่เสถียรและบำรุงรักษาได้ แต่ไม่จำเป็นต้องสนุกที่จะเล่นหรือสำรวจแนวคิด การรับรู้นี้อาจเป็นอุปสรรคสำคัญต่อการยอมรับในสาขาที่เน้นการวิจัยอย่างการเรียนรู้ของเครื่อง ซึ่งการทดลองอย่างรวดเร็วมักได้รับการให้คุณค่า

โครงการ Raven เป็นความพยายามอย่างจริงจังที่จะทำให้ความสามารถของ OCaml ทันสมัยสำหรับวิทยาศาสตร์ข้อมูล แต่การสนทนาในชุมชนบ่งชี้ว่ามันเผชิญกับการต่อสู้ที่ยากลำบากกับระบบนิเวศที่มีอยู่และการรับรู้ที่ยังคงอยู่เกี่ยวกับประสบการณ์ของนักพัฒนาในภาษานี้ ยังคงต้องรอดูว่า OCaml จะสามารถใช้ประโยชน์จากจุดแข็งด้านความปลอดภัยของประเภทข้อมูลและประสิทธิภาพเพื่อสร้างพื้นที่เฉพาะในโลกของการเรียนรู้ของเครื่องได้หรือไม่

อ้างอิง: Raven