การรวม Unix และ Smalltalk ปลุกยุคฟื้นฟูการพัฒนาในหมู่ผู้สร้างสรรค์

ทีมชุมชน BigGo
การรวม Unix และ Smalltalk ปลุกยุคฟื้นฟูการพัฒนาในหมู่ผู้สร้างสรรค์

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

แก่นแนวคิด: ตัวปฏิบัติการเป็นเมธอด

ข้อเสนอหลักจาก Joel Jakubovic นักวิจัยจาก Charles University เสนอให้มองตัวปฏิบัติการของ Unix เป็นเมธอดของ Smalltalk และมองกระบวนการต่าง ๆ ว่าเป็นการกระตุ้นทำงานของเมธอด การเปลี่ยนแนวคิดที่ดูเหมือนเรียบง่ายนี้อาจเปลี่ยนแปลงวิธีที่เราคิดเกี่ยวกับการประกอบสร้างซอฟต์แวร์ได้ แทนที่จะเป็นแอปพลิเคชันขนาดใหญ่แบบรวมศูนย์ เราจะได้ทำงานกับส่วนประกอบเล็ก ๆ นับไม่ถ้วนที่นำกลับมาใช้ใหม่ได้ และสื่อสารกันผ่านการส่งข้อความ วิธีการนี้ประสานกลมกลืนกับหลักปรัชญาหลายภาษาของ Unix ในขณะเดียวกันก็นำความสะดวกสบายในการพัฒนาที่ได้รับการยกย่องของ Smalltalk สู่ระบบกระแสหลัก

วิสัยทัศน์นี้เชื่อมโยงโดยตรงกับความพยายามทางประวัติศาสตร์ในการผสมผสานโลกทั้งสองนี้ ดังที่ผู้แสดงความคิดเห็นหนึ่งระบุ Xerox PARC พยายามนำสภาพแวดล้อมการเขียนโปรแกรมของพวกเขาสู่ UNIX ตั้งแต่ช่วงปลายทศวรรษ 1980 แล้ว ด้วยโปรเจกต์เช่น Interlisp-D และ Cedar ที่ย้ายมาใช้ ความพยายามเหล่านี้แสดงให้เห็นถึงการตระหนักรู้ในยุคเริ่มต้นว่าการพัฒนาสไตล์โต้ตอบแบบอิมเมจมีข้อได้เปรียบที่สำคัญซึ่งคุ้มค่าที่จะรักษาไว้ แม้ภายในระบบนิเวศของ Unix

แนวคิดทางเทคนิคที่กล่าวถึง:

  • Unix executable ในฐานะเมธอดของ Smalltalk
  • โปรเซสในฐานะการเรียกใช้เมธอด
  • การเขียนโปรแกรมแบบเน้นข้อความ (Message-oriented programming)
  • อิมเมจหน่วยความจำแบบถาวร (Persistent memory images)
  • ระบบปฏิบัติการแบบพื้นที่แอดเดรสเดียว (Single-address space operating systems) (Opal)
  • การจัดเก็บข้อมูลถาวรแบบตั้งฉาก (Orthogonal persistence)
  • การออกแบบซอฟต์แวร์แบบคอมโพเนนต์
  • การประกอบโปรเซสแบบละเอียด (Fine-grained process composition)

ชุมชนแห่งผู้ฝันและผู้สร้าง

การอภิปรายเผยให้เห็นชุมชนนักพัฒนาที่มีชีวิตชีวาซึ่งทำงานอย่างเงียบ ๆ เพื่อเป้าหมายที่คล้ายกันมานานหลายปี ผู้แสดงความคิดเห็นหนึ่งแบ่งปันการเดินทางกว่าทศวรรษของพวกเขา ที่ฝันถึงการสร้างระบบปฏิบัติการสมัยใหม่ที่มีความสามารถในการปรับเปลี่ยนสูงและส่งเสริมการออกแบบซอฟต์แวร์แบบเป็นส่วนประกอบ โดยได้รับแรงบันดาลใจจาก Smalltalk-80, Lisp machines, Plan 9 และโปรเจกต์ STEPS ของ Alan Kay โปรเจกต์ MallowOS ของพวกเขาเป็นตัวแทนของนวัตกรรมระดับรากหญ้าที่งานวิจัยนี้สร้างแรงบันดาลใจได้อย่างแท้จริง

