如果你的生活中只看到过Objective C,那么它的语法看起来可能是唯一的选择。我们可以称你为“编程处女”。
但是由于很多代码都是用C、C++、Java、JavaScript、Pascal和其他语言编写的,你会发现ObjectiveC与它们都不同,但这并不是一件好事。他们为什么要这样做呢?让我们看看其他流行的语言:
C++在增加了很多额外功能的同时,只在必要的情况下改变了原始语法。
C#相对于C++添加了很多额外功能,但只改变了C++中丑陋的部分(比如从接口中删除“::”)。
Java改变了很多东西,但保留了熟悉的语法,除非需要进行更改。
JavaScript是一种完全动态的语言,可以做许多ObjectiveC无法做到的事情。尽管如此,它的创建者也没有发明一种新的方法来调用方法和传递参数,只是为了与世界其他地方不同。
Visual Basic可以像ObjectiveC一样无序传递参数。你可以命名参数,但也可以按常规方式传递它们。无论你使用哪种方式,都是人人都理解的普通逗号分隔方式。逗号不仅是编程语言中常用的分隔符,也是书籍、报纸和一般书面语言中常用的分隔符。
Object Pascal的语法与C不同,但它的语法对于程序员来说实际上更容易阅读(也许不适用于计算机,但谁在乎计算机的想法)。所以也许他们偏离了主题,但至少他们的结果更好了。
Python有不同的语法,甚至比Pascal更容易阅读(对人类来说)。因此,当他们进行更改时,至少他们使其更好,而不只是为了与众不同。
然后我们有ObjectiveC。它增加了一些对C的改进,但发明了自己的接口语法、方法调用、参数传递等。我想知道为什么他们没有交换+和-,这样加号就可以减去两个数。这会更酷一些。
史蒂夫·乔布斯犯了一个错误,他支持了ObjectiveC。当然,他不能支持更优秀的C#,因为它属于他最糟糕的竞争对手。所以这是一个政治决定,而不是实际的决定。当技术决策出于政治原因时,技术总是会遭受损失。他应该领导公司,这方面他做得很好,把编程事务留给真正的专家。
如果他决定使用任何其他语言编写iOS并支持库文件,除了忠实的粉丝、新手程序员和史蒂夫·乔布斯外,我相信iPhone上会有更多的应用程序。对于除了忠实的粉丝、新手程序员和史蒂夫·乔布斯之外的所有人来说,ObjectiveC看起来荒谬、丑陋和令人反感。