5 คะแนน โดย GN⁺ 2025-02-02 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • Swift กำลังได้รับความนิยมในฐานะภาษาที่รองรับได้หลายแพลตฟอร์ม และสามารถใช้งานได้บนอุปกรณ์ฝังตัวและระบบปฏิบัติการที่หลากหลาย
  • Apple ได้เปิดซอร์ส Swift Build ซึ่งเป็นเอนจินสำหรับการบิลด์ที่ทรงพลังและขยายต่อได้
  • Swift Build ถูกใช้เป็นเอนจินบิลด์ของ Xcode และยังถูกนำไปใช้กับ "แอปบน App Store และการบิลด์ระบบปฏิบัติการของ Apple เอง" ด้วย
    • รองรับการบิลด์เป้าหมายสำหรับ Linux และ Windows เช่นกัน
  • ความสามารถหลักของ Swift Build

    • ระบบบิลด์มีหน้าที่แปลงคำอธิบายโปรเจ็กต์และซอร์สโค้ดให้เป็นผลลัพธ์ เช่น เครื่องมือบรรทัดคำสั่ง ไลบรารี และแอปพลิเคชัน
    • Swift Build เป็นองค์ประกอบโครงสร้างพื้นฐานที่วางแผนและดำเนินการบิลด์ตามที่ไคลเอนต์ระดับบนอย่าง Swift Package Manager หรือ Xcode ร้องขอ
    • ผสานการทำงานกับคอมไพเลอร์ Swift อย่างแน่นแฟ้น เพื่อประสานการบิลด์โปรเจ็กต์ Swift ได้อย่างน่าเชื่อถือและมีประสิทธิภาพ
    • รองรับประเภทผลิตภัณฑ์ที่หลากหลาย และมีตัวเลือกการตั้งค่าการบิลด์ขั้นสูง
    • รวมการเพิ่มประสิทธิภาพกราฟการบิลด์เพื่อเพิ่มความขนานสูงสุดระหว่างการบิลด์โค้ด Swift และ C
  • โรดแมปของ Swift Build

    • เมื่อเทียบกับเอนจินบิลด์ของ Xcode แล้ว เอนจินบิลด์ของ Swift Package Manager ยังถือว่าค่อนข้างเรียบง่าย
    • วิธีการบิลด์แพ็กเกจที่แตกต่างกันสองแบบบนแพลตฟอร์มของ Apple ทำให้ผู้ใช้เกิดความสับสน
    • Apple ต้องการแก้ปัญหานี้ด้วยการนำเอนจินบิลด์ของ Xcode มาเปิดให้โปรเจ็กต์ Swift ใช้งานและพัฒนาร่วมกันแบบโอเพนซอร์สควบคู่ไปกับคอมไพเลอร์ Swift
    • SwiftPM จะมีโอกาสมอบเอนจินรันการบิลด์แบบรวมศูนย์สำหรับทุกแพลตฟอร์ม
    • การเปลี่ยนแปลงนี้จะโปร่งใสต่อผู้ใช้ และยังคงความเข้ากันได้อย่างสมบูรณ์กับแพ็กเกจที่มีอยู่ทั้งหมด
    • เป็นการวางรากฐานสำหรับการส่งมอบฟีเจอร์ใหม่และการปรับปรุงต่าง ๆ ครอบคลุมทุกแพลตฟอร์มและทุกเครื่องมือ
    • มีการส่ง PR เพื่อผสาน Swift Build เป็นเอนจินบิลด์ทางเลือกของ SwiftPM
    • ต้องการทำงานร่วมกับชุมชนเพื่อให้การรวมระบบบิลด์เสร็จสมบูรณ์ เพื่อให้ทุกแพลตฟอร์มและโมเดลโปรเจ็กต์ได้รับประโยชน์จากการปรับปรุงเครื่องมือในอนาคต
    โฆษณา
  • เชิญชวนให้เข้าร่วม

    • คาดหวังที่จะได้ร่วมมือกับชุมชนเพื่อพัฒนาวิธีการบิลด์โค้ด Swift ต่อไป
    • สามารถดูรีโพซิทอรี swift-build ได้ในองค์กร Swift บน GitHub โดยมี README และเอกสารอธิบายวิธีบิลด์และการมีส่วนร่วมรวมอยู่ด้วย
    • ยินดีรับการมีส่วนร่วมผ่าน pull request และ issue รวมถึงต้องการรับฟีดแบ็กและไอเดียเพื่อการปรับปรุงผ่าน Swift Forums
    • นี่คือบทใหม่ที่น่าตื่นเต้นของระบบบิลด์สำหรับ Swift และคาดว่าจะช่วยปลดล็อกศักยภาพทั้งหมดของ Swift ได้

