概要
「C言語は手堅いけど低レベルでかったるい」「Smalltalkはめっちゃ便利だけど独自の世界を持っててOSなどとつなぎにくくとっつきづらい」という双方の長所短所に対して「C言語から直接Smalltalkみたいなものが使えればいいのに」という動機で、Cに後付けの拡張を施した言語である。Cからの拡張部分はプログラマから見るとスクリプトインタプリタに近いが、コードそのものは完全にネイティブコンパイルされる。
C++と異なりCからの言語的な拡張はほとんど毛が生えた程度だが、Cの中にいきなりSmalltalkが割り込んでくるような世界観のため、コードの見た目はC++以上にCからかけ離れていたりする。
簡素な文法+強力なライブラリセットというSmalltalk系の流れをダイレクトに受け継いでいるため、基本的にはその環境ごとのフレームワークを使い倒してナンボの言語。そのためアプリ開発には良いが、他環境に持っていくようなミドルウェアなどの用途には不向きと、得意不得意がはっきりしている。
こんなヘンテコな言語が一躍メジャー言語の一つにのし上がってしまったのは、macOS(OSX)やiOSの公式開発言語であるためだが、macOSの前身となる「NEXTSTEP」が主力言語としてObjective-Cを採用したのが全ての元凶である。NEXTSTEPはUNIXワークステーションにオブジェクト指向プログラミング(OOP)の概念を取り入れた先進的な環境を提供していたが、これを実現するに当たり、OSを直接触れて、扱いやすいOOP環境も作れるObjective-Cは渡りに船であったのだ。
NeXT→Apple系以外のシステムにはほとんど採用されなかったためNeXTのために開発された言語と誤解されることがあるが、実際には上記の通り、NeXTとは別のところで生まれた言語である。2014年ごろからAppleの開発言語は後継のSwiftに移行が進められており、プログラミング言語としてのシェアは徐々に下がっている。
関連タグ
Swift 後継言語
Java 文法はC++っぽいが、設計思想はどちらかというとObjective-Cの影響が強い言語である