こんにちは、KiYOです。
システムエンジニア歴20年オーバー。製造現場に特化したシステム開発を主にやってます。
新しい物好きで色々なIT技術を勉強しては、仕事に使って行ってます。

今回はObjective-Cについて紹介します。
Cにオブジェクト指向を足したiOS/macOS向け言語です。
- Objective-Cの特徴
- Objective-Cの歴史
- Objective-Cの利用シーン
今回はこの本を参考に、私の独断と偏見で記事を書いています。
言語を5点中評価
容易性 | 容易に言語習得できるか? | 2 |
将来性 | 将来性があるか? | 1.5 |
普及度 | 普及しているか? | 3 |
保守性 | 保守性が高いか? | 3 |
中毒性 | ハマるか? | 3 |
12.5 |

Objective-Cの特徴

macOS/iPhoneアプリ開発で活躍したCの亜種言語になります。
- Cをベースにしつつ、Smalltalkのようなオブジェクト指向機能を持たせた言語
- Swiftと並ぶmacOS/iOSの公式開発言語の一つ
- C言語にオブジェクト指向を持たせたものにC++があるが方向性が違う
C++は広いプラットフォームで使用
Objective-CはmacOS/iOS向けで使用
Swiftに置き換わっていく可能性が高い

Objective-Cの歴史

開発者 | Brad Cox(ブラッド・コックス)、Tom Love(トム・ラブ)、Apple |
誕生 | 2002年4月 C#1.0リリース |
https://ja.wikipedia.org/wiki/Objective-C | |
分類 | 静的型付け、オブジェクト指向、手続き型 |
影響を受けた言語 | Smalltalk C |
影響を与えた言語 | Java Swift Groovy |
言語の歴史
1980年台前半 | Brad CoxとTom LoveはObjective-Cを開発 |
1985年 | Appleを辞めたSteve JobsがNeXTを立ち上げ、Objective-Cに注目し、アプリ開発に採用 |
1988年 | NeXTにObjective-Cの開発を主導 |
1997年 | AppleがNeXTを買収。Apple製品のための中核的な言語となる |
2001年 | Mac OS Xのコア言語として採用 |
2020年 | Swiftの台頭とともに利用が減っている |
- Objective-CはC言語にマクロ的な拡張でオブジェクト指向が取り入れられたもの
- C++もオブジェクト指向言語だが、方向性はだいぶ違う。文法的にも隔たりがある。
- Objective-CはARCと呼ばれるメモリ管理を言語レベルで導入でき、C /C++とはメモリ管理に関する戦略なども異なる。
- CocoaはmacOS向けのアプリ開発フレームワーク
- デスクトップ向けのGUI開発を効率化
- CocoaとObjective-Cの組み合わせがかつては定番だった
- CocoaもNeXTSTEPの影響を強く受けている
- NeXTSTEPはObjective-Cを全面的に用いて開発されたOS
- 商業的には失敗したが、その革新的なUIは、のちに登場したソフトやOSに大きく影響
- macOSやiOSは技術的にNeXTSTEPの影響を強く受けている(Apple製品の先祖とも言える存在)
Objective-Cのオブジェクト指向は、C++やJavaと異なり、メソッドの定義と呼び出しが独特です。「@…」や「[…]」のような記述することになっているので、Cの経験さえあればある程度はわかりやすいと言えます。
Objective-Cの利用シーン

iPhone/iPadなどのiOSやmacOSのアプリを開発するのに利用されます。現在、Appleは新言語のSwiftにも注力しており、Objective-CとSwiftのプログラム共存できるようになっています。
- Objective-Cの独特のオブジェクト指向はSmalltalkからの影響が多い
- Smalltalkはメッセージ中心のオブジェクト指向言語
- オブジェクト指向とはいってもC++やJavaとはだいぶ雰囲気が違う
まとめ:apple製品の原型を作ってきたのはObjective-C

今回はObjective-Cについて解説しました。
Steve JobsがAppleを去り、NeXTを立ち上げた時に全面的に取り入れた言語だったんですね。歴史を感じます。
- macOS/iPhoneのアプリ開発で使用
- C言語を把握している方は入りやすい(オブジェクト指向だが独特な記述あり)
- 現在のmacOSやiOSの原型となるNeXTSTEPというOSに全面的に使用されていた実績
やりたいことを実現するために、Objective-Cの使い方をマスタしましょう。
何事も覚えることに遅いことはありません。今日が一番若い日です。行動していきましょう!
以上です。KiYOでした!
今回参考にさせていただいた本はこちらです。今回紹介した言語やその他言語も紹介されているので大変勉強になりました。
Udemyというオンライン講座でもプログラミング学習はできます。 再生速度を早めてみたり、何度も見返すことができるのでおすすめです! 私も色々なプログラムをここで学習しています。
[affi id=2]
まとめページで、他のプログラミングも紹介していますので、ご覧ください。

コメント