果让他们的语言的默认执行不正确的行为着实让我受宠若惊。
基本上,我时常感觉Objective-C的类型系统是在挑战我。我也尝试写一个安全的voip应用来保护你免受你的压迫性的政府,但是我在用的语言实际上被设计成升级微不足道的错误来折中,而不是立马崩溃。我觉得,我将从不会犯低级错误,因此没有人会死,对吗?这是完美的。或者有些人受虐待。。。我也许也会检查它十多次。。。
语言的开发环境,是很影响你对该语言的感受的。开发Objective-C程序可以选择苹果公司的XCode工具,我个人比较习惯于使用XCode。此外还可以选择JetBrain的AppCode开发环境来开发,虽然这个工具是收费的,但说实话我不是很喜欢,没用多久就丢弃了。
如果我给XCode评个分的话,满分5分我给3分,算是中规中矩吧。XCode有许多细节做得很棒,比如, 这个fantastic ,它会高亮显示匹配的花括号(闪烁黄色高亮),还有方法自动补全之后,有行内气泡提示,这也非常好用。不过也有许多不足之处。
奇怪的是,我主要抱怨的是项目文件的格式。我发誓,它设计就是为了引起合并冲突。我不知道是否UUID与各个条目、重复信息,或者每行多种信息相关。。。但我不记得最后一次我合并,而没有手动修复&*(&ing项目文件。
有趣的是,对项目经常性的崩溃有些本末倒置。修复项目最快的方法是恢复它,然后通过把对应的文件夹拖进项目中重建组,来修复包含源代码的组(这么做是有效果的,因为源码文件合并是正常的)。这个规律的重建操作保持你的组与文件系统同步,因此你的项目不会在像github一样的外部环境中看起来一团糟。多么“方便”啊。
我使用XCode的下一个问题是自动补全。它并不擅长这个。特别是当你在上面已经有了写了一半的代码,在你编辑时总是可以保证看到部分结果。这会诱使你认为基本的方法不存在,因为你正在盯着一个不包括它们的补全列表。XCode自动补全的另一个情况是当你使用点语法时明显不好:它基本没工作过。输入一个空格,你得到很多的结果,包括读取器,但对应输入一个点,你将可能看不到任何结果。令人沮丧。
我对XCode的最后一个抱怨,也是值得提一下的,是有限的重构功能。在重命名变量和一些其他东西时,会受限制,而且也没什么效果。这真的很慢(我见过花费几分钟的情况),另一半情况就是XCode崩溃。老实说,如果你想要做重构的话,你应该仅仅安装AppCode。要么用那个,要么习惯忍受find+replace。
Objective-C还行。它有很多很好的语法和好用的编辑器,但是(从一些喜欢静态类型人们的角度来说)类型系统留下了许多可以改进的地方。
至少,这是我个人的体会。
相关阅读: