アップルの新言語「Swift」--そのポテンシャルを探る - (page 2)

David Gewirtz (ZDNET.com) 翻訳校正: 川村インターナショナル

2014-06-12 07:30

 まず、Objective-C向けの製品やクラス、トレーニングプログラムが勢いを失い始めるはずだ。Swiftが広範に普及するとしたら、その犠牲になるのはObjective-Cだろう。したがって、現在Objective-Cのトレーニング製品を提供している人は、その製品が数年以内に保守フェーズと開発終了フェーズに達することを覚悟しておいた方がいい。

 その一方で、Swift関連の教材を、同じく書籍、トレーニングサービス、教育プログラムといった形で作成する新たな機会も広がる。900万人の開発者がいるため、市場が存在することは間違いないが、教えるコンテンツの内容には変更を加える必要があるだろう。

Swiftはなぜそれほど特別なのか

 最初に、ほとんどのiOS(とほとんどの「Mac」)プログラミングはObjective-Cで行われてきたことを理解しておく必要がある。Objective-CはC言語の変種で、Appleが独自に開発した。Cは当時としては洗練されていたが、設計されたのは、コンピュータソフトウェアが現在よりはるかに簡素だった1970年代前半のことである。

 それから10年後、C++とObjective-Cが開発され、それぞれ異なるアプローチで、コードの大規模化や再利用といった同様の問題をある程度解決した。誰もが知るように、AppleはNeXTの買収によってObjective-Cを手に入れ、Objective-CはAppleソフトウェアの主要な開発言語になった。

 筆者は2012年、「True confessions of a former iPhone developer」(元「iPhone」開発者の真実の告白)という記事で、Objective-Cのことを「誰かが2つのプログラミング言語を結合したが、継ぎ目を目立たなくするのを忘れたという印象が強い」と説明した。

 その理由は、Objective-CがCにもたらしたメッセージパッシング拡張は、周辺のほかのCコードと異なるシンタックスの記述になっていることだ。Objective Cのコードを記述すると、2つの全く異なる言語の間を行ったり来たりしているように思えるコードがたくさんできる。美しくもないし、洗練もされていないコードだ。

 筋金入りのAppleプログラマーの多くはObjective-Cを賛美するだろう。Objective-Cが役割を果たすことも間違いない。しかし、この言語にはお粗末な要素があることも確かだ。

>

 AppleはSwiftを「Objective-C without the C」と表現した。この2つの結合されたプログラミング言語の枠組み(Cの関数ベースのモデルとObjective-Cのメッセージパッシングモデル)についてわかっていることを基に考えると、Swiftの本質がメッセージパッシングになることは間違いなさそうだ。

 プログラマーでない人は、その意味について深く考える必要はない。全体性を高める方法でコードを合理化できれば、生産性と保守性が必ず向上する、ということを理解しておけば大丈夫だ。

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]