5 điểm bởi GN⁺ 2025-02-02 | 4 bình luận | Chia sẻ qua WhatsApp
  • Swift đang trở nên phổ biến như một ngôn ngữ hỗ trợ nhiều nền tảng và có thể được sử dụng trên nhiều thiết bị nhúng cũng như hệ điều hành khác nhau
  • Apple đã công bố mã nguồn mở một công cụ build mạnh mẽ và có khả năng mở rộng mang tên Swift Build
  • Swift Build được dùng làm công cụ build của Xcode, đồng thời cũng được sử dụng để "build các ứng dụng App Store và chính các hệ điều hành của Apple".
    • Cũng hỗ trợ build cho các mục tiêu Linux và Windows
  • Các tính năng cốt lõi của Swift Build

    • Hệ thống build có vai trò chuyển đổi mô tả dự án và mã nguồn thành các đầu ra như công cụ dòng lệnh, thư viện và ứng dụng
    • Swift Build là một thành phần hạ tầng lập kế hoạch và thực thi các bản build do các client cấp cao hơn như Swift Package Manager hoặc Xcode yêu cầu
    • Thông qua việc tích hợp chặt chẽ với trình biên dịch Swift, nó điều phối việc build các dự án Swift một cách đáng tin cậy và hiệu quả
    • Hỗ trợ nhiều loại sản phẩm khác nhau và cung cấp các tùy chọn cấu hình build nâng cao
    • Bao gồm tối ưu hóa đồ thị build để tối đa hóa tính song song khi build mã Swift và C
  • Lộ trình của Swift Build

    • So với công cụ build của Xcode, công cụ build của Swift Package Manager tương đối đơn giản
    • Hai cách build gói khác nhau trên nền tảng Apple đã gây ra sự nhầm lẫn cho người dùng
    • Apple muốn giải quyết vấn đề này bằng cách đóng góp công cụ build của Xcode cho dự án Swift và phát triển nó theo mô hình mã nguồn mở cùng với trình biên dịch Swift
    • SwiftPM sẽ có cơ hội cung cấp một công cụ thực thi build hợp nhất trên mọi nền tảng
    • Thay đổi này sẽ diễn ra một cách minh bạch với người dùng và vẫn duy trì khả năng tương thích hoàn toàn với mọi gói hiện có
    • Tạo nền tảng để cung cấp các tính năng mới và cải tiến trên mọi nền tảng cũng như công cụ
    • Đã gửi PR tích hợp Swift Build làm công cụ build thay thế cho SwiftPM
    • Apple muốn hoàn tất việc tích hợp hệ thống build bằng cách hợp tác với cộng đồng để mọi nền tảng và mô hình dự án đều có thể hưởng lợi từ các cải tiến công cụ trong tương lai
  • Lời mời tham gia

    • Apple mong muốn hợp tác với cộng đồng để tiếp tục phát triển cách build mã Swift.
    • Có thể tìm thấy kho swift-build trong tổ chức Swift trên GitHub; kho này bao gồm README và tài liệu giải thích cách build cũng như cách đóng góp.
    • Apple hoan nghênh các đóng góp thông qua pull request và issue, đồng thời mong nhận được phản hồi và ý tưởng cải tiến trên diễn đàn Swift.
    • Đây là một chương mới đầy hứng khởi cho hệ thống build của Swift và được kỳ vọng sẽ mở ra toàn bộ tiềm năng của Swift.

4 bình luận

 
ganadist 2025-02-03

Có vẻ nội dung quan trọng là trang 12 của https://llvm.org/devmtg/2016-11/….

Mô hình compiler/build system UNIX truyền thống
• Compiler chạy như một tiến trình riêng biệt
• Cơ chế nguyên thủy để truyền đạt các dependency
• Pipeline input/output cố định được định nghĩa bằng dòng lệnh
• Đây là một API ...
• ... và chúng ta đã không thay đổi nó suốt nhiều thập kỷ
• Chúng ta ❤ phá vỡ API

Phía Java có vẻ có API để cho biết dependency giữa các đoạn mã, nhờ đó các công cụ build biết cách thực hiện incremental build,
ví dụ: Gradle

Có vẻ chúng ta cũng nên đi theo hướng áp dụng cách này cho cả native build.

 
nemorize 2025-02-02

Vậy tức là... tóm lại thì Xcode vẫn là đồ rác y như bây giờ đúng không?
hu hu hu hu hu hu hu

 
roxie 2025-02-02

zzz

 
GN⁺ 2025-02-02
Ý kiến trên Hacker News
  • Nhận thức rằng Swift "tốt cho mọi thứ nhưng tốt hơn trên các nền tảng của Apple" có thể gây hại cho ngôn ngữ này. Điều đó không giúp thu hút thêm nhiều người vào hệ sinh thái Swift

    • Các đối thủ mang tính mã nguồn mở hơn, có nhiều người đóng góp hơn và phạm vi hẹp hơn
    • Nếu không mã nguồn mở các công cụ như Xcode, khoảng cách với các ngôn ngữ khác sẽ càng lớn
  • Swift là một ngôn ngữ tuyệt vời

    • Khi gặp lỗi "index out of range", thông báo lỗi không cho biết lỗi xảy ra ở đâu
    • Golang cho biết tệp và số dòng nơi lỗi xảy ra
  • Tình hình của Swift gợi nhớ đến thời kỳ đầu của C#

    • C# cũng từng được quảng bá là mã nguồn mở và đa nền tảng, nhưng không đáp ứng được kỳ vọng
  • Mong rằng Swift được xây dựng dựa trên LLVM chuẩn thay vì nhánh fork LLVM của Apple

  • Swift nên hướng tới việc tách khỏi Xcode

    • Xcode có phần được đánh giá quá cao với mức 3.1 điểm
  • Bản phát hành mới của SwiftPM tạo cơ hội cung cấp một engine thực thi build thống nhất trên mọi nền tảng

    • Đây sẽ là chìa khóa để xây dựng hệ sinh thái đa nền tảng của Swift
  • Tò mò liệu điều này có thể mở ra con đường phát triển Swift mà không cần Xcode hay không

  • Chưa rõ Swift Build tích hợp tốt đến mức nào với các công cụ và language server của Swift

    • Language server đã là mã nguồn mở
  • Vui vì Swift đang trở nên độc lập hơn với Apple

    • Từng có trải nghiệm phải chuyển sang ngôn ngữ khác trong một dự án đa nền tảng vì URLSession.shared.data không biên dịch được trên Linux
  • Tò mò liệu Swift có thực sự nghiêm túc với các hệ thống nhúng hay không