设为首页 加入收藏

TOP

Objective-C 到底给了程序员什么
2011-12-10 21:42:53 】 浏览:1295
Tags:Objective-C 到底 程序员 什么

不少程序员和我一样,对 Objective-C 经历了从反感到喜爱的转变。反感的是方括号语法和没有虚拟机 (virtual machine) 的动态语言实现。转变因为两个原因。一是 Objective-C 相对简单的语言构造。需要面向对象编程(www.cppentry.com)又惧怕 OOC 的程序员们终于摆脱了 C++(www.cppentry.com) 的绑架,没有了跨函数的异常处理,没有了声东击西的操作符重载 (operator overloading) ,获得了统一的内存管理从而摆脱了 C++(www.cppentry.com) 的 value copy 和 block-scope 语义(什么时候 copy constructor 会调用?什么时候 destructor 会调用?)。第二,尽管基于虚拟机的动态语言更强大,但完全脱离 C 还是不现实的,构建实际的软件需要 hybrid 编程(www.cppentry.com),而没有虚拟机的 Objective-C 是一种「单一」语言,还是单一语言好用。 首先谈谈第一点,Objective-C 比 C++(www.cppentry.com) 简单是否仅仅限于砍掉了一堆 C++(www.cppentry.com) 语言的 feature 而已?那么又增加了方括号语法是不是在「砍掉 feature」大基调下一个不和谐的杂音? 范式分割 C++(www.cppentry.com) 被其设计者 Bjarne Stroustrup 定义为「多范式 (multi-paradigm) 的通用编程(www.cppentry.com)语言」[1]。Stroustup 的基本出发点看似没有什么问题,解决不同的问题,尤其是不同层次的问题,需要不同范式的编程(www.cppentry.com)语言。但是,能不能把不同范式揉合到一种语言当中呢?至少 C++(www.cppentry.com) 的具体方式很糟糕。我认为正确的方式是让程序员在(面向不同问题,或者分析不同代码的)不同时候用不同范式思考,提供在范式之间切换的手段。尽量让程序员在每个时刻只需用单一范式思考。同时混用多个范式是巨大的智力负担。C++(www.cppentry.com) 正好反其道行之:对所有范式都选取相似的语法符号,更糟糕的是为了加大相似度特地提供了操作符重载。Stroustrup 在自己的书里多次提到他的出发点是让所有范式的所有元素都成为 first-class 


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇SSL shutdown 下一篇C语言中史上最愚蠢的Bug

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目