Swift の開発 (WWDC で発表された Apple の驚くべき新しいプログラミング言語) は、Objective C の関連性を維持する取り組みと併せて 4 年前に開発を開始しました。 Swift は現在、iOS および OS X 上で最新の Cocoa 開発を行うために、Objective C をすぐに置き換えることを目指しています。

まったく新しい「ベータ版」のアイデアではなく、迅速2010年の夏からスタートし、によるとこの新しい言語の創始者である Chris Lattner 氏 (下) は、2005 年から Apple で働いています。Lattner 氏はおそらく、ワイバーン ドラゴンのマスコット (上) を備えた低レベル仮想マシン コンパイラ インフラストラクチャ プロジェクトである LLVM で最もよく知られています。

LLVM: Objective C 用の新しいコンパイラ

LLVM起源これは、イリノイ大学アーバナ シャンペーン校の学生だった 2000 年に Lattner の研究プロジェクトとして作成されました。2003 年にバージョン 1.0 として初めて一般にリリースされました。2004 年、Lattner は Microsoft Research でサマー インターンとして、そこで Phoenix コンパイラ インフラストラクチャに取り組みました、LLVM が .NET コードをコンパイルして実行できるようにするために機能します。

Lattner 氏は、Objective-C に関する質問を同社の objc 言語メーリング リストに投稿した後、Apple の注目を集めました。次に Apple は、2005 年に Lattner の LLVM オープンソース プロジェクトに貢献し始め、その後 Lattner を雇用し、彼の研究に資金を提供し始めました。

2007 年に LLVM プロジェクトがリリースされました。クラン、Objective C/C/C++ 用のフロントエンド コード パーサーで、メモリ使用量を抑えた高速コンパイル、表現豊かな診断、モジュラー ライブラリ ベースのアーキテクチャ、Apple の Xcode などの IDE 内での緊密な統合を提供することを目的としています。

Lattner 氏は、「純粋な」LLVM Clang プロジェクトに加えて、高度なコード オプティマイザーとコード ジェネレーターを備えた新しい LLVM を既存の GCC (GNU C コンパイラー) に統合し、「積極的なループ、標準スカラー、およびApple の OS などの Unix オペレーティング システムの開発ツールの中核要素であった標準 GCC コンポーネントには、「プロシージャ間最適化とプロシージャ間分析」が欠けています。 X.

Apple の OS X Cocoa (およびその歴史的前身である NeXTStep) の主要な開発言語である Objective C に対する GCC のサポートは停滞していたため、Clang と LLVM-GCC の両方のオープン開発に資金を提供する Apple の動機には、Mac の Objective C の関連性を維持することが含まれていました。言語として。

Apple は、OS X で LLVM を積極的に使用し始め、Mac 開発者に LLVM-GCC を提供して、以前の GCC に基づくワークフローに大幅な変更を加えることなく、新しい LLVM コンパイラへのアクセスを提供し、そのコード最適化の恩恵を受けることができました。

同社はまた、LLVM をOpenGLスタック2006 年には OS X 10.5 Leopard を導入し、2005 年には Mac を Intel に移行し、2007 年には iPhone を ARM アーキテクチャに移行するのに LLVM を活用しました。

2012 年の OS X Mountain Lion と iOS 6 のリリースまでに、Apple は完全に Clang に移行し、LLVM-GCC と GCC の両方を残しました。 LLVM は Apple のソフトウェアを強化するだけでなく、A6 および A7 アプリケーション プロセッサを含む Apple のカスタム シリコンの開発にも緊密に統合されています。

LLVM は、LLDB デバッガーから新しい API に至るまで、他の Apple テクノロジーでも重要な役割を果たします。金属, iOS 上の高性能グラフィックスのための Apple の新しいレイヤー。オーバーヘッドを最小限に抑えながら最新の A7 のグラフィックス機能を公開し、より汎用的な OpenGL を使用する場合に比べて大幅なパフォーマンス向上を実現します。

Swift: LLVM の新しい言語

2010 年までに、GCC の停滞している Objective C サポートに対する LLVM のソリューションにより、LLVM が Objective C に簡単に追加できる以上の機能をサポートできるという新しいシナリオが作成されました。Lattner はその夏に新しいプログラミング言語の開発に取り組み始め、1 年後に "他にも何人かの(素晴らしい)人がいます。」

2013 年 7 月までに、ラトナー氏は、新しい Swift プロジェクトが「Apple Developer Tools グループの主要な焦点」になったと述べました。それは残った秘密来年は一般公開します。ラトナー氏は次のように述べています。再開する彼は2013年の初めに「Appleの開発者ツール部門全体の管理とリーダーシップを引き継いだ」と述べた。

