Objective-C做为一种编程语言几乎没人认识和使用。直到iPhon和iPad胜利,2009年夏之前。Objective-C就开始以令人难以置信的速度往顶部攀升。这就导致了2011-2012连续2年获得了TIOBE年度奖项,不过在最近一段时间,预计Objective-C不会再继续上升。很多人会认为Objective-C上升变得缓慢或下降的主要原因是iPhone5销售量不佳,界面的审美疲劳,3.15一些问题导致。或者又因为用Objective-C语言开发确实不是太理想,导致一些个人开发者对其放弃。总之,Objective-C目前确实遇到瓶颈。很难分个高低。关于详细的排名请看下图:不过C和Java确实没什么好说的现在两兄弟现在打的不分上下。
Objective-C七宗罪
一宗罪:.xib文件太大,有几个原因,之所以说Objective-C不好。最大的问题是当系统加载系统.xib时,需要加载整个.xib并且在启动应用顺序或者用户交互响应环节时占据大量时间,这一点很让人头疼。第二个问题是无法重复使用视图(或者与它相关联的代码)总不会希望一直重复粘贴与复制吧。
二宗罪:无法使点语法坚持一致,很多开发者第一感觉就变成望而却步了谈及Objective-C语法。也许他想法是正确的但是个人认为点语法是一个较为现代化的方式来访问属性,许多开发者总认为使用点语法编写是主观现象。这不属于客观现象。相反,如果你选择使用点语法,并且一直坚持这么做。那么,建议你要么全部使用,要么干脆不要,记住,千万不要混合及匹配使用
三宗罪:.mFile中的类繁多,这是一个很主观的现象,一个相同的文件里会出现很多类。因为这往往会利用一个有用的方式来定义,就如同小包装模型类或者值转换。把它放在自己的文件夹中即可。如果你#import一个视图控制器仅仅是为了.mfile里面得到一个辅助类,如果外部文件需要使用你新类。那么要把重构摆在首位。
四宗罪:无法进行编译器优化测试,但最终发布前肯定还是会开启它这时经常会出严重的问题。当你开发时通常会使用Xcode默认选项—关闭优化。只需一个简单的smoke测试就足够了如果你有beta测试人员,无需调优编译器来做完整的回归测试。那么可以进行设置,重要的某人在测试之外能够生成二进制文件以确保用户能够被控制。
五宗罪:体系结构的基本类型,使用int将会出现丢失;如同为OSX编译时出现的那些半位,Objective-C这门语言以及其运行时既是为iOS也是为OSX而开发的但iOS32位而OSX64位的当你使用Objective-C定义原始值的时。使用longint又显得太蠢了
六宗罪:不必要的-CAPIs,而是一些严重混乱的C什么是KeychainAPI新的OSXAPI需要使用Sandbox但需要使用C吗?这里我讨论的不是核心基础类。可选择使用C大多数情况下Objective-C不错的选择。C语言比Objective-C快不了多少。如果你想做任何实时系统方面或者处置音频或视频。
七宗罪:无法使用自动化测试,否使用Objective-C进行单元测试?也许你不曾使用过。那么你曾给UI进行自动化验证测试吗?答案也是NO那你曾设置过任何继续集成吗?