Objective-C

Objective-CはCを拡張してオブジェクト指向を可能にしたというよりは、Cで書かれたオブジェクト指向システムを制御しやすいようにマクロ的な拡張を施した言語である。したがって、「better C」に進んだC++とは異なり、「C & Object System」という考え方であり、ある意味2つの言語が混在した状態にある。

コンパイラおよび言語仕様は完全に公開されているものの、長らくNeXTおよびその後継であるmacOSとiOSの専用言語に近い状態にある。2008年にiPhone OS(現iOS)のAPIが公開されて以降、習得者の人口が増える傾向にあるが、Swift登場により、状況が変わる。

Swiftは、macやiOS向けアプリケーション開発のための、Appleが提供する標準開発言語です。

Objective-CとSwiftのどちらを覚えるべきなのでしょうか。最初に結論から言うと、Objective-C」も「Swift」も両方覚えておくべきです。

SwiftはObjective-Cの共存のために開発された新しいプログラミング言語です。Xcode上で開発しなくてはいけないため、バージョンアップの頻度が高いXcodeに合わせて、マイグレーションを行わなくてはいけません。現在上がっている問題としては、Xcode 7.3/Swift 2.2で開発されたフレームワークがXcode 8.0/Swift 3で使用できず、ソースコードの混在も不可能という問題です。ですが、簡単な記述でネイティブアプリ開発が出来る利点があるため、アプリケーション開発のみをする場合であれば、Swiftを覚えましょう。

フレームワーク・ライブラリーの開発を含む場合は、Objective-Cを覚えるべきです。Objective-Cは互換性を重視しており、C言語やC++の機能を最大限に利用することが出来、混在させることにより連携も可能にします。また、バージョンアップ問題も基本的には起こらないため、フレームワーク・ライブラリーの開発に最適です。

このようにそれぞれの得意分野があるため、Objective-CとSwiftの両方を覚えておくべきです。