2 คะแนน โดย GN⁺ 2025-03-31 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เปิดตัวเวอร์ชันเสถียรตัวแรกของ swiftly ซึ่งเป็นเครื่องมือจัดการเวอร์ชันอย่างเป็นทางการที่ช่วยทำให้ขั้นตอนการติดตั้ง จัดการ และอัปเดตเวอร์ชัน Swift ง่ายขึ้น
  • ก่อนหน้านี้การใช้ Swift เวอร์ชันล่าสุดทำได้ผ่าน Xcode เท่านั้น แต่ตอนนี้สามารถ ติดตั้งแยกได้อย่างอิสระบน macOS และ Linux ดิสทริบิวชันต่างๆ แล้ว
  • swiftly ที่เริ่มต้นจากเครื่องมือของชุมชน Swift ตอนนี้ได้ถูกรวมเข้าใน องค์กร GitHub อย่างเป็นทางการของ Swift และได้รับการสนับสนุนอย่างเป็นทางการ
  • ติดตั้ง Swift ได้โดยไม่ต้องใช้ Xcode และจัดการเวอร์ชันได้สะดวกสำหรับการใช้งานหลากหลาย เช่น เครื่องมือนักพัฒนาและสภาพแวดล้อมเซิร์ฟเวอร์

สรุปความสามารถหลักของ swiftly

  • ติดตั้งและสลับใช้ Swift toolchain ได้หลายเวอร์ชัน
    • มีคำสั่งอย่าง swiftly install, swiftly use, swiftly list-available
    • สามารถใช้ไฟล์ .swift-version เพื่อ บังคับให้สมาชิกในทีมใช้เวอร์ชันที่สอดคล้องกัน ได้
  • ติดตั้งได้ทั้งเวอร์ชัน snapshot และเวอร์ชันเก่า
    • ตัวอย่าง: ติดตั้งเวอร์ชันอย่าง main-snapshot-2025-03-25 ได้ง่าย
    • ใช้ไวยากรณ์ swiftly run +버전명 เพื่อรันชั่วคราวด้วยเวอร์ชันที่กำหนดได้
  • มีฟีเจอร์อัปเดตอัตโนมัติ
    • ใช้คำสั่ง swiftly self-update เพื่ออัปเดตความสามารถล่าสุด
  • รองรับ macOS และ Linux ดิสทริบิวชันหลายแบบ
    • รองรับ Ubuntu, Debian, Fedora, Red Hat Enterprise Linux, Amazon Linux เป็นต้น

swiftly เป็นเครื่องมือ CLI แบบติดตั้งได้ในตัวที่เขียนด้วย Swift

  • ตัว swiftly เองก็ พัฒนาด้วยภาษา Swift
    • งานด้านระบบไฟล์: ใช้โมดูล Foundation
    • คำขอ HTTP: ใช้ Async HTTP Client
    • การดึงข้อมูลเวอร์ชัน: ใช้ Swift OpenAPI Generator
    • การแตกไฟล์บีบอัด: ใช้ libarchive และการเชื่อมต่อกับ C
  • ให้มาในรูปแบบ ไบนารีที่ติดตั้งได้ในตัวโดยไม่ต้องพึ่ง shell script → เพิ่มความเสถียรข้ามแพลตฟอร์ม
  • มีอินเทอร์เฟซ CLI ที่เรียบร้อย เช่น --help

ความเข้ากันได้กับ Linux ดิสทริบิวชันและการติดตั้งที่ง่าย

  • Swift.org สามารถตรวจจับระบบปฏิบัติการได้ แต่ ไม่สามารถตรวจจับ Linux ดิสทริบิวชันได้
  • เพื่อแก้ปัญหานี้ จึงใช้ Swift Static Linux SDK เพื่อจัดเตรียมไบนารีที่ทำงานได้บนดิสทริบิวชันหลากหลาย
  • ผู้ใช้สามารถติดตั้งได้ด้วยการ คัดลอกและวางคำสั่งจากเว็บไซต์ เท่านั้น

