zoukankan      html  css  js  c++  java
  • 【译】ObjectiveC的特性(The Disposition of ObjectiveC)

    原文地址:http://amattn.com/2011/10/15/the_disposition_of_objective-c.html

            笔者经过十年的Objc编程,在此谈一些对Objc的评论。

    冗长(Verbose)

            这是最显然的Objc特性。Objc编程中总会用到极为冗余的语法,你只能对此习以为常。有经验的Objc程序员相当倚赖于IDE等多种工具来辅助编码。若你要熟练而美观地书写Objc代码,就得动用大量工具来对付该死的语法,如代码片段(snippets),键盘宏,定制的模板等。这些技巧用将出来,将一发不可收拾。幸好标准的消息传递机制便于阅读,为Objc挽回不少分数。

    丑陋(Ugly)

            Objc是一种丑陋的语言。把C语言拿来,又在类结构的里外充斥着@指令——这就像一个流浪汉穿着一个垃圾袋。再把Smalltalk硬塞进去。然后发明属性(Property)来善后。最后空降个^ 代码块(Block,iOS4之后推出的特性,相当于第一类值的C函数,译者注)来完成这门语言。

            我深爱Objc,但依然认为Objc的语法既不简洁,亦不美观。

    易读(Readable)

            优秀的Objc代码尤其易读。这部分得益于Objc命令式的语法倾向。通常而言,消息传递机制是程序错误的温床。但能够在消息的各参数前加入说明,使消息体能够自我说明,非常易读。

            消息传递机制是Objc的最大亮点。

    编译型语言(Compiled)

            这有两个显著的好处:

            得益于编译器和静态分析器,许多错误不必由程序员来捕捉。于是Objc程序员不为那些无聊而机械的错误所困。

            第二个好处是优异的程序性能。于是时至今日,iPhone 3GS之后的设备依然性能优异。

    生态系统(Ecosystem)

            苹果公司包揽了Objective-C的IDE,语言实现,以及主流的库。Xcode,LLVM,Cocoa弥补了很多语言上的缺陷。由于对语言结构上的扩展,诸如子类化,类别是在运行时完成的,自己写Objc的SDK,框架,库的话,会遇到很多麻烦。

    静态类型,动态类型,基础类型(Static, Dynamic or Duck Typed)

            在实践中,土鳖的笔者(your ostentatioulay humble author)偏爱静态类型和原始类型,因为它们很少导致错误。当你确实需要支持多种类型,id是一个动态而方便的工具。正式和非形式协议是id的用武之地。

    趋势(Momentum)

            好酒历久弥香,Objc同样在成长中。我们已经得到了属性,块,GCD以及最近的ARC。只有傻瓜才会认为Objc没有前途。你日常使用的的编程语言会越来越易用吗?

    Objc真正缺少什么?

            我提一句箴言:

            Objective-C:易扩展,易读的符号式(punctuation-based)编程语言。

  • 相关阅读:
    editplus 快捷键
    python 堆栈
    python 矩阵转置
    python 单向链表
    python 读空的json文件
    c++ 结构体
    手把手教你如何利用Meterpreter渗透Windows系统
    vuejs npm chromedriver 报错
    强大的开源网络侦查工具:IVRE
    在vue 中使用Stylus
  • 原文地址:https://www.cnblogs.com/qswang/p/2388587.html
Copyright © 2011-2022 走看看