Hurl, ภาษาที่ผิดปกติอย่างยิ่ง
ภาพรวม
- Hurl เป็นภาษาที่สร้างขึ้นเพื่อสำรวจแนวคิดของภาษาที่ใช้การจัดการข้อยกเว้นเป็นกลไกควบคุมการไหลเพียงอย่างเดียว
- ภาษานี้เริ่มต้นจากบทสนทนาระหว่าง Nicole Tietz-Sokolskaya และเพื่อน ๆ ที่ Recurse Center
- เว็บไซต์นี้มีเอกสารการใช้งาน Hurl, ตัวอย่าง, คู่มือดีบัก และ FAQ
การติดตั้งและการใช้งาน
- ซอร์สโค้ดของ Hurl มีให้ในรีโพซิทอรีของ Hurl
- หากพบบั๊กหรือข้อผิดพลาด ยินดีรับแพตช์ทางอีเมล แต่ต้องโอนสิทธิทั้งหมดของแพตช์นั้น
- ทั้งนี้เพื่อคงความสามารถในการรีไลเซนส์และการออกไลเซนส์เชิงพาณิชย์
ไวยากรณ์และปรัชญาของ Hurl
- Hurl เป็นภาษาที่มีการจัดการข้อยกเว้นเป็นศูนย์กลาง
- การควบคุมการไหลทั้งหมดถูกทำผ่านการจัดการข้อยกเว้นเท่านั้น
แพตเทิร์นทั่วไป
- จัดการการไหลของโปรแกรมผ่านการจัดการข้อยกเว้น
- ไม่ใช้โครงสร้างควบคุมแบบดั้งเดิม (เช่น if, for)
ไลบรารีมาตรฐาน
- Hurl มีไลบรารีมาตรฐานให้ใช้งาน
- รวมฟังก์ชันหลากหลายที่อิงกับการจัดการข้อยกเว้น
ตัวอย่าง
- มีตัวอย่างโค้ดหลากหลายให้ศึกษา
- ช่วยให้เข้าใจวิธีใช้งาน Hurl ได้ง่ายขึ้นผ่านตัวอย่างโค้ด
การดีบักและข้อผิดพลาด
- มีคู่มือการดีบักให้ใช้งาน
- อธิบายวิธีจัดการข้อผิดพลาดอย่างมีประสิทธิภาพ
FAQ
- มีคำตอบสำหรับคำถามที่พบบ่อย
- ครอบคลุมปัญหาทั่วไปที่อาจเกิดขึ้นระหว่างใช้งาน Hurl
คำชื่นชมต่อ Hurl
- Erika Rowland: "เจ้าสิ่งอัปลักษณ์นี่ทั้งสวยงาม และฉันไม่อยากแตะต้องมันเลยสักนิด ฉันไม่ต้องการให้ชื่อของฉันไปเกี่ยวข้องกับมัน"
- Nicole Tietz-Sokolskaya: "ฉันตัดสินใจทำให้ภาษานี้กลายเป็นจริง ขอโทษด้วย"
- Mary McGrath: "🤮" (นี่ใช้เป็นคำอ้างอิงได้ไหม?)
- nate (@nmoo@mas.to): "รับรองความเพี้ยน™!"
ซอร์สโค้ด
- ซอร์สโค้ดของ Hurl และเว็บไซต์นี้มีให้ในรีโพซิทอรีของ Hurl
- ยินดีรับแพตช์ทางอีเมล แต่ต้องโอนสิทธิทั้งหมด
ใบอนุญาต
- โปรเจกต์นี้สามารถใช้งานได้ภายใต้หนึ่งในสามใบอนุญาตต่อไปนี้:
- AGPL-3.0
- GAL-1.0 (Gay Agenda License)
- ใบอนุญาตเชิงพาณิชย์
- สามารถเลือกใช้ได้หนึ่งแบบจากทั้งสามใบอนุญาต
ความเห็นของ GN⁺
- ภาษาแบบยึดข้อยกเว้นเป็นศูนย์กลาง: Hurl ใช้แนวทางที่ไม่เหมือนใคร โดยวางการจัดการข้อยกเว้นไว้เป็นแกนหลักของการควบคุมการไหล แทนที่โครงสร้างควบคุมแบบดั้งเดิม สิ่งนี้บังคับให้นักพัฒนาต้องคิดในรูปแบบใหม่
- คุณค่าด้านการเรียนรู้: Hurl อาจช่วยให้เข้าใจความสำคัญและวิธีใช้การจัดการข้อยกเว้นได้ลึกซึ้งขึ้น โดยเฉพาะการชี้ให้เห็นอย่างชัดเจนถึงปัญหาที่เกิดจากการใช้ข้อยกเว้นอย่างไม่เหมาะสม
- ประเด็นด้านการใช้งานจริง: การใช้ Hurl ในงานจริงอาจเป็นเรื่องท้าทาย สำหรับนักพัฒนาที่คุ้นเคยกับโครงสร้างควบคุมแบบดั้งเดิม มันอาจเป็นกำแพงใหญ่
- ความร่วมมือกับชุมชน: ซอร์สโค้ดของ Hurl เปิดให้ใช้งานแบบโอเพนซอร์ส และสนับสนุนการมีส่วนร่วมจากชุมชน ซึ่งอาจส่งผลดีต่อการพัฒนาโปรเจกต์และการแก้ไขบั๊ก
- ทางเลือกด้านใบอนุญาต: การมีใบอนุญาตหลายแบบช่วยเพิ่มทางเลือกให้ผู้ใช้ และมีส่วนช่วยเพิ่มความยืดหยุ่นให้กับโปรเจกต์
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
สรุปรวมความคิดเห็นจาก Hacker News
การบังคับใช้ namespace และ import ตอนออกแบบภาษาโปรแกรมเป็นเรื่องสำคัญ
ความเห็นเกี่ยวกับการจัดการข้อยกเว้น
ตัวอย่างการใช้
tosstossใช้เมื่อฟังก์ชันต้องส่งกลับหลายค่าภาษา Hurl และระบบ condition
การใช้โดเมนส่วนขยาย .wtf
ภาษาที่คล้ายกับ algebraic effects
ความรู้สึกที่ปะปนกันต่อภาษา Hurl
ความแตกต่างระหว่าง
tossกับhurlhurlสามารถถูกจับได้ แต่tossจับไม่ได้tosserโครงสร้างภาษาของ
tosstossจะไล่สำรวจสแตกเพื่อหาตัวจัดการข้อยกเว้น แล้วกลับไปทำงานต่อเหมือนไม่มีอะไรเกิดขึ้นtossใช้toss handlerแทน