Swift (2014年)(スウィフト)
Swiftは2014年Apple Chris Lattner (LLVM 開発者) が発表したiOS/macOS 用プログラミング言語でObjective-C 後継・型安全・型推論・Optional型・Protocol-Oriented Programming採用しiPhone/iPad/Mac/Apple Watch/Vision Pro 全Apple 製品開発の中核となった現代Apple エコシステムの公式言語。
Swift (2014年)
概要
Swiftは2014年6月Apple WWDC 2014で Chris Lattner (LLVM コンパイラ開発者・後Apple→Tesla→SiFive→Modular AI) 主導開発のiOS/macOS 用プログラミング言語でObjective-C 後継 (1983年Brad Cox 開発・30年間Apple 主要言語) ・型安全 (Type Safety) ・型推論 (Type Inference)・Optional 型 (Nil 安全・Kotlin 同等)・Protocol-Oriented Programming (Apple 推奨パラダイム・OOP 代替)・ARC (Automatic Reference Counting・GC でなく即時参照解放) ・Swift Package Manager (2016年) ・SwiftUI (2019年宣言型 UI・iOS 13/macOS 10.15)・async/await (Swift 5.5 2021年)・Swift Concurrency (Actor・並行性) 採用しiPhone/iPad/Mac/Apple Watch/Apple TV/Vision Pro (2024年visionOS) 全Apple 製品開発の中核となった現代Apple エコシステムの公式言語。Swift 6.0 (2024年9月最新・data race safety 強化) と継続改良。
主な特徴・仕組み
- 発表: 2014年6月2日Apple WWDC 2014・Chris Lattner キーノート
- 開発期間: 4年間 (2010-2014年・Chris Lattner 個人プロジェクト→2013年Apple 公式)
- 言語パラダイム: マルチ (OOP+Protocol-Oriented+関数型+並行)
- 型付け: 静的型付け (Strong) ・Type Inference
- メモリ管理: ARC (GC でなく Reference Counting・即時解放)
- コンパイル: LLVM ベース・ネイティブ機械語
- オープンソース化: 2015年12月Swift.org・全プラットフォーム対応 (Linux 公式)
- マスコット: なし (Swift 鳥のロゴ)
Chris Lattner の物語
LLVM/Swift の創造者:
- 1978年生まれ: 米国
- 大学: UIUC 博士号 (2005年・LLVM 論文)
- 2000-2005年LLVM 開発: UIUC 在学中に開始・後Apple 公式採用 (2007年Mac OS X 10.5 Leopard で Clang/LLVM)
- 2005-2017年Apple: LLVM/Clang/Swift 開発・iOS 開発ツール
- 2017-2018年Tesla: Autopilot AI VP・Andrej Karpathy と並走
- 2018-2020年Google Brain: TensorFlow 統合
- 2020-2022年SiFive: RISC-V CPU 設計
- 2022年-Modular AI: AI インフラ・「Mojo」言語 (Python 互換 AI 言語) 開発
- 歴史的意義: 「現代Apple 開発基盤を一人で構築」「LLVM で全コンパイラ業界を変革」
Objective-C 後継 (1983-2014年)
Apple 30年の言語遷移:
- Objective-C (1983年Brad Cox・StepStone): Smalltalk + C・NeXT 採用 (1988年)・Apple NeXT 買収 (1996年) でMac/iOS 公式言語化
- 2007-2014年iPhone 黄金期: Objective-C で iOS アプリ開発・「[] 記法・@property・nil 安全性なし」で複雑
- 2014年Swift 発表: WWDC 2014 でApple がObjective-C 後継宣言・Swift 1.0 リリース
- 2017年Swift 4.0: iOS アプリ開発の主流言語に
- 2024年現在: 新規iOS アプリの95%+ がSwift・既存Objective-C コードは保守継続
- 共存: Swift とObjective-C は同一プロジェクトで混在可能 (Bridging Header)
Swift 主要バージョン (2014-2024年)
| バージョン | 年 | 主な追加機能 |
|---|---|---|
| Swift 1.0 | 2014年9月 | 初代・iOS 8 同時 |
| Swift 2.0 | 2015 | エラーハンドリング (try/catch)・guard 文・オープンソース化 |
| Swift 3.0 | 2016 | API デザイン大刷新 (Hash/Index 等)・Linux 対応 |
| Swift 4.0 | 2017 | Codable (JSON シリアライズ標準) ・Smart Strings |
| Swift 5.0 | 2019 | ABI 安定化 (バイナリ互換)・Result type |
| Swift 5.5 | 2021 | async/await・Actor・Swift Concurrency |
| Swift 5.7 | 2022 | Existential Types 改良・Regex |
| Swift 5.9 | 2023 | Macros (メタプログラミング)・Result Builders |
| Swift 6.0 | 2024年9月 | Data Race Safety 強化・Strict Concurrency |
Protocol-Oriented Programming
Swift 推奨パラダイム:
- 動作: OOP の継承の代わりに Protocol (Interface 風) で機能追加・「Composition over Inheritance」
- Apple 公式推奨 (2015年WWDC): 「Swift is a Protocol-Oriented Language」
- 競合: Java Interface・Rust Trait・Go interface・並走
- メリット: 多重継承問題回避・型安全・テスタブル
- 後継: 全現代Swift コード・SwiftUI も Protocol-Oriented
SwiftUI (2019年-) 宣言型UI 革命
Apple UI 開発の現代化:
- SwiftUI (2019年WWDC 2019): iOS 13/macOS 10.15 同時・宣言型UI フレームワーク
- 競合: React (2013年Facebook)・Flutter (2017年Google)・Jetpack Compose (2021年Android)
- 動作: コードで UI を宣言・Live Preview (Xcode 11+) でリアルタイム反映
- 後継: SwiftUI 5 (2023年iOS 17・macOS 14)・SwiftData (2023年・Core Data 後継ORM)
- 採用: iOS 13+ の新規アプリの過半数・UIKit からの移行進行中
Swift Concurrency (2021年Swift 5.5)
モダン並行処理:
- async/await: JavaScript・Python・Rust と類似構文
- Actor: 並行アクセス安全な Object (Erlang Actor モデル由来)
- Task: 非同期作業単位
- 意義: Objective-C の「completion handler 地獄」を解消・モダン並行プログラミング標準
採用システム (2014-2024年)
- iOS アプリ: 全App Store の95%+ がSwift (2024年)・WhatsApp・Spotify・Instagram・Uber・Airbnb・TikTok 等
- macOS アプリ: Apple 純正 (Notes・Mail・Music・Photos)・Microsoft Office (Mac 版)・1Password・Things 3・Bear
- iPad アプリ: Procreate・Affinity Photo・MindNode
- Apple Watch アプリ: 全watchOS アプリ
- Apple TV アプリ: tvOS アプリ
- Vision Pro アプリ (2024年-): visionOS アプリ全Swift+SwiftUI
- サーバサイド: Vapor (Swift Web Framework)・Kitura (IBM・廃止 2020年)・限定的
- Linux: Swift on Linux (2015年-)・サーバサイド普及限定
関連技術との違い
| 項目 | Objective-C (1983) | Swift (2014) | Kotlin (2011) | Rust (2010) |
|---|---|---|---|---|
| メモリ管理 | MRC→ARC (2011年) | ARC | GC (JVM) | 所有権 |
| 型安全 | 弱 (nil 自由) | **強 (Optional) ** | 強 (Null Safety) | 強 |
| OOP | あり (Smalltalk 由来) | Protocol-Oriented | あり (Java 互換) | Trait |
| UI Framework | UIKit/AppKit | **SwiftUI (2019年・宣言型) ** | Jetpack Compose (2021年・宣言型) | UI ライブラリ少 |
| プラットフォーム | Apple (iOS/macOS) | Apple+Linux+Windows | Android (Google 推奨) | クロスプラットフォーム |
よくある質問 (FAQ)
Q1: Swift と Objective-C どちらが推奨か? A: 新規iOS アプリ: Swift 一択 (Apple 公式推奨・WWDC でSwift のみ紹介)。既存Objective-C コード保守: Objective-C 継続・Swift+Objective-C 混在可能 (Bridging Header)。学習: 新規開発者はSwift から始める・Objective-C は深く学ぶ必要なし (レガシー保守時のみ)。
Q2: なぜApple は Objective-C を捨てSwift 開発したか? A: (1) Objective-C は1983年設計で古い (Smalltalk + C で30年継承)・(2) nil 安全性なく実行時クラッシュ多・(3) [] メッセージ送信構文がモダン開発者に不慣れ・(4) ARC (2011年Objective-C 追加) で改良も限界・(5) Chris Lattner の長年構想・(6) 2014年WWDC でApple が「Swift で iOS 開発の未来」宣言・全要因で「30年継承の言語を新言語で置換」Apple 史上最大の言語移行。
Q3: 現代でSwift 学ぶ価値は? A: 大いにあり。(1) iOS アプリ開発市場 ($86B 2024年App Store) で必須・(2) iOS Developer は高給職 (世界平均年収$110,000-$180,000)・(3) Apple Vision Pro (2024年Vision OS) で空間コンピューティング新市場・(4) SwiftUI で現代UI 開発・React/Flutter と並ぶスキル・(5) Swift Server (Vapor) でサーバサイドも・Apple エコシステム開発者のコア言語。
まとめ
- 2014年Apple Chris Lattner 主導開発
- Objective-C 後継 (30年Apple 主要言語)
- 型安全・Optional 型・Protocol-Oriented
- SwiftUI・Swift Concurrency
- Apple エコシステムの公式言語