แผนต่อไปและกิจกรรมโอเพนซอร์ส

  • เลือกใช้ swiftly เป็น วิธีมาตรฐานในการติดตั้ง Swift นอก Xcode
  • รองรับการตั้งค่าอย่าง สภาพแวดล้อม CI/CD, พร็อกซีเซิร์ฟเวอร์, และ พาธติดตั้งแบบกำหนดเอง → เหมาะกับสภาพแวดล้อมระดับองค์กรด้วย
  • พัฒนาแบบโอเพนซอร์สอยู่ และสามารถเปิด issue หรือส่ง PR ได้บน GitHub
  • สามารถเข้าร่วมถามตอบและพูดคุยได้ใน Swift Forums

ขอขอบคุณ Patrick Freed เป็นพิเศษสำหรับการสร้าง swiftly ชุมชน Swift กำลังช่วยให้ Swift โดดเด่นยิ่งขึ้น

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

 
GN⁺ 2025-03-31
ความเห็นจาก Hacker News
  • Steve Klabnik เคยพูดถึงในตอนล่าสุดของ Oxide and Friends ว่า ทีม Rust ยุคแรกตระหนักถึงความสำคัญของเครื่องมือแบบนี้ร่วมกันอย่างไร นี่เป็นสัญญาณเชิงบวกของความพยายามต่อเนื่องที่ทำให้ Swift และ Apple เพิ่มศักยภาพของ Swift ในฐานะภาษาทั่วไปนอกระบบนิเวศของ Apple
    • Swift ทำงานบน Linux ได้ดี เขียนสนุก และทำงานร่วมกับ C, C++, Java ได้ยอดเยี่ยม
    • สิ่งที่ชอบน้อยกว่า: เวลาในการคอมไพล์ ขนาดไบนารี โอเวอร์เฮดจากการตรวจสอบชนิดข้อมูลตอนรันไทม์ (ประสิทธิภาพของ Codable เคยสร้างปัญหาให้แอปพลิเคชัน) และความยากของการจัดการ async/await
  • สงสัยว่าเกิดอะไรขึ้นกับ Swift เมื่อก่อนเคยได้ยินบ่อยมาก แต่ตอนนี้ไม่ค่อยแล้ว อาจเป็นเพราะฉันอยู่ในเอคโค่แชมเบอร์ก็ได้
  • อยากให้การใช้ Swift นอกโลกของ Apple เป็นไปได้จริง
  • สงสัยว่านี่เป็นเหมือน UV ของ Swift หรือไม่ มีข้อดีอะไรบ้าง และสามารถทิ้ง Xcode แล้วใช้สิ่งนี้แทนได้ไหม
  • ไม่ได้ติดตาม Swift มาตั้งแต่ช่วงที่เพิ่งเปิดตัว เลยสงสัยว่าเอกสารดีขึ้นหรือยัง เคยเจอคำสั่งจาก Stack Overflow แต่หาไม่เจอในเอกสาร หรือแม้มีอยู่ก็ไม่มีข้อมูลที่เป็นประโยชน์
  • หนึ่งในเหตุผลที่ผู้คนชอบ Zig มากคือมีเครื่องมือในตัว และมีมาให้พร้อมกับภาษาตั้งแต่วันแรก
  • สิ่งนี้จะช่วยระบบนิเวศของ Swift ได้มาก ความสามารถในการเพิ่มและลบเวอร์ชันของภาษาได้ตามต้องการสะดวกมาก และก็ดีใจที่ภาษาต่าง ๆ เพิ่มความสามารถนี้กันมากขึ้น
  • สงสัยว่าจะทำให้สามารถรันยูนิตเทสต์ของโค้ดที่ต้อง import UIKit ได้โดยไม่ต้องรันในซิมูเลเตอร์หรือไม่
  • ถ้ามีการรองรับ Windows ผู้คนก็น่าจะลองใช้กัน