Lattner 氏は、「コンパイラと低レベル ツールに加えて、私は現在、Xcode IDE、Instruments パフォーマンス分析ツール、Apple Java リリース、およびさまざまな内部ツールを担当しています。Xcode 5 は、この作業の最初の成果です」と述べています。ただし、機能の計画と実装の多くは私が引き継ぐ前に完了しており、コンバージェンスを推進し、WWDC でリリースされたいくつかの主要な機能を定義しました。」

Lattner 氏は、新しい Swift 言語は、「言語の専門家、ドキュメントの第一人者、コンパイラ最適化の忍者、そしてアイデアの改良と実戦テストを支援するためにフィードバックを提供した非常に重要な社内のドッグフーディング グループのチームによるたゆまぬ努力の成果である」と述べました。また、この分野の他の多くの言語が苦労して勝ち取った経験からも大きな恩恵を受けており、Objective-C、Rust、Haskell、Ruby、Python、C#、CLU、その他多くの言語からアイデアを引き出しています。リストする。」

アップルは無料Swift 上の iBookまた、「Swift は何年にもわたって開発されてきた」と述べ、「Apple は既存のコンパイラ、デバッガ、フレームワーク インフラストラクチャを進化させることで Swift の基礎を築きました。

「私たちは、自動参照カウント (ARC) によってメモリ管理を簡素化しました。Foundation と Cocoa の強固な基盤の上に構築された私たちのフレームワーク スタックは、全体的に最新化および標準化されています。Objective-C 自体は、ブロック、コレクション リテラル、およびモジュールをサポートするように進化してきました。この基盤のおかげで、最新の言語テクノロジーを中断することなくフレームワークに導入できるようになり、今後の Apple ソフトウェア開発に新しい言語を導入できるようになりました。」「Swift は、スクリプト言語と同じくらい表現力豊かで楽しい、初の工業品質のシステム プログラミング言語です。」

同社はまた、Swift は「新人プログラマにとってフレンドリーである。スクリプト言語と同じくらい表現力豊かで楽しい、初の工業品質のシステム プログラミング言語である」とも述べています。

Apple はまた、Swift と LLVM の統合にも注目しており、新しい言語は「現代の言語思考の最良の部分と、広範な Apple エンジニアリング文化からの知恵を組み合わせたものである。コンパイラーはパフォーマンスのために最適化されており、言語は開発のために最適化されている。どちらかを妥協することです。」

Swift のインタラクティブなプレイグラウンドと REPL

Lattner 氏は、Swift に関連する 2 つの新機能、Xcode の新しい Playgrounds (下) と REPL (Read-Eval-Print-Loop) デバッグ コンソールについてもコメントしました。

「Xcode Playgrounds 機能と REPL は、プログラミングをよりインタラクティブで親しみやすいものにするという私の個人的な情熱でした」と Lattner 氏は述べています。 「Xcode チームと LLDB チームは、クレイジーなアイデアを本当に素晴らしいものに変えるという驚異的な仕事をしてくれました。

「遊び場はブレット・ビクターの影響を大きく受けた」アイデア[これらは、カーン アカデミーのオンライン環境のインスピレーションとして引用されています。プログラミングを学ぶ]、 によるライトテーブル[コードとプログラムの動作方法に関するリアルタイムのフィードバックを提供するように設計されたオープン ソース IDE] およびその他の多くの対話型システム。

「プログラミングをより親しみやすく楽しいものにすることで、次世代のプログラマーにアピールし、コンピューター サイエンスの教え方の再定義に役立つことを願っています」とラトナー氏は述べた。

Apple の Swift のプレゼンテーションでは、「Playground を使用すると、Swift コードを驚くほど簡単かつ楽しく書くことができます。コードを 1 行入力すると、結果がすぐに表示されます。コードが時間の経過とともに (ループなどで) 実行される場合、タイムライン アシスタントでその進行状況を確認できます。」タイムラインはグラフに変数を表示し、ビューを構成するときに各ステップを描画し、プレイグラウンドでコードを完成させたら、そのコードをプロジェクトに移動するだけです。

同社は、Xcode の Playground を使用すると、ユーザーは「新しいアルゴリズムを設計し、その結果をあらゆる段階で監視し、新しいテストを作成して、テスト スイートに昇格する前に機能することを確認し、新しい API を試して Swift コーディング スキルを磨く」ことができると述べています。

Apple は、Xcode の REPL デバッグ コンソールには「Swift 言語の対話型バージョンが組み込まれている」と述べています。Swift 構文を使用して実行中のアプリを評価および操作したり、新しいコードを記述してスクリプトのような環境でアプリがどのように動作するかを確認したりできます。 」

Appleは、開発者のニーズや機能の要望に応えてSwiftを急速に進化させる計画だと述べている。

メンター主導のプログラミング教育に焦点を当てた教育スタートアップの Thinkful は、すでにSwiftでの開発コース、7月16日から始まる番組で。