なぜObjective-Cのコードは直感的にわかりにくいのだろうか

パソコン
私は前々から思っている。
なぜObjective-Cという言語はこれほどまでにわかりにくいのか、と。
Wikipediaにはこう書かれている。

Objective-CはC言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語である。Objective-C – Wikipedia

C言語の類は型の扱いが厳格である。というのを以前どこかで聞いたことがあったが、その点はまだよい。

私がObjective-Cをわかりにくいなと思うのは、「コードをパッと見たときに直感的にわかりにくい」という点である。
コード内に*(アスタリスク)や@(アットマーク)がたくさんあることもその一因なのかもしれない。
このあたりはきっと慣れによって解消していくのだとは思うが、どうもまだまだ慣れることができない。

名前が無駄に長い

あと、「名前が無駄に長い」点もわかりにくさの一因なのではないだろうか。
例えばiPhoneのカメラ機能を使おうとする時にUIImagePickerControllerというクラスを使う場合がある。
その際にはまずクラスの宣言部に以下の記述を追加することになる。

<UINavigationControllerDelegate, UIImagePickerControllerDelegate>

もうこの時点で長い。
2つ追加するだけなのにこの長さだ。
こんなのがコードのあちこちにあるので、余計にコードの見通しが悪く感じる。

しかもこのUIImagePickerControllerUIImagePickerControllerDelegateなどの記述が毎回覚えられない。
たくさんの種類があるので1つ1つ覚えるものではないのだろうが、とにかく記憶に残らない。

JavaScriptのgetElementByIdgetElementsByTagNameは1回見ただけですぐに覚えられたのだが、Objective-Cのはどうも記憶に残らず、後日また同じことを調べることになる。

Xcodeを使ってObjective-Cを書いていれば、途中まで打ち込んだ時点でその後の候補が表示されるのでそれらの中から選択すれば楽なのだが、自分で全部打ち込むほうが身に付くという理由から私は候補から選ぶことをあまりしない。

だから1文字も間違いないよう打ち込むことに神経がいってしまい、今何の処理を打ち込んでいるのかを忘れることがしょっちゅうある。
だから余計に疲れる。

このあたりも慣れによって解消するのでしょうかね。