Appleは現地時間2月1日、開発ツールXcodeのエンジンであるSwift Buildをオープンソース化し、GitHubで公開した。この動きは、Swift開発におけるクロスプラットフォーム対応を強化し、開発者体験の向上を目指すものだ。
Swift Buildのオープンソース化
Appleは現地時間2月1日、SwiftのビルドシステムであるSwift BuildのソースコードをGitHubで公開した。Swift Buildは、Appleのプログラミング言語Swiftで使用されるビルドシステムであり、Swift Package ManagerやSwift Playgroundsなどの基盤となっている。今回のオープンソース化には、Appleのプラットフォームだけでなく、WindowsとLinuxのサポートも含まれる。
ビルドシステムとは、プログラマーが記述したコードを、ライブラリやコマンドラインツールといった実行可能なアプリケーションを構成する標準的なコンポーネントに変換する役割を担うものである。Swiftにはこれまで複数のビルドマネージャーが存在し、開発者にとって問題の源泉となることがあった。Appleは今回、Swift Buildをすべてのサポート対象プラットフォームで動作する唯一のビルドシステムとすることを目指している。
Swift Buildは、プロジェクトの記述やソースコードなどのユーザー作成の入力をコマンドラインツール、ライブラリ、アプリケーションなどに変換する役割を担うビルドシステムだ。Swift Buildは、既存のllbuildプロジェクト上に構築されており、以下の機能を提供する。
- Swiftプロジェクトのビルドを調整するためのSwiftコンパイラとの統合
- ライブラリ、コマンドラインツール、GUIアプリケーションなど、高度なビルド構成オプションを備えた複数のプロダクトタイプをサポート
- SwiftおよびCコードをビルドする際の並列処理を最大化するビルドグラフの最適化
Swift Package Managerのビルドエンジンは、Xcodeのビルドエンジンと比較して単純なものであった。Appleプラットフォーム上では、パッケージをビルドする2つの異なる方法が存在し、これらの実装の動作が一致しない場合、ユーザーの混乱を招く可能性があった。XcodeのビルドエンジンをSwiftプロジェクトに提供し、Swiftコンパイラとともにその開発をオープンソース化することで、これらの問題に対処し、すべてのSwiftユーザーにより良いビルド体験を提供するためのツールが提供される。
統一されたビルドシステムの実現
Swift Buildのオープンソース化は、Swift Package Managerがすべてのプラットフォームで統一されたビルド実行エンジンを提供する機会をもたらす。この変更は、既存のすべてのパッケージとの完全な互換性を維持しながら、ユーザーに対して透過的に行われ、一貫したクロスプラットフォーム体験を提供することが期待されている。
Swiftチームは、Swift Package ManagerにSwift Buildを代替ビルドエンジンとして統合するプロセスの開始を目的としたプルリクエストを提出した。この統合が実現すれば、Swift Package Managerは、macOS、Linux、Windowsといった異なる環境においても、同じビルドエンジンを利用できるようになる。
これにより、プラットフォームごとの挙動の差異を解消し、開発者はどの環境でも一貫したビルド体験を得られるようになる。また、新たな機能や改善をすべてのプラットフォームとツールにわたって実現するための基盤が構築され、パフォーマンスの最適化や開発者向けの新機能の実現につながる可能性がある。
クロスプラットフォーム開発の推進
Swift Buildのオープンソース化は、SwiftをAppleプラットフォームだけでなく、LinuxやWindowsでも利用しやすくすることを目的としている。これまで、Swiftのクロスプラットフォーム開発においては、ビルドシステムの違いなどが課題となっていたが、Swift Buildの登場によって、これらの課題が解消されることが期待される。
開発者は、macOSで開発したSwiftコードを、LinuxやWindows環境でも容易にビルドし、実行できるようになる。これにより、クロスプラットフォームアプリケーションの開発が加速し、Swiftのエコシステム全体の拡大に貢献する可能性がある。
Appleは、Swift Buildのオープンソース化を通じて、Swiftコミュニティへの貢献を強化する姿勢を明確にしている。Swift Buildのリポジトリでは、外部からの貢献が歓迎されており、多様なバックグラウンドを持つ開発者が集まることで、Swiftのエコシステムがさらに発展していくことが期待される。
Swiftチームは、「多様で友好的なコミュニティは、より多くの素晴らしいアイデア、よりユニークな視点を持ち、より素晴らしいコードを生み出すであろう。私たちは、Swiftコミュニティをすべての人に歓迎されるものにするために、 diligently に取り組んでいく」と述べている。
また、Swiftは、フリー/オープンソースソフトウェアプロジェクトの貢献者向けの行動規範であるContributor Covenantを採用した。Swiftチームは、この規範が「多くのオープンソースコミュニティで使用されており、私たちの価値観を明確に表現していると考えている」と述べている。
さらに、Appleは、若いプログラマーのSwift習得を奨励するSwift Student Challengeを2月3日に開始した。13歳以上の開発者の中から350人がカテゴリの受賞者に選ばれ、上位50人にはAppleのクパチーノ本社キャンパスへの旅行が贈られる。
XenoSpectrum’s Take
Swift Buildのオープンソース化は、AppleがSwiftを真にオープンな言語として育成し、クロスプラットフォーム開発を推進する強い意志を示すものと言えるであろう。これまで、Swiftは主にAppleのエコシステム内で利用される言語というイメージが強かったかもしれないが、今回の動きによって、LinuxやWindowsを含むより広範な環境での利用が促進されることが期待される。
特に、Swift Package ManagerがSwift Buildを統合することで、クロスプラットフォームでのビルドの一貫性が向上し、開発者はプラットフォームごとの差異を意識することなく、よりスムーズに開発を進められるようになるであろう。また、コミュニティからの貢献を歓迎する姿勢を示すことで、Swift Buildはより洗練されたビルドシステムへと進化していく可能性を秘めている。
Swiftのエコシステム全体としても、今回のオープンソース化は大きなターニングポイントとなる可能性がある。クロスプラットフォーム開発の進展、コミュニティの活性化、そしてSwift言語自体の進化と、多方面でのポジティブな影響が期待される。
Sources
- GitHub: swiftlang/swift-build
- via Patent Apple
コメント