วงการโปรแกรมมิ่งกำลังฮือฮากับโครงการที่สร้างทั้งความขบขันและการถกเถียง: Pretty C ไลบรารีแบบ header-only ที่มีจุดมุ่งหมายในการทำให้ภาษา C เข้าถึงได้ง่ายขึ้นผ่านการใช้ syntactic sugar อย่างมากมาย ในขณะที่นักพัฒนาบางคนมองว่าเป็นไอเดียที่ชาญฉลาด คนอื่นๆ กลับมองว่านี่คือบทเรียนที่แสดงให้เห็นว่าการใช้เวทมนตร์ macro สามารถไปได้ไกลแค่ไหน
จุดดีและจุดด้อย
Pretty C สร้างโดยนักพัฒนาที่ชื่อ Aartaka แนะนำชุดของ macro และความสะดวกสบายที่เปลี่ยนไวยากรณ์แบบดั้งเดิมของ C ให้มีลักษณะคล้ายกับภาษาสคริปต์สมัยใหม่ เป้าหมายของโครงการที่ระบุไว้อย่างติดตลกคือการใส่ syntactic sugar มากเสียจนอาจทำให้นักพัฒนา C เป็นโรคหัวใจจากภาวะเบาหวาน
เอกสารที่เน้นแนวคิดการเขียนโปรแกรมใหม่ๆ ที่เกี่ยวข้องกับการปรับเปลี่ยนไวยากรณ์ใน Pretty C |
บริบททางประวัติศาสตร์
ที่น่าสนใจคือ นี่ไม่ใช่ความพยายามครั้งแรกในการทำให้ไวยากรณ์ของ C หวานขึ้น ชุมชนได้ชี้ให้เห็นถึงเหตุการณ์ในประวัติศาสตร์ที่น่าสนใจ: Stephen Bourne ผู้สร้าง Bourne Shell เคยใช้ preprocessor macro เพื่อทำให้โค้ด C ดูคล้ายกับ ALGOL ในการพัฒนา Unix V7 shell รุ่นแรก การปฏิบัตินี้โด่งดังมากจนกลายเป็นแรงบันดาลใจในการสร้าง International Obfuscated C Code Contest (IOCCC)
การนำไปใช้ทางเทคนิค
Pretty C แนะนำฟีเจอร์หลายอย่างผ่านเวทมนตร์ preprocessor:
- Type aliases (เช่น การใช้ string แทน char*)
- ตัวดำเนินการบูลีนที่อ่านง่าย
- กลไกการติดตามทรัพยากร
- เครื่องมือการวนซ้ำแบบทั่วไป
- ยูทิลิตี้สำหรับการผูกมัดตัวแปรในบล็อก
ภาพรวมของคุณสมบัติการเขียนโปรแกรมภาษา C ที่มีลักษณะคล้ายคลึงกับการปรับปรุงที่นำเสนอโดยแมโคร Pretty C |
ข้อถกเถียงและข้อกังวล
โครงการนี้ได้จุดประเด็นถกเถียงในชุมชนนักพัฒนาเกี่ยวกับประเด็นสำคัญหลายข้อ:
-
ความปลอดภัยของประเภทข้อมูล : แม้ว่า Pretty C จะอ้างว่ามี strong typing แต่นักพัฒนาหลายคนชี้ให้เห็นว่าระบบประเภทข้อมูลพื้นฐานของ C ยังคงไม่เปลี่ยนแปลง การอภิปรายแสดงให้เห็นถึงความสับสนระหว่าง static typing และ strong typing
-
การเปรียบเทียบตัวเลขทศนิยม : การใช้งานการเปรียบเทียบความเท่ากันของตัวเลขทศนิยมได้รับการตรวจสอบทางเทคนิค โดยผู้เชี่ยวชาญระบุว่าวิธีการเปรียบเทียบแบบ epsilon ที่ใช้อยู่อาจไม่ทำงานอย่างถูกต้องสำหรับตัวเลขทุกช่วง
-
ความกังวลเรื่องการบำรุงรักษา : นักพัฒนาบางคนแสดงความกังวลเกี่ยวกับการใช้ macro อย่างกว้างขวาง ซึ่งอาจทำให้การแก้ไขข้อผิดพลาดและการบำรุงรักษาโค้ดยากขึ้น แม้ว่าจะมีเจตนาที่จะทำให้ C เข้าถึงได้ง่ายขึ้นก็ตาม
มองไปข้างหน้า
แม้ว่า Pretty C อาจไม่ได้ปฏิวัติการเขียนโปรแกรมภาษา C แต่ก็ถือเป็นการทดลองที่น่าสนใจในด้านการออกแบบภาษา และยกประเด็นคำถามสำคัญเกี่ยวกับความสมดุลระหว่างการเข้าถึงได้ง่ายและการบำรุงรักษา โครงการนี้ยังจุดประกายการสนทนาที่มีคุณค่าเกี่ยวกับระบบประเภทข้อมูลและการใช้งานการคำนวณเลขทศนิยม
สำหรับผู้ที่สนใจทดลองใช้ Pretty C สามารถทำได้ง่ายๆ เพียงแค่รวม header file เดียว แต่ชุมชนแนะนำให้พิจารณาอย่างรอบคอบก่อนนำไปใช้ในสภาพแวดล้อมการผลิตจริง ดังที่ผู้แสดงความคิดเห็นคนหนึ่งกล่าวไว้อย่างเหมาะสมว่า โครงการนี้ทั้งน่ากลัวและน่าทึ่งในเวลาเดียวกัน - บางทีนี่อาจเป็นสิ่งที่ทำให้มันกลายเป็นประเด็นที่น่าสนใจในชุมชนโปรแกรมเมอร์