ในโลกของการพัฒนาระบบปฏิบัติการซึ่งภาษา C และ C++ ครองตำแหน่งในการเขียนโปรแกรมระดับต่ำมายาวนาน โปรเจกต์ทดลองชื่อ Jacqueline ได้จุดประกายความสนใจขึ้นใหม่ต่อทางเลือกของภาษาโปรแกรมที่ไม่คาดคิด นั่นคือ Pascal บูตโหลดเตอร์ที่เขียนด้วยภาษา Free Pascal สำหรับสถาปัตยกรรม i386 นี้ ได้ก่อให้เกิดการอภิปรายในหมู่นักพัฒนาถึงประวัติศาสตร์ ความสามารถ และความยืดหยุ่นที่น่าประหลาดของภาษาโปรแกรมที่มักถูกมองว่าล้าสมัยสำหรับการเขียนโปรแกรมระบบ
การฟื้นคืนชีพของ Pascal ในการเขียนโปรแกรมระบบ
บูตโหลดเตอร์ Jacqueline เป็นตัวแทนของการทดลองทางเทคนิคที่น่าสนใจ ซึ่งท้าทายความเชื่อดั้งเดิมเกี่ยวกับภาษาโปรแกรมใดที่เหมาะสมกับงานระบบระดับต่ำ แม้ว่าโปรเจกต์เองจะมีความเรียบง่าย—ผู้สร้างอธิบายว่ามันเสร็จสมบูรณ์เมื่อสามารถแสดงคำว่า Hello World ได้—แต่มันก็แสดงให้เห็นถึงความสามารถที่เหนือความคาดหมายของ Pascal ในการเขียนโปรแกรมแบบเบร์เมทัล ภาษา Free Pascal มีคุณสมบัติที่จำเป็นสำหรับการเขียนโปรแกรมระบบ รวมถึงพอยน์เตอร์, ตัวดำเนินการที่อยู่หน่วยความจำ และการเชื่อมต่อกับแอสเซมบลีแบบอินไลน์ การผสมผสานนี้ทำให้นักพัฒนาสามารถทำงานกับฮาร์ดแวร์ได้โดยตรง ในขณะที่ยังคงรักษาโครงสร้างไวยากรณ์ของ Pascal ไว้
มันผ่านมานานแล้วตั้งแต่ผมทำสิ่งนี้ (ปี 2019) มันเป็นเพียงต้นแบบเพื่อดูว่าบูตโหลดเตอร์ PC มาตรฐานจะสามารถส่งต่อการควบคุมไปยังสิ่งที่ไม่ได้เขียนด้วย C (หรือ Rust) ได้หรือไม่
การมีอยู่ของโปรเจกต์นี้ได้กระตุ้นให้เกิดการทบทวนถึงความสำคัญทางประวัติศาสตร์ของ Pascal ในการพัฒนาระบบปฏิบัติการ ผู้แสดงความคิดเห็นหลายคนระบุว่าระบบหลักหลายระบบ รวมถึง Mac OS รุ่นแรก, ระบบปฏิบัติการ Lisa ของ Apple และ Berkeley P-System ถูกพัฒนาขึ้นด้วย Pascal ในตอนแรก ซึ่งเป็นการท้าทายแนวคิดที่ว่า C เป็นตัวเลือกเริ่มต้นเสมอสำหรับการเขียนโปรแกรมระบบ
ระบบปฏิบัติการในอดีตที่เขียนด้วยภาษา Pascal
- Apple Lisa OS
- Mac OS เวอร์ชันแรกๆ
- Berkeley P-System (UCSD p-System)
- ระบบปฏิบัติการต่างๆ ในยุค 1980
การอภิปรายเรื่องภาษาย้อนคืนมาใหม่
การสนทนาเกี่ยวกับ Jacqueline ได้พัฒนาไปสู่การพูดคุยในวงกว้างเกี่ยวกับความชอบในภาษาโปรแกรมและบริบททางประวัติศาสตร์ นักพัฒนาบางคนแสดงความประหลาดใจกับการเลือกใช้ Pascal ในขณะที่บางคนปกป้องข้อดีของภาษา การอภิปรายนี้ได้触及到ความตึงเครียดที่คุ้นเคยระหว่างกลุ่มผู้ใช้ภาษาโปรแกรมต่างๆ ที่มีมานานหลายทศวรรษ ตั้งแต่การถกเถียงระหว่าง Pascal กับ C แบบคลาสสิก ไปจนถึงความชอบในภาษายุคใหม่
ผู้แสดงความคิดเห็นหลายคนอ้างอิงถึงบทวิจารณ์ Pascal อันโด่งดังของ Brian Kernighan ในปี 1981 ในขณะที่บางคนแย้งว่าข้อวิจารณ์หลายอย่างของเขาถูกแก้ไขในการใช้งาน Pascal รุ่นหลังๆ อย่างเช่น TurboPascal การสนทนานี้เน้นย้ำว่าความชอบในภาษามักสะท้อนถึงประสบการณ์ส่วนตัวและข้อจำกัดเฉพาะของยุคสมัยต่างๆ ในประวัติศาสตร์คอมพิวเตอร์ แทนที่จะเป็นความเหนือกว่าทางเทคนิคที่สัมบูรณ์
คุณสมบัติของ Free Pascal สำหรับการเขียนโปรแกรมระบบ
- รองรับ Pointer โดยใช้ตัวดำเนินการ ^
- รองรับตัวดำเนินการที่อยู่หน่วยความจำโดยใช้ @
- รองรับ Inline assembly ผ่านคีย์เวิร์ด asm
- สามารถสร้างไฟล์ object มาตรฐาน (.o) ได้
- รองรับรูปแบบไฟล์ปฏิบัติการ PE และ ELF
i386 ในฐานะสนามทดลองสำหรับการพัฒนา OS แบบทดลอง
การเลือกสถาปัตยกรรม i386 สำหรับ Jacqueline ยังดึงดูดความเห็นจากชุมชนนักพัฒนาอีกด้วย ผู้เข้าร่วมหลายคนระบุว่า i386 จัดเตรียมแพลตฟอร์มที่เหมาะอย่างยิ่งสำหรับโปรเจกต์ระบบปฏิบัติการแบบทดลอง เนื่องจากข้อจำกัดของมันป้องกันไม่ให้โครงการขยายscope เกินไปและรักษาโฟกัสไว้ที่คุณค่าทางการศึกษา ลักษณะที่มีเอกสารบันทึกไว้เป็นอย่างดีและความสำคัญทางประวัติศาสตร์ของสถาปัตยกรรมนี้ทำให้มันเข้าถึงได้สำหรับการเรียนรู้ ในขณะที่ข้อจำกัดทางเทคนิคส่งเสริมการนำไปใช้ที่สะอาดและมีโฟกัส
มุมมองนี้สะท้อนให้เห็นถึงการกล่าวถึงอย่างเรียบง่ายในประกาศ Linux ครั้งแรกของ Linus Torvalds ที่เตือนใจนักพัฒนาว่าการเริ่มต้นด้วยแพลตฟอร์มที่มีข้อจำกัดและเข้าใจดีแล้ว สามารถนำไปสู่ประสบการณ์การเรียนรู้และการพัฒนาต้นแบบที่ประสบความสำเร็จมากขึ้น ชุดเครื่องมือที่成熟และเอกสารประกอบที่ครอบคลุมของ i386 ทำให้มันเหมาะสมเป็นพิเศษสำหรับการทดลองอย่าง Jacqueline ที่สำรวจทางเลือกของภาษาที่ไม่เป็นไปตามธรรมเนียมปฏิบัติ
โปรเจกต์ Jacqueline ทำหน้าที่เป็นเครื่องเตือนใจว่าความสามารถของภาษาโปรแกรมมักขยายเกินกว่ากรณีการใช้งานทั่วไป และภาษาจากอดีตยังสามารถให้ข้อมูลเชิงลึกที่มีค่าแก่นักพัฒนายุคใหม่ได้ แม้ว่าตัวบูตโหลดเตอร์เองจะยังคงเป็นเพียงต้นแบบที่เรียบง่าย แต่การอภิปรายที่มันจุดประกายขึ้นได้เน้นย้ำถึงความสนใจที่ยั่งยืนในการออกแบบภาษาโปรแกรม สถาปัตยกรรมระบบ และคุณค่าทางการศึกษาของการทบทวนพื้นฐานการคำนวณใหม่ด้วยมุมมองที่สดใส
อ้างอิง: Jacqueline