ฉันฝันมานานแล้วที่จะสร้างระบบปฏิบัติการสมัยใหม่ที่ปรับเปลี่ยนได้สูงและส่งเสริมการออกแบบซอฟต์แวร์แบบเป็นส่วนประกอบ และฉันได้รวบรวมความคิดมากมายและอ่านหนังสือเป็นจำนวนมาก

การสนทนายังเน้นย้ำการนำไปใช้จริงที่มีอยู่แล้ว โปรเจกต์ liballocs ของ Stephen Kell และระบบ Woosh (ที่เพิ่งอัปโหลดไปยัง SourceForge) แสดงให้เห็นว่าแนวคิดเหล่านี้ไม่ใช่แค่ทฤษฎี โปรเจกต์เหล่านี้แสดงเส้นทางที่เป็นรูปธรรมสู่การทำให้การสังเคราะห์ Unix-Smalltalk เป็นจริง โดย Woosh มีความเกี่ยวข้องเป็นพิเศษเพราะมันนำแนวคิดที่คล้ายกันเกี่ยวกับกระบวนการ Unix ขั้นละเอียดเป็นหน่วยการคำนวณไปใช้แล้ว

อิทธิพลสำคัญทางประวัติศาสตร์ที่กล่าวถึงในการอภิปราย:

  • สภาพแวดล้อม Smalltalk-80
  • สภาพแวดล้อมเครื่อง Lisp (Symbolics Genera)
  • โครงการของ Apple: Dylan, Bauhaus OS, OpenDoc
  • ระบบปฏิบัติการ Plan 9
  • Xerox PARC: Interlisp-D, Cedar
  • NeXTSTEP/macOS
  • Etoile (เดสก์ท็อปที่ใช้ GNUstep เป็นฐาน)
  • โครงการ liballocs ของ Stephen Kell
  • ระบบ Woosh

บริบททางประวัติศาสตร์และความเกี่ยวข้องสมัยใหม่

ผู้แสดงความคิดเห็นอภิปรายอย่างกว้างขวางถึงแบบอย่างทางประวัติศาสตร์สำหรับงานนี้ ความเชื่อมโยงระหว่าง Objective-C และ Smalltalk ผ่านโปรเจกต์เช่น NeXTSTEP และ Etoile แสดงให้เห็นว่าแนวคิดเหล่านี้มีอิทธิพลต่อระบบกระแสหลักอย่างไร Etoile สภาพแวดล้อมเดสก์ท็อปที่ใช้พื้นฐานจาก GNUstep จากปลายทศวรรษ 2000 ยอมรับแรงบันดาลใจจาก Smalltalk ภายในกรอบที่เข้ากันได้กับ Unix ซึ่งแสดงให้เห็นว่าการสังเคราะห์นี้สามารถบรรลุผลได้ในทางปฏิบัติ

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

ความท้าทายด้านประสิทธิภาพและแนวทางแก้ไข

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

การสนทนายังอ้างอิงถึงงานที่เกี่ยวข้องในระบบปฏิบัติการแบบ single-address space เช่น Opal ซึ่งสามารถให้รากฐานทางสถาปัตยกรรมสำหรับการนำไปใช้ที่มีประสิทธิภาพ สิ่งนี้ชี้ให้เห็นว่าอุปสรรคด้านประสิทธิภาพอาจถูกเอาชนะได้ผ่านการออกแบบระบบที่ชาญฉลาด แทนที่จะละทิ้งแนวคิดหลัก

เส้นทางสู่การก้าวต่อไป

การตอบสนองจากชุมชนแสดงให้เห็นถึงความตื่นเต้นอย่างแท้จริงในการรื้อฟื้นและพัฒนาต่อยอดแนวคิดเหล่านี้ นักพัฒนากำลังพิจารณาวิธีการปรับแนวคิดโดยใช้ภาษาสมัยใหม่อย่าง Rust ในขณะเดียวกันก็ใช้ประโยชน์จากส่วนประกอบเคอร์เนลที่มีอยู่ การอภิปรายครอบคลุมตั้งแต่การพิจารณาทางทฤษฎีเกี่ยวกับการเขียนโปรแกรมเชิงข้อความ (ตามที่ Alan Kay จินตนาการไว้แต่แรก) ไปจนถึงกลยุทธ์การนำไปใช้ในทางปฏิบัติโดยใช้เครื่องมือร่วมสมัย

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

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

อ้างอิง: The Unix Executable as a Smalltalk Method