【】Objective-C for Java Programmers

    设计java的灵感源自于objective-c(简obj-c), 但是很多学过java的朋友却难以掌握objective-c。在这个系列的第一部分,david chisnall(程序开发人员手册的作者),从语言学分析和比较这两种编程语言的相似之处。

  objective-c 创立于 1986, 但是当时很小众。最主要的支持者是 next公司, 一个十年间仅卖出5万台电脑的公司。这很大程度限制了obj-c的发展。 苹果公司收购next后, 一切开始改变. objective-c 变为mac开发的主要语言, 使其占有5%至10%的桌面应用开发市场。giving it somewhere up toaround 5-10 percent of the desktop application development market share. 尽管objective-c并不是mac os x开发的唯一语言,很多开发者使用他们熟悉的语言,但是iphone,只允许使用obj-c开发第三方应用。

              如果你是从某个java平台转移而来,你会看到惧怕。obj-c看起来比java复杂得多。幸运的是,只要你看看语法,就会发现熟悉的东西,你会发现十分容易。

  一部分的java开发者有过objective-c的开发经验, 包括一些在next 工作过的朋友. 很多java 概念是从objective-c转变而来的, 或者来自于smalltalk。但并不是说与 objective-c相同. 有一些重要的不同我将在下一篇文章中说明。


语言哲学

      objective-c 被设计为具有封装的支持,像smalltalk之于c一般,设计者称其为混血语言,方括号代表了 c 语言到面向对象的语言的进化。




        java的目标是大众化的语言,这结合了类似smalltalk 的语义和c++ 语法,c++主要是从市场考虑的. c++ 有巨大的市场(且仍然有,虽然原因不明。。。), 而且看似想尽的语法使得人们觉得简单。


       不幸的是,这也是java程序员转变为其他程序员的屏障。 java 看起来像c++, 但是行为像objective-c. java 和 objective-c 都有smalltalk-like 语义, 与此同时c++ 从c中添加了与simula 相似的语义。java 和c++ 分别代表着smalltalk 和simula 不同的语义,但是又具有相同的语法.


             从c++ 到objective-c 是简单的,语义变化伴随着语法变化.。从objective-c到java是困惑的. 有巨大的语法变化,但是语义却是相似的。


             目标的不同很明显. java 目的在于 c-like 和对于 c 或 c++ 程序员的简单易学, 但是不介意破坏c的方式.;而objective-c 是一个纯粹的c的超集。 每一个c 程序就是一个objective-c 程序.。objective-c 的目的在于创造一个语言封装c到易于重用的组件中。




            objective-c 原本没有很多标准库。而推荐使用c库。 sun and next的openstepapi, 现在是objective-c 的标准库, 它的实现例如 cocoa 或者gnustep 适用于多数平台. java 并没有使原有的代码重用变得简单, 所以它需要自己的库。 

你可能感兴趣的:(java,工作)