Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。Type、標準ライブラリの大幅な拡張など、数多くの新機能が含まれている。思い返せば、Swiftが最初にABI安定性を達成したのはバージョン5.0だった。ABI安定性が目標とするのは、異なるSwiftコンパイラでコンパイルされたコードが一緒に動作することだ。これができれば、言語の構文が変更された場合でも、一定レベルのバイナリ互換性が実現する。ABI安定性には大きな意味が2つある。出荷するアプリケーションにSwiftランタイムのコピーをバンドルする必要がなくなることと、サードパーティ開発者やApple自身がフレームワークをバイナリで配布可能になることだ。13まで待たなければならなかった。このABI安定性の要件が、パフォーマンス向上や将来的なABI非互換の言語機能の提供の妨げとなることを防ぐために、Appleは特に注意を払っていた。このメカニズムは、Swift用語でライブラリエボリューションと呼ばれるもので、基本的にはフレームワークが、各タイプをベースとしてABI安定性をオプトアウトできるようになっている。これにより、バイナリ互換性と引き換えに、コンパイル時の最適化を活用することが可能になる。スタンドアロンではない、例えばアプリケーション内にバンドルされるようなフレームワークについては、ABI安定性が問題になることはないため、常に使用可能な最適化がすべて適用された上でコンパイルされる点にも注目すべきだ。5.1で多くの重要な新機能が導入されている。Wrapperは、プロパティの実装パターン定義を一般化して、ライブラリを通じてそれを提供することを目的とするものだ。Modifierがある。コンパイラはこれらのModifierを、対応するプロパティ実装に変換する方法を知っているのだが、このメカニズムは柔軟性がない上に、コンパイラ自体も複雑なものになってしまう。5.1では、@propertyWrapperでマークされた特殊なジェネリッククラスが導入された。Wrapperは、ラップするプロパティのストレージと、実装本体であるwrappedValueを提供する。Wrapperを使って実装する様子を示したものだ。Typeは、戻り型のタイプレベルでの抽象化という問題に対処するためのものだ。この機能を使用すれば、ジェネリクスの場合と同じように、構文ではなく、実装によって具体的な型を決定するような、戻り値の抽象化が可能になる。関数の実装で、具体的な型を開示せずにコレクションを返すことができる。これには、次のスニペットのような表記を用いる。cluster)として知られているものに近い。その最も分かりやすい例がNSStringクラス(クラスタ)だ。5.1では、structプロパティのデフォルト値を使用する場合の煩わしさの解決も目指している。structのプロパティの一部にデフォルト値がある場合、Swiftコンパイラは、デフォルトイニシャライザ生成時にそれを考慮することができなかった。そのため、イニシャライザ呼び出し時には、すべてのプロパティを指定する必要があった。5.1では、structプロパティにデフォルト値があれば、シグネチャ内でプロパティがそのデフォルトに一致するように、コンパイラがデフォルトイニシャライザを合成してくれる。5.1の有効な新機能のひとつとして、他の言語で許容されているものと同様の、1行のクロージャを前提とした暗黙的returnがある。これによって例えば、次のような記述が可能になる。5.1の新しい言語機能としては、通常のドット構文を任意の名前に拡張して、実行時にタイプセーフに解決するキーパスメンバ・ルックアップや、クラスメンバとしてのみ可能であったサブスクリプトの定義を拡張したstaticサブスクリプトおよびクラスサブスクリプトなどがある。Diffing(https://github.com/apple/swift-evolution/blob/master/proposals/0240-ordered-collection-diffing.md)、連続文字列、SIMDサポートの機能追加などがある。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。