设计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 并没有使原有的代码重用变得简单, 所以它需要自己的库。
分享到:
相关推荐
Prentice Hall - UML for Java Programmers 英文版
Jython for Java Programmers
Objective-C Pocket Reference provides a quick and concise introduction to Objective-C for programmers already familiar with either C or C++, and will continue to serve as a handy reference even after ...
Because of this, both beginners and experienced programmers alike can use this book to quickly and effectively learn the fundamentals of Objective-C. Readers can also learn the concepts of object-...
C++ for Java Programmers.rarC++ for Java Programmers.rarC++ for Java Programmers.rar
iOS 7, and Xcode 5 Programming in Objective-C is a concise, carefully written tutorial on the basics of Objective-C and object-oriented programming for Apple’s iOS and OS X platforms. The book makes...
Dot NET Development for Java Programmers by Paul Gibbons
A primer for non-C programmers to get off the ground even faster What you'll learn * Learn Objective-C programming, the gateway to programming your iPhone, iPad or Mac * Write apps for the iOS and/or ...
Written for the moderately experienced Java programmer, this book builds on readers¿ existing knowledge of object-oriented programming and covers all important aspects of Standard C++—emphasizing ...
UML_for_Java_Programmers中文版 UML_for_Java_Programmers中文版
Speaking [removed] An In-Depth Guide for Programmers 1st Edition Like it or not, JavaScript is everywhere these days—from browser to server to mobile—and now you, too, need to learn the language or...
UML for Java Programmers中文版
Because of this, both beginners and experienced programmers alike can use this book to quickly and effectively learn the fundamentals of Objective-C. Readers can also learn the concepts of object-...
( Go for Java programmers(面向java开发者的go编程) 中文翻译 原文在此: http://blog.csdn.net/kkkloveyou/article/details/8256649
UML for Java Programmers 中文版
游戏开发图形学-Shaders for Game Programmers and Artists shader 入门 rendermonkey 教程
common-sense-c-advice-and-warnings-for-c-and-c-programmers.9781882419005.32087
UML for Java Programmers中文版.pdf