1 คะแนน โดย GN⁺ 1 일 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Odin เป็นภาษาโปรแกรมมิงที่เติบโตมาตลอด 10 ปีนับจากคอมมิตแรกในปี 2016 และกำลังเตรียมเวอร์ชันที่ถือเป็นรีลีสทางการครั้งแรกในชื่อ Odin 2027
  • เกณฑ์สำคัญของรีลีสทางการคือ สเปกภาษาที่สมบูรณ์ ซึ่งคอมไพเลอร์ต้องปฏิบัติตาม และถูกกำหนดให้เป็นเงื่อนไขที่ไม่ประนีประนอมใน Odin 2027
  • ฟีเจอร์ที่วางแผนไว้ประกอบด้วย inline assembly, แพ็กเกจ HTTP, การรองรับ TLS, Objective-C core library, การรองรับ iOS·Android, การปรับปรุงแพ็กเกจภาพ และแพ็กเกจสำหรับอ่าน/เขียน zip
  • กำหนดการตั้งเป้าเป็น Release Candidate ช่วงคริสต์มาสปี 2026 และรีลีสทางการในเดือนมกราคม 2027 โดยยังคงวงจรรีลีส nightly และ monthly เดิมไว้
  • ก่อนรีลีสทางการ จะมุ่งเน้นความเสถียร การเสริมความแข็งแกร่งให้ core library การปฏิบัติตามสเปก และการนำ bug report มาปรับปรุง มากกว่าการเพิ่มฟีเจอร์ใหม่ขนาดใหญ่

โรดแมปสู่ Odin 2027

  • Odin เติบโตมาตลอด 10 ปีนับจากคอมมิตแรกในปี 2016 จากโปรเจกต์งานอดิเรก มาเป็นภาษาที่ใช้ในซอฟต์แวร์เชิงพาณิชย์ของ JangaFX เป็นภาษาหลักของหลายบริษัท และถูกใช้ในเกมที่วางขายบน Steam
  • รีลีสทางการครั้งแรกที่เทียบเท่า 1.0 จะใช้ชื่อ Odin 2027
    • เลือกใช้รูปแบบการตั้งชื่อตามวันที่ แทน 1.0 แบบทั่วไป
    • เวอร์ชันแบบอิงวันที่ช่วยให้ดูได้ทันทีว่าเวอร์ชันที่ใช้อยู่เก่าแค่ไหน
    • เป็นแนวทางเพื่อให้มีอัปเดตที่สม่ำเสมอยิ่งขึ้น ขณะยังคงกำหนดการรีลีส nightly และ monthly ในปัจจุบันไว้
  • เงื่อนไขจำเป็นของรีลีสทางการคือ สเปกที่สมบูรณ์
    • คอมไพเลอร์ต้องปฏิบัติตามสเปกนี้
    • ถูกกำหนดให้เป็นรายการที่ไม่สามารถประนีประนอมได้ใน Odin 2027

ฟีเจอร์ที่วางแผนไว้และกำหนดการรีลีส

  • จะเพิ่ม inline assembly สำหรับผู้ใช้ที่ต้องการการควบคุมระดับต่ำ
    • ทำให้ควบคุมการสร้างโค้ดภาษาเครื่องภายใน Odin ได้อย่างละเอียด
  • core library จะขยายไปในทิศทางที่เพิ่มขอบเขตสิ่งที่มีมาให้ในตัว
    • รวม แพ็กเกจ HTTP ที่รอคอยกันมานาน
    • จะมีการรองรับ TLS มาด้วย และการรองรับ TLS ที่เขียนแบบเนทีฟจะถูกเพิ่มหลังรีลีสหลัก
    • สำหรับผู้ใช้ Apple จะนำ Objective-C core library เข้ามาใน Odin แบบเนทีฟ
    • รวมการรองรับ iOS และ Android ด้วย
    • จะเพิ่มการปรับปรุงแพ็กเกจภาพ และแพ็กเกจรองรับการอ่าน/เขียนไฟล์เก็บถาวร zip
  • กำหนดการรีลีสตั้งเป้าเป็น Release Candidate ช่วงคริสต์มาสปี 2026 และ รีลีสทางการในเดือนมกราคม 2027
  • ก่อนหน้านั้นจะมุ่งเน้นการทำให้เสถียร แทนที่จะใส่ฟีเจอร์ใหม่ขนาดใหญ่ในช่วงท้าย
    • เสริมความแข็งแกร่งให้ core library
    • ปฏิบัติตามสเปก
    • ตรวจสอบรายการในโรดแมป
    • ทดสอบผ่าน build แบบ monthly และ nightly และนำ bug report มาปรับปรุง
  • วิดีโอทั้งชุดถูกตัดต่อด้วย Blick โปรแกรมตัดต่อวิดีโอที่วางแผนไว้ซึ่งเขียนด้วย Odin

1 ความคิดเห็น

 
GN⁺ 1 일 전
ความคิดเห็นจาก Lobste.rs
  • ลองเล่นดูนิดหน่อยแล้ว Odin เป็นหนึ่งในภาษาที่ใช้ไปยิ่งรู้สึกดีขึ้นเรื่อย ๆ
    ภาษาที่ผสานความใช้งานได้จริงกับการออกแบบอย่างรอบคอบได้ดีขนาดนี้มีไม่มาก และในบรรดาภาษาใหม่ ๆ ช่วงหลัง ดูเหมือนหลายภาษาจะขาดอย่างใดอย่างหนึ่ง ไม่ก็ติดอยู่กับฟีเจอร์บางอย่าง หรือพยายามทำ “ทุกอย่าง” จนออกมาก้ำกึ่ง
    gingerBill ยังถ่ายทอดแนวคิดเกี่ยวกับการตัดสินใจได้เก่งมากด้วย ซึ่งส่วนตัวรู้สึกว่าเป็นทักษะที่ควรต้องฝึกให้มากขึ้นจริง ๆ

  • ตอนเห็น Odin ครั้งแรกเมื่อหลายปีก่อน คิดว่า “ว้าว เหมือน Go ที่ตัดสิ่งที่ฉันไม่ชอบใน Go ออกไปเลย” แต่คนรอบข้างบอกว่าเป็นแค่ภาษาอวดเท่อีกตัว คงอยู่ได้ไม่นาน ให้เมินไปเถอะ
    ดีใจมากที่ทุกคนคิดผิด และตอนนี้ก็ตื่นเต้นที่จะได้ลองใช้เอง

  • Odin ค่อนข้างเสถียรมาหลายปีแล้ว ดังนั้นจึงเป็นเรื่องน่ายินดีที่ Bill กับทีมจะไปสู่ 1.0 ในที่สุด
    เพราะมันเป็นสัญญาณที่จำเป็นว่าใช้งานในโปรดักชันได้ เมื่อบริษัทใหญ่ ๆ ประเมินทางเลือกต่าง ๆ
    สิ่งนี้ยังยกระดับมาตรฐานให้โปรเจกต์ตระกูล C อื่น ๆ ที่กำลังพัฒนาอยู่ เช่น Jai, C3, Zig, Hare ด้วย

  • ทุกวันนี้ผู้สร้างภาษาดูเหมือนจะถ่ายทอดความรู้สึกของการใช้ชีวิตอยู่กับผลิตภัณฑ์ของตัวเองผ่านสื่อรอบตัวได้ชัดเจนทีเดียว
    Gleam กับอีโคซิสเต็มและ release notes ของมันดูน่าดึงดูดและเข้าถึงง่าย ส่วน Zig เป็นภาษาที่มีเหตุผลและไม่อวดเท่มาก ซึ่งบทสัมภาษณ์ของ u/andrewrk ก็ให้ความรู้สึกคล้ายกัน
    ยังไม่เคยลอง Odin แต่ดูจากวิดีโอนี้อย่างเดียว ก็ทำให้คาดหวังได้ว่ามันจะเป็นภาษาที่รักษามาตรฐานผลิตภัณฑ์ไว้สูงและให้ผลลัพธ์ที่น่าพอใจ

  • ยังไม่เคยใช้ Odin เลย แต่พอดูวิดีโอแล้วก็อยากลองดูสักครั้ง

    • เคยลองแล้ว ถ้าเป็น system programmer และคุ้นกับ การจัดสรรหน่วยความจำแบบแมนนวล หรือ custom allocator ภาษานี้แทบไม่มีแรงเสียดทานเลย
      ไลบรารีมาตรฐานใกล้เคียงกับแบบ “มีแบตเตอรี่ให้พร้อม” และยัง vendor เครื่องมือคุณภาพสูงจำนวนมากที่ผู้คนใช้กันไว้ด้วย
      ตอนแรกไม่ได้คิดว่าจะใช้นาน แต่สุดท้ายก็ใช้ไปพักใหญ่ และสำหรับภาษาที่ “ก่อน 1.0” ถือว่าค่อนข้างเสถียรทีเดียว
  • คาแรกเตอร์แรงมาก
    จับตาดู Odin มาสักพักแล้ว และคิดว่าต่อไปคงได้ลองเอามาเล่นดูบ้าง

  • น่าสนุกที่ในวิดีโอมีหนังสือ Pascal วางไว้ให้เห็นเด่นชัด
    ถ้าดูแค่ไวยากรณ์อาจไม่รู้สึกแบบนั้น แต่ฉันมอง Odin เป็น ภาษาในสาย Pascal มาโดยตลอด

    • แค่เปลี่ยนไวยากรณ์การประกาศของ Odin จากสไตล์ Newsqueak/Jai ไปเป็นสไตล์ Pascal/Go ก็จะเห็นได้ 100% ว่าจริง ๆ แล้วมันคือ Pascal ที่ปลอมตัวมา
      ที่จริงในช่วงแรก ๆ ของ Odin ก็เคยเป็นแบบนั้นอยู่ประมาณหนึ่งสัปดาห์
      น่าสนใจที่หลายคนตัดสินภาษาแทบทั้งหมดจากไวยากรณ์การประกาศ ทั้งที่รูปแบบไวยากรณ์เฉพาะส่วนนั้นแทบไม่มีผลต่อ semantics เลย แต่กลับเป็นสิ่งที่ดึงดูดคนเข้ามาหรือผลักคนออกไปโดยสิ้นเชิง
      โดยส่วนตัวคิดว่าการใช้ : และ = ของ Odin กระชับและใช้ง่ายที่สุดเมื่อเทียบกับทางเลือกอื่น ๆ เพียงแต่เพราะไม่ใช่วิธีที่คุ้นตากันทั่วไป จึงอาจทำให้บางคนรู้สึกแปลกและถอยห่างไปได้