Objective-Cの廃止はありえない

個人的にObjective-Cは当面生き残るだろうと考えています。少なくともCocoa/Cocoa Touchが無くならない限りはObjective-Cも無くなることはないでしょう。

C言語の既存資産を置き換える必要がある

この業界は未だにC言語を中心に回っていて、その要因には当然ユーザ数やコミュニティ、プラットフォームだけでなく言語を支えるツールやコンパイラの完成度も貢献しているわけです。Swiftはそういった壮大な資産・遺産を置き換える必要があり、現状ではまだまだ車輪の再開発を行っている状況です。

Objective-Cは既存の資産を最も容易に活かす事のできる言語であり、この言語のポテンシャルは当面も活かされていくでしょう。

Swiftの土台が固まる頃まではありえない

ですから、AppleによるObjective-Cの切り捨ては、Swiftの土台(言語仕様、開発環境、周辺環境、シェア)がしっかりと固まった頃でなければ難しいと考えています。そもそもSwiftはC/C++/ObjCを置き換える言語を目指しているのでしょうか。この点はApple側も様子見しているのか、非常に曖昧で開発者が自身で判断しなければならない状況です。今年のWWDC 2016でApple側から両言語の方向性がきちんと示されることを願うばかりです。

ちなみにSwiftはObjective-Cを置き換えることはあってもC/C++を置き換えることはないというのが個人的な考えです。SwiftはClangと同等のコンパイラー基盤で開発されていますので、両者は今後も共存しより連携する形で生き残っていくのではないでしょうか。
またSwiftには代替言語というよりは次世代言語としての側面を強く感じており、従来とは異なる層や世代をターゲットとする言語であると考えています。

しかし世の中の流れは圧倒的にSwift

iOS業界においてSwiftが今後のメインストリームになることは明らかです。iOS関連の書籍のほとんどはSwiftに置き換わろうとしてますし、世の中(正確にはiOS業界)の流れは圧倒的にSwiftなのです。だからといって、すぐにでもObjective-Cが無くなるだろうと決めつけるのはいささか短絡的すぎるようにも思えます。

Objective-Cの非推奨化はあっても廃止はない

また、ある日突然Objective-Cの利用が規制されたりといったことも起こりえないはずです。これはAppleという企業とそのプラットフォームの信頼にも関わることですし、爆発的に増加した今日のAppleデベロッパー人口を考えれば、Appleお得意の強引な統制もさすがに行われないでしょう。

もし仮にAppleがObjCを切り捨てることになったとしても、非推奨(Deprecated)という形になるはずです。きちんと開発環境と実行環境を残した上での非推奨です。IDEによる開発支援が受けづらくなったり、新たなAPIのサポート対象から外れるようになったり、またはブリッジ経由でAPIを呼び出すような制約が加わったりするようになるのではないでしょうか。

既存開発者としての意見

少し保守的・楽観的かもしれませんが、私はObjective-Cを長い目で見守っていこうと考えています。 既存開発者としては、Swift移行で無駄に時間や労力を浪費するよりも、成熟したObjective-C開発環境をギリギリまで使い倒したほうが生産的だと考えています。

現状のSwift開発環境はいまだ成熟しているとは言えず、長期的・継続的なアプリ開発を行う土台としてはまだまだ貧弱であると感じています。

Objective-Cの最適な移行タイミング

個人的には、XcodeがObjective-C→Swiftの変換ツールを搭載した頃や、小さなランタイムが廃止された頃、Apple標準アプリがSwift化した頃、既存フレームワークがSwift化した頃、SwiftとC++の正式な連携機能が実現された頃等、またそれらの兆候が見れられた頃が潮時ではないかと考えています。

最後に

本記事の内容はあくまで個人的な考えであり、Objective-Cの将来性を保証するものではありません。世の中の流れがSwift側にある点は常に気に留めておくべきでしょう。また今後Objective-Cを必要とする開発者はC/C++言語経験者や既存の開発者、マルチプラットフォーム向けOSSの開発者、サードパーティ系の開発者に限られていくはずです。

広告