โปรเจกต์บูตโหลดเตอร์ Pascal ก่อให้เกิดการถกเถียงถึงภาษาโปรแกรมในอดีต

ทีมชุมชน BigGo
โปรเจกต์บูตโหลดเตอร์ Pascal ก่อให้เกิดการถกเถียงถึงภาษาโปรแกรมในอดีต

ในโลกของการพัฒนาระบบปฏิบัติการซึ่งภาษา 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