4 ความคิดเห็น

 
ganadist 2025-02-03

หน้า 12 ของ https://llvm.org/devmtg/2016-11/… น่าจะเป็นส่วนสำคัญครับ

โมเดลคอมไพเลอร์/ระบบบิลด์แบบ UNIX ดั้งเดิม
• คอมไพเลอร์ทำงานเป็นโปรเซสแยก
• มีกลไกพื้นฐานสำหรับสื่อสาร dependency
• ไปป์ไลน์ input/output แบบตายตัวที่กำหนดโดย command line
• นี่คือ API ...
• ... และเราแทบไม่ได้เปลี่ยนมันมาหลายทศวรรษแล้ว
• เรา ❤ การทำลาย API

ฝั่ง Java ดูเหมือนจะมี API ที่บอก dependency ระหว่างโค้ดได้ เลยทำให้สามารถบอกเครื่องมือบิลด์ได้ว่าจะทำ incremental build อย่างไร
เช่น: Gradle

ดูเหมือนว่าฝั่ง Native build ก็ควรจะไปในทิศทางที่นำวิธีนี้มาปรับใช้ด้วยครับ

 
nemorize 2025-02-02

งั้นก็... สรุปคือ xcode ก็ยังคงเป็นขยะเหมือนเดิมสินะ?
ฮือๆๆๆๆๆๆๆ

 
roxie 2025-02-02

zzz

 
GN⁺ 2025-02-02
ความเห็นจาก Hacker News
  • การรับรู้ที่ว่า Swift "ดีสำหรับทุกอย่าง แต่ดีกว่าเป็นพิเศษบนแพลตฟอร์มของ Apple" อาจเป็นผลเสียต่อภาษา เพราะมันไม่ช่วยดึงคนเข้ามาในระบบนิเวศของ Swift มากขึ้น

    • คู่แข่งมีความเป็นโอเพนซอร์สมากกว่า มีผู้ร่วมพัฒนามากกว่า และมีขอบเขตที่แคบกว่า
    • หากไม่ทำให้เครื่องมืออย่าง Xcode เป็นโอเพนซอร์ส ช่องว่างกับภาษาอื่นก็จะยิ่งกว้างขึ้น
  • Swift เป็นภาษาที่ยอดเยี่ยม

    • ตอนเกิดข้อผิดพลาด "index out of range" ข้อความผิดพลาดไม่ได้บอกว่าเกิดขึ้นที่ไหน
    • Golang บอกได้ว่าเกิดข้อผิดพลาดที่ไฟล์ไหนและบรรทัดใด
  • สถานการณ์ของ Swift ทำให้นึกถึงช่วงแรก ๆ ของ C#

    • C# ก็เคยถูกโปรโมตว่าเป็นโอเพนซอร์สและข้ามแพลตฟอร์มได้ แต่สุดท้ายก็ไม่เป็นไปตามที่คาดหวัง
  • อยากให้ Swift ถูกสร้างบน LLVM ปกติ ไม่ใช่บน LLVM fork ของ Apple

  • Swift ควรตั้งเป้าแยกตัวออกจาก Xcode

    • Xcode ดูเหมือนจะได้คะแนน 3.1 สูงเกินจริงไปหน่อย
  • SwiftPM รุ่นใหม่เปิดโอกาสให้มีเอนจินรันบิลด์แบบรวมศูนย์บนทุกแพลตฟอร์ม

    • นี่จะเป็นกุญแจสำคัญในการสร้างระบบนิเวศแบบมัลติแพลตฟอร์มของ Swift
  • สงสัยว่าจะเปิดทางให้พัฒนา Swift ได้โดยไม่ต้องใช้ Xcode หรือไม่

  • ยังไม่ชัดเจนว่า Swift Build ผสานรวมกับเครื่องมือและ language server ของ Swift ได้ดีแค่ไหน

    • language server เป็นโอเพนซอร์สอยู่แล้ว
  • ดีใจที่ Swift มีความเป็นอิสระจาก Apple มากขึ้น

    • เคยมีประสบการณ์ทำโปรเจกต์ข้ามแพลตฟอร์มแล้ว URLSession.shared.data คอมไพล์บน Linux ไม่ได้ จนต้องเปลี่ยนไปใช้ภาษาอื่น
  • สงสัยว่า Swift เอาจริงกับระบบสมองกลฝังตัวหรือไม่