Apple ได้เปิดตัว Swift Container Plugin ใหม่ที่ออกแบบมาเพื่อทำให้กระบวนการสร้างและเผยแพร่ container images สำหรับแอปพลิเคชัน Swift ง่ายขึ้น ในขณะที่เครื่องมือนี้สัญญาว่าจะทำให้การ deploy บนคลาวด์สำหรับนักพัฒนา Swift ง่ายขึ้น การสนทนาในชุมชนเผยให้เห็นความรู้สึกที่หลากหลายเกี่ยวกับความเป็นไปได้ของ Swift สำหรับการพัฒนาฝั่งเซิร์ฟเวอร์และแอปพลิเคชันข้ามแพลตฟอร์ม
Swift Container Plugin: ทำให้การ Deploy บนคลาวด์ง่ายขึ้น
Swift Container Plugin ช่วยให้นักพัฒนาสามารถแพ็กเกจผลิตภัณฑ์ที่สามารถประมวลผลได้ซึ่งกำหนดไว้ใน Package.swift ลงใน container images และเผยแพร่ไปยัง container registries ด้วยคำสั่งเดียว นักพัฒนาสามารถสร้างและเผยแพร่แอปพลิเคชัน Swift ของพวกเขาเป็น container images ทำให้การ deploy ไปยังบริการคลาวด์ง่ายขึ้น ปลั๊กอินนี้ทำงานได้ทั้งบน macOS และ Linux โดยต้องใช้ Swift 6.0 หรือใหม่กว่า และผู้ใช้ macOS จำเป็นต้องติดตั้ง Swift SDK สำหรับการคอมไพล์ข้ามแพลตฟอร์มเพื่อสร้างโปรแกรมที่สามารถทำงานบนโครงสร้างพื้นฐานคลาวด์ที่ใช้ Linux
ข้อกำหนดของ Swift Container Plugin
- ทำงานบน macOS และ Linux
- ต้องการ Swift 6.0 หรือใหม่กว่า
- บน macOS: ต้องการ SDK สำหรับการคอมไพล์ข้ามแพลตฟอร์ม (เช่น Swift Static Linux SDK)
- ไม่จำเป็นต้องมี container runtime ในการสร้างอิมเมจ
- ต้องการ container runtime เพื่อรันอิมเมจที่สร้างขึ้น
ชุมชนนักพัฒนาแบ่งแยกความคิดเห็นเกี่ยวกับศักยภาพของ Swift ฝั่งเซิร์ฟเวอร์
การตอบรับจากชุมชนต่อ Swift ในฐานะภาษาฝั่งเซิร์ฟเวอร์แสดงให้เห็นถึงความแตกแยกที่สำคัญ ในขณะที่นักพัฒนาบางคนชื่นชมการออกแบบภาษาและประสิทธิภาพของ Swift คนอื่นๆ แสดงความผิดหวังกับปัญหาเวลาคอมไพล์และข้อจำกัดของระบบนิเวศ หนึ่งในประเด็นที่เกิดขึ้นซ้ำๆ ในการสนทนาคือระบบประเภทของ Swift ซึ่งบางครั้งอาจทำให้คอมไพเลอร์ค้างหรือแสดงข้อความข้อผิดพลาดที่เข้าใจยากเมื่อทำงานกับโค้ดที่ซับซ้อน
Swift ในฐานะภาษาโปรแกรมมิ่งนั้นยอดเยี่ยมมาก แต่ข้อจำกัด (เช่น ความเข้ากันได้กับ objective-c) ทำให้มันกลายเป็นเหมือนยักษ์ใหญ่ จริงๆ แล้วน่าประหลาดใจมากที่พวกเขาสามารถทำให้ภาษานั้นทำงานได้เลยเมื่อพิจารณาถึงขนาดของมัน
แม้จะมีความท้าทายเหล่านี้ ผู้แสดงความคิดเห็นหลายคนสังเกตว่า Swift 6.0 มีการปรับปรุงที่สำคัญในเรื่องเวลาคอมไพล์และประสิทธิภาพโดยรวม โดยเฉพาะอย่างยิ่งบน Apple Silicon Macs นักพัฒนาบางคนรายงานว่าแอปพลิเคชันที่ไม่ธรรมดาซึ่งมีไฟล์ Swift, C++ และ C หลายร้อยไฟล์ตอนนี้สามารถคอมไพล์ได้เกือบจะในเวลาจริง
ความกังวลเรื่องข้ามแพลตฟอร์มและการควบคุมของ Apple
ความกังวลที่สำคัญในหมู่นักพัฒนาคือการควบคุมของ Apple ต่อการพัฒนา Swift และอนาคตของภาษาในการทำงานข้ามแพลตฟอร์ม แม้ว่า Swift จะรองรับ Linux, Windows และแม้แต่แพลตฟอร์ม WASM/WASI อย่างเป็นทางการ นักพัฒนาบางคนรายงานถึงความยากลำบากในการสร้างไลบรารีที่ทำงานข้ามแพลตฟอร์มได้อย่างแท้จริงเมื่อเทียบกับตัวเลือกอื่นๆ เช่น Rust โครงการ Swift WASM ตัวอย่างเช่น ยังคงใช้คอมไพเลอร์ที่แยกออกมาตามความเห็นของชุมชน
นักพัฒนาหลายคนแสดงความกังวลเกี่ยวกับการลงทุนอย่างหนักใน Swift สำหรับแอปพลิเคชันข้ามแพลตฟอร์มหรือฝั่งเซิร์ฟเวอร์เนื่องจากความไม่แน่นอนเกี่ยวกับความมุ่งมั่นในระยะยาวของ Apple ในการสนับสนุนแพลตฟอร์มที่ไม่ใช่ของ Apple บางคนโต้แย้งว่า Apple จำเป็นต้องสละการควบคุมทิศทางในอนาคตของ Swift มากขึ้นเพื่อให้เป็นตัวเลือกที่เป็นไปได้มากขึ้นนอกระบบนิเวศของ Apple
ความกังวลทั่วไปของชุมชนเกี่ยวกับ Swift
- ปัญหาเวลาในการคอมไพล์กับการอนุมานประเภทข้อมูลที่ซับซ้อน
- การควบคุมทิศทางของภาษาโดย Apple
- ความท้าทายในการสนับสนุนข้ามแพลตฟอร์ม
- การขาดเทคโนโลยีคอนเทนเนอร์แบบเนทีฟบน macOS
- ปัญหาเกี่ยวกับเครื่องมือ (โดยเฉพาะข้อร้องเรียนเกี่ยวกับ Xcode)
ข้อจำกัดของ Container บน macOS
การสนทนายังเน้นย้ำถึงข้อจำกัดที่สำคัญสำหรับผู้ใช้ macOS: การขาดเทคโนโลยี container แบบดั้งเดิม ไม่เหมือนกับ Linux ที่มีการสนับสนุน container อย่างแข็งแกร่งผ่านคุณสมบัติของเคอร์เนลเช่น network namespaces, macOS ขาดระบบแยกส่วนพื้นฐานที่เทียบเท่า สิ่งนี้ทำให้การพัฒนาและทดสอบแอปพลิเคชันแบบ containerized บน macOS มีความท้าทายมากขึ้น มักจะต้องใช้เครื่องเสมือน Linux หรือโซลูชันทางเลือกเช่น Orbstack
ผู้แสดงความคิดเห็นบางคนคาดการณ์ว่า Apple อาจกำลังทำงานกับเทคโนโลยี container แบบดั้งเดิมสำหรับ macOS โดยชี้ให้เห็นถึงความก้าวหน้าล่าสุดในการทำ virtualization เป็นหลักฐานของการพัฒนาที่อาจเกิดขึ้นในอนาคตในด้านนี้
ความรู้สึกต่อภาษา Swift: ใช้งานได้จริงแต่ซับซ้อน
นักพัฒนาหลายคนชื่นชม Swift สำหรับวิธีการที่ปฏิบัติได้จริงในการพัฒนาแอปพลิเคชัน โดยอธิบายว่าเป็นภาษาที่ยอดเยี่ยมสำหรับการสร้างผลิตภัณฑ์สำหรับผู้ใช้ปลายทางอย่างรวดเร็ว คุณสมบัติด้านความปลอดภัยของภาษา เช่น การบังคับให้จัดการกรณี null และข้อผิดพลาด ได้รับการชื่นชมเป็นพิเศษ อย่างไรก็ตาม คนอื่นๆ ชี้ให้เห็นว่าความซับซ้อนและปัญหาคอมไพเลอร์ที่เกิดขึ้นบางครั้งเป็นข้อเสียที่สำคัญ
Swift Container Plugin แสดงถึงก้าวสำคัญสำหรับการพัฒนา Swift ฝั่งเซิร์ฟเวอร์ แต่การสนทนาในชุมชนแนะนำว่าการยอมรับในวงกว้างนอกระบบนิเวศของ Apple จะขึ้นอยู่กับการปรับปรุงอย่างต่อเนื่องในการสนับสนุนข้ามแพลตฟอร์ม ประสิทธิภาพของคอมไพเลอร์ และอาจเป็นรูปแบบการกำกับดูแลที่รวมผู้มีส่วนได้ส่วนเสียมากขึ้นนอกเหนือจาก Apple
อ้างอิง: Swift Container Plugin