BT

Swift 3のふりかえりとSwift 4に向けて

| 作者: Sergio De Simone フォローする 18 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2016年8月21日. 推定読書時間: 3 分 |

原文(投稿日:2016/08/08)へのリンク

2016年後半リリース予定のSwift 3が近づくなか、AppleのDeveloper Tools部門でシニアディレクターを務めるChris Lattner氏が、Swift 3開発のふりかえりとSwift 4に向けた期待に関して、Swift-evolutionメーリングリストに長文メッセージを投げた。

Swift 3のふりかえりでは、主にオープンソース開発の利点と欠点について述べられている。彼は具体的にこう言っている。「オープンデザイン」は「クローズドデザイン」と比べて、時間がかかり予測しにくいが、最終成果は「ずっと良い」ものになる。コミュニティは限られたトピックにフォーカスすることが重要で、コアチームは事前にキーとなる議論をしておくことが重要だ。さらに彼はこう言っている。具体的な目標を持つことは、フォーカスを保ち、最終的にスコープ外となるサブプロジェクトを避けるのに役立つ。

それを踏まえて、Swift 4には大きな目標が2つあるとLattner氏は説明する。それは「3.0以降のソース安定化の約束を達成することと、標準ライブラリにABI安定化をもたらすこと」だ。そのため、2017年春までコアチームを多忙にするであろう第1フェーズの作業は、主として、既存のABIに影響を及ぼす、あるいは既存の標準ライブラリに大きな変更を引き起こす可能性のある機能になるだろう。コアチームがステージ1に順位付けた機能の一部を以下に示す。

  • ソース安定化のための機能。-std=swift3コンパイラフラグや、開発中だがまだ安定していない大きな取り組みを条件付きで有効にする方法など。

  • レジリエンス。ABI安定化を壊すことなく、公開APIがずっと進化するための方法を提供する。

  • 標準ライブラリに必要とされるジェネリクスの改善。条件付き準拠再帰的プロトコル制約など。

  • 文字列の再評価。Swiftの文字列プログラミングモデルを改善して、Perlに匹敵するものを目指す。

  • メモリオーナーシップモデル(オプトイン)。Cyclone/Rustのメモリオーナーシップモデルから着想を得たもので、予測可能・決定可能なパフォーマンスを提供することを目指す。詳細についてはこちらを参照

第2フェーズでは、ステージ1がピークを迎えるため、どれくらい時間が残されているかで新機能のスコープと計画が決まるだろう。ステージ2で検討される可能性のある機能をいくつか挙げる。

  • リフレクション。データ・メソッドリフレクションのためのユーザ向けAPIを含む。

  • ファーストクラスの並行性。アクター、async/await、アトミック性、メモリモデルなどの関連トピックを含む。Lattner氏が言っているように、残念ながら、新しい並行性モデルはSwift 4のリリースに間に合わないだろう。

  • ジェネリクスのさらなる改善。ジェネリクス・マニフェストに書かれているように、ABI安定化には特に必要ではない。

  • .swiftmoduleの安定化。サードパーティのバイナリフレームワークを可能にするのを目指す。

  • 新しいスクリプティング機能。正規表現、マルチライン文字列リテラルなど。

  • プロパティビヘイビアlazy、オブザーバ、同期など、プロパティビヘイビアを言語コアの外で定義するため、フレキシブルなモデルを提供することを目指す。

Lattner氏は最後に、ステージ2で検討する可能性のある機能はもっとたくさんあると述べている。サブモジュール、数値型の暗黙の昇格、C++ APIのインポート、健全な(hygienic)マクロシステム、保証された末尾呼び出し、enumを列挙可能にする、型付きの ‘throws’、ユーザ定義アトリビュート、抽象メソッド/クラス、SIMDサポートの改善、データ平行性のサポート、高階型など。

コアチームは2017年秋のどこかでSwift 4が出せることを期待している。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT