Objective-CはiOSアプリ開発にておいて多くの開発者に使用されているプログラミング言語です。1983年にC言語をベースにSmalltalk型のオブジェクト機能を持たせた上位互換言語として誕生しました。Swiftの登場後、新旧交代が起きているものの一定以上の需要は保っております。皆さんはiOSアプリ開発において一時代を築き上げたObjective-Cについてどれほどご存知でしょうか。この記事ではObjective-Cを理解するために初心者でも分かる歴史、特徴、できること、基礎知識などを簡単に解説していきます。
Objective-Cとは1983年にブラッド・コックス氏とトム・ラブ氏によって開発されたオブジェクト指向プログラミング言語です。Objective-CはC言語をベースにSmalltalk型のオブジェクト機能を持たせた上位互換言語として誕生しました。誕生当初こそ注目を集める言語ではありませんでしたが、Apple創業者であるスティーブ・ジョブス氏がApple社退任後に立ち上げたNeXT Computer社にて開発言語としてObjective-Cを採用したことから注目が集まり始めます。後にNeXT Computer社はApple社に買収されるとNeXTSTEPをベースにしたオペレーションシステムであるMac OS Xが誕生しました。
これこそObjective-Cが開発言語として採用されており知名度を広げる大きなきっかけとなりました。以降、Mac OSのアプリ開発、iOSアプリ開発にて主軸のプログラミング言語として多くの開発者に使用されております。こうして2010年中頃までiOSアプリ開発においてObjective-Cの独壇場が続いておりましたが2014年にApple社が発表したSwiftの登場によって新旧交代がおきております。
Objective-Cの読み方は『オブジェクティブシー』が一般的となっております。名前の由来については調査したところ信憑性の高い情報については出てきませんでした。
Objective-Cはアメリカのブラッド・コックス氏とトム・ラブ氏によって1983年にC言語をベースにSmalltalk型のオブジェクト機能を持たせた上位互換言語として誕生しました。開発者である両名はObjective-Cのコンパイラやライブラリを支援するためにStepstone社を同年の1983年に創立します。1995年になるとスティーブ・ジョブズ氏がApple社を退任した後に創業したNeXT Computer社がObjective-Cの商標と権利をStepstone社から買収をします。
ここからわずか1年あまりでスティーブ・ジョブス氏を退任へと追い込んだApple社がNeXT Computer社の成功を無視できないものとし1997年初頭にNeXT Computer社を買収することとなります。これによってObjective-Cによって開発されたNeXT Computer社のNeXTSTEPをベースにしたオペレーションシステムであるMac OS Xが2002年に誕生しました。2007年になるとObjective-C2.0がリリースされ、翌年2008年にはiOSアプリ公式開発言語のとして多くの開発者に使用される形になりました。
年代 | 出来事 |
1983年 | C言語をベースにSmalltalk型のオブジェクト機能を持たせた上位互換言語として誕生 |
1995年 | NeXT Computer社がObjective-Cの商標と権利をStepstone社から買収 |
1997年 | Apple社がNeXT Computer社を買収 |
2002年 | Mac OS X誕生 |
2007年 | Objective-C2.0がリリース |
2008年 | iOSアプリ公式開発言語となる |
Objective-CはiOSアプリ開発市場において2010年中頃まで独壇場と言える活躍ぶりを見せておりました。2014年のSwiftの登場によって人気の推移はどのように変化していったのでしょうか。RedMonk言語ランキング(https://redmonk.com/fryan/2018/03/15/redmonk-language-rankings-over-time/)
の発表している順位推移を以下の表に表してみました。
Objective-C | Swift | |
2012 | 9位 | – |
2014 | 9位 | – |
2016 | 10位 | 18位 |
2018 | 10位 | 11位 |
2019 | 12位 | 10位 |
上記の表を見ても分かる通り、Swiftの急速な発展によるObjective-Cの需要低下は否めません。Swiftは今後も発展していくことが予想され、Objective-Cは時代の流れと共に古い言語として後退していくことが予想されます。スマホアプリ開発に関わる技術の発展は著しいだけにこの結果は致し方ありません。しかしここ2~3年は一定量以上の需要が残ることは間違いありません。
Objective-Cはコンパイラ型言語という人間が書いたプログラム(ソースコード)をコンピュータが理解できる形式(機械語)に変換するプログラム言語です。コンパイラという言葉は英語の『compile』を表し、『編集する』を意味します。コンパイラ言語の特徴は『処理速度が早い』ということが挙げられます。対比されるインタプリタ言語と比べても実行時の性能が高いと言われております。一方でコンパイラ言語には『修正が容易では無い』というデメリットがあります。代表的なコンパイラ言語としてJava、C言語、C++などが挙げられます。
コンパイラ言語の種類や特徴を解説している記事はこちら>>
Objective-Cでできることを見てきましょう。
Objective-Cは2008月にApple社がiOS公式開発言語として発表しております。iPhone/iPadアプリやMacのPCアプリを開発することが可能です。以降、iOSアプリ開発を行う際にほとんどのプログラマーがObjective-Cを使用しております。
Objective-Cの特徴を見ていきましょう。
Objective-Cはオブジェクト指向言語です。
代表的なオブジェクト指向言語としてJava、C言語、C++などが挙げられます。
Objective-CはC言語がベースに作られたプログラミング言語です。ソースコードは一見するとC言語とはかけ離れたように見えますが、基本的な構文などはC言語になぞられていることがわかります。よってC言語/C++を理解している方であれば、学習コスト低くObjective-Cの習得に望めるでしょう。
Objective-CはiOSアプリの開発において圧倒的な件数の開発事例が存在するため多数のノウハウが存在しております。Swiftやxamarinの登場に至るまでiOSアプリ市場はObjective-Cの独占状態でした。そのため当時生まれたほとんどのiOSアプリはObjective-Cで開発されております。ノウハウが多く存在することでObjective-Cの利用をより効率的に行うことが出来ます。
Swift言語のメリットや種類を解説している記事はこちら>>
xamarin言語のメリットや種類を解説している記事はこちら>>
Objective-CとSwiftは『SwiftがObjective-Cの上位互換ver』という違いがあります。どのような点でSwiftが上位互換かといいますと「素早い」「安全に」「シンプル」という主にこの3観点でSwiftの方が優れております。というのもSwiftの開発を行ったのはObjective-Cを開発するApple社でありさらなる効率とパフォーマンスを求めて新たに生まれたのがSwiftです。他にも様々な観点で比較した内容は以下の表をご覧ください。
Objective-C | Swift | |
素早い | ○ | ◎ |
安全性 | ○ | ◎ |
学習コスト | ○ | ◎ |
シンプルさ | ○ | ◎ |
情報量 | ◎ | ◎ |
将来性 | △ | ◎ |
Objective-Cの基本的な文法を見ていきましょう。
Objective-Cではデータ型で使用される基本的な種類は以下の通りです。
変数型 | 内容 |
unsigned short | short型よりも小さな数値(整数、ゼロ)を扱う型 |
short | int型よりも小さな数値(整数、ゼロ、負数)を扱う型 |
Int | 数値(整数、ゼロ、負数)を扱う型 |
unsigned | 数値(整数、ゼロ)を扱う型 |
浮動小数点型 | 内容 |
Float | 小数点を持つ数値を扱うことの出来る型 |
Double | floatよりも大きな領域を持つ浮動小数点型 |
真偽値を表す型 | 内容 |
BOOL | YES/NOのみを持つ型です。 |
Kotlinでは演算子で使用される基本的な種類は以下の通りです。
演算子の種類 | 概要 |
算術演算子 | 足し算や引き算を実行する |
論理演算子 | 理論を判定する際に用いる |
代数演算子 | 四則演算に代表される計算に使用される演算 |
代入演算子 | 「=」のことで左辺を右辺に代入を実行する |
比較演算子 | 左右の値の比較を行う演算子のこと |
ビット演算子 | 中置記法も利用できる関数 |
インクリメント演算子 | ある値や変数に1加算する 例:a++(後置演算)、++a(前置演算) |
デクリメント演算子 | ある値や変数に1減算する 例:a–(後置演算)、–a(前置演算) |
条件演算子 | 条件によって異なる値を返すことのできる「3項演算子」と呼ばれるものの1つ |
制御文ではif文、switch文、while、break文を覚えておく必要があります。
Objective-Cを理解するために初心者でも分かる歴史、特徴、できること、基礎知識などを簡単に解説させていただきました。Objective-Cを一言で表すと『主にiOSアプリ開発にて使用されるオブジェクト指向プログラミング言語』です。特徴として「オブジェクト指向」「C言語がベースで作られた」などが挙げられます。そしてiOSアプリ市場において一時代を築き挙げ、Swiftが登場した今も一定以上の需要は保っております。Objective-Cについてこの記事に記載されている最低限の内容は理解しておくようにしましょう。