確かに、あなたが人生で見たすべてがObjective Cである場合、その構文は唯一可能なもののように見えます。私たちはあなたを「プログラミングの処女」と呼ぶことができます。
しかし、多くのコードはC、C ++、Java、JavaScript、Pascal、およびその他の言語で記述されているため、ObjectiveCはそれらすべてとは異なりますが、良い点は異なります。これには理由がありましたか?他の一般的な言語を見てみましょう:
C ++はCに多くの追加機能を追加しましたが、元の構文を必要なだけ変更しました。
C#はC ++に比べて多くの追加機能を追加しましたが、C ++で醜いもののみを変更しました(「::」をインターフェイスから削除するなど)。
Javaは多くの点を変更しましたが、変更が必要な部分を除いて、使い慣れた構文を維持しました。
JavaScriptは完全に動的な言語であり、ObjectiveCではできない多くのことができます。それでも、その作成者は、メソッドを呼び出してパラメーターを渡す新しい方法を発明しただけで、他の世界とは異なります。
Visual Basicは、ObjectiveCと同様に、パラメーターを順不同で渡すことができます。パラメータに名前を付けることができますが、通常の方法で渡すこともできます。何を使っても、それは誰もが理解できる通常のカンマ区切りの方法です。カンマは通常の区切り文字であり、プログラミング言語だけでなく、本、新聞、一般的に書かれた言語でも使用されます。
Object Pascalの構文はCとは異なりますが、その構文は実際にはプログラマーのために読むのが簡単です(多分、コンピューターではなく、コンピューターが何を考えているかを気にする人)。おそらく彼らは脱線したかもしれませんが、少なくとも彼らの結果はより良いです。
Pythonには異なる構文があり、Pascalよりも(人間にとって)読みやすくなっています。したがって、彼らがそれを変更してそれを変えたとき、少なくとも彼らは私たちのプログラマーにとってそれをより良くしました。
そして、ObjectiveCがあります。Cにいくつかの改善を加えますが、独自のインターフェース構文、メソッド呼び出し、パラメーター受け渡しなどを発明します。なぜ+と-を入れ替えなかったのでしょうか?それはもっと涼しかったでしょう。
Steve JobsはObjectiveCをサポートすることで失敗しました。もちろん、彼はC#をサポートすることはできません。これは優れていますが、彼の最悪のライバルです。したがって、これは政治的な決定であり、実際的な決定ではありません。政治的な理由で技術的な決定が下されると、技術は常に影響を受けます。彼は会社をリードし、良いことをし、プログラミングの問題は実際の専門家に任せるべきです。
ObjectiveC以外の言語でiOSおよびサポートライブラリを作成することを決めた場合、iPhone用のアプリはさらに増えると思います。熱心なファン、バージンプログラマー、スティーブジョブズを除くすべての人にとって、ObjectiveCはばかげて、醜く、不快に見えます。