ภาษาโปรแกรม KawaiiVM จุดประกายการอภิปรายในชุมชนแม้จะมีเอกสารที่สับสน

ทีมชุมชน BigGo
ภาษาโปรแกรม KawaiiVM จุดประกายการอภิปรายในชุมชนแม้จะมีเอกสารที่สับสน

ภาษาโปรแกรมใหม่ที่ออกแบบมาสำหรับ Kawaii Virtual Machine ( KVM ) ได้เกิดขึ้น แม้ว่าเอกสารประกอบจะทำให้หลายคนในชุมชนเทคโนโลยีต้องเกาหัวกันก็ตาม ภาษานี้มีเป้าหมายเพื่อให้แนวทางการเขียนโปรแกรมที่เน้นความเรียบง่ายและประสิทธิภาพ แต่การนำเสนอกลับสร้างความสับสนมากกว่าความชัดเจน

โครงการ KawaiiVM ดูเหมือนจะเป็นส่วนหนึ่งของการสนทนาที่กว้างขึ้นเกี่ยวกับเวอร์ชวลแมชชีนขนาดเล็กและแพลตฟอร์มคอมพิวเตอร์ทางเลือก การอภิปรายในชุมชนได้เปรียบเทียบกับระบบมินิมอลลิสต์อื่น ๆ โดยเฉพาะการสังเกตความคล้ายคลึงกับโครงการอย่าง Uxn และ Varvara ซึ่งมุ่งเน้นการสร้างสภาพแวดล้อมรันไทม์ที่เรียบง่ายและพกพาได้

ปรัชญาการออกแบบที่เน้นประสิทธิภาพเป็นหลัก

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

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

หมายเหตุ: ภาระของ CPU หมายถึงเวลาประมวลผลเพิ่มเติมที่โปรเซสเซอร์ของคอมพิวเตอร์ต้องใช้ในการจัดการงานนอกเหนือจากตรรกะโปรแกรมหลัก

ข้อกำหนดของภาษา KawaiiVM :

  • ชนิดข้อมูล: ใช้เฉพาะไบต์ขนาด 8 บิตแบบไม่มีเครื่องหมายเท่านั้น
  • เป้าหมายการคอมไพล์: ภาษา C
  • การเรียกใช้ API: รองรับอาร์กิวเมนต์ได้สูงสุด 2 ไบต์
  • โมเดลหน่วยความจำ: แบบ Stack-based พร้อมการจัดการไบต์โดยตรง
  • Parser: แนะนำให้ใช้งานใน Rust เพื่อประสิทธิภาพหน่วยความจำ
  • การอนุญาตใช้งาน: ต้องได้รับอนุมัติแยกต่างหากสำหรับการแจกจ่ายซอร์สโค้ดทั้งหมด

การตอบรับของชุมชนและการเปรียบเทียบ

การตอบสนองของชุมชนเทคโนโลยีมีความหลากหลาย โดยหลายคนเปรียบเทียบกับสภาพแวดล้อมการเขียนโปรแกรมเชิงทดลองอื่น ๆ นักพัฒนาบางคนสังเกตความคล้ายคลึงกับระบบที่ใช้ Forth และเวอร์ชวลแมชชีนมินิมอลลิสต์ที่ให้ความสำคัญกับการพกพาได้มากกว่าความง่ายในการใช้งาน

พวกเขาทำสิ่งที่ฉันอยากทำมาตลอดและทำได้ดีมาก ฉันมีความสุขสำหรับพวกเขา พวกเขาต้องสนุกมากในการเขียนซอฟต์แวร์แน่ ๆ

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

ความท้าทายด้านเอกสาร

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

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

คุณสมบัติหลักของภาษา:

  • byte: ตัวระบุพื้นฐานสำหรับการอ่าน/เขียนไบต์เดี่ยว
  • list: คอนเทนเนอร์สำหรับไบต์หลายตัว ใช้หลักๆ สำหรับการวนลูป
  • stack: ตัวอ่านพื้นที่หน่วยความจำที่มีการล้างข้อมูลอัตโนมัติ
  • compile_again: แมโครสำหรับการเรียกซ้ำของลูป
  • ไม่มีตัวคั่นแบบดั้งเดิม - การแยกวิเคราะห์ขึ้นอยู่กับลำดับ
  • ไม่มีการตรวจสอบประเภทข้อมูลขณะรันไทม์ - ประเภทข้อมูลทั้งหมดมีอยู่เฉพาะในเวลาคอมไพล์เท่านั้น

บทสรุป

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

อ้างอิง: a programming language for the Kawaii virtual machine