`
sogotobj
  • 浏览: 621506 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Objective-C的历史

 
阅读更多
Before learning the intricacies of a new programming language it is often worth taking a little time to learn about the history and legacy of that language. In this chapter ofObjective-C 2.0 Essentials we will provide a brief overview of the origins of Objective-C and the business history that ultimately led to it becoming the programming language of choice for both Mac OS X and the iPhone.

Contents

[hide]
The C Programming Language <style type="text/css"> <!-- --> </style>

Objective-C is based on a programming language called, quite simply, C. The origins of the C programming language can be traced back nearly 40 years to two engineers named Dennis Ritchie and Ken Thompson working at what is now known as AT&T Bell Labs. At the time, the two were working on developing the UNIX operating system on PDP-7 and PDP-11 systems. After attempts to write this operating system using assembly language (essentially using sequences of instruction codes understood by the processor), it was decided that a higher level, more programmer friendly programming language was required to handle the complexity of an operating system such as UNIX. The first attempt was a language calledB. The B language, which was based on a language called BCPL, was found to be lacking. Taking the next initial from theBCPL name, the C language was created and subsequently used to write much of the UNIX operating system kernel and infrastructure. As far as we can tell,C was so successful that new languages named P and L never needed to be created.

The Smalltalk programming Language

The C programming language is what is known as a procedural language. As such, this means that it lacks features such as object oriented programming. Object oriented programming advocates the creation of small, clearly defined code objects that can be assembled and reused to create more complex systems.

An early attempt at an object-oriented programming language was developed by a team including Alan Kay (who later went to work for Apple) and Dan Ingalls at Xerox PARC (Palo Alto Research Center) in the 1970s. This language is known as Smalltalk.

C meets Smalltalk

An interesting history lesson so far, but what does this have to with Objective-C? Well, in the 1980s, two developers named Brad Cox and Tom Love extended the C programming language to support the object oriented features of Smalltalk. This melding of languages ultimately culminated in the creation of Objective-C. Objective-C was subsequently adopted by the Free Software Foundation and released under the terms of the GNU Public License (GPL).

Objective-C and Apple

<style type="text/css"> <!-- --> </style>

To understand how Objective-C, a language based on two 40 year old programming languages, ended up being the language of choice on Mac OS X and the latest cutting edge smartphones from Apple it is necessary to move away from technology for a while and talk about business.

In the 1980s Steve Jobs and Steve Wozniak founded Apple Computer. After many years of success, Steve Jobs hired a marketing wizard from PepsiCo called John Sculley to help take Apple to the next level of business success. To cut a long story short, a boardroom battle ensued and Steve Jobs got pushed out of the company (for the long version of the story pick up a used copy of John Sculley's bookOdyssey: From Pepsi to Apple) leaving John Sculley in charge.

After leaving Apple, Jobs started a new company called NeXT to design an entirely new generation of computer system. The operating system developed by NeXT to run on these computers was called NeXTstep. In order to develop NeXTstep, NeXT licensed Objective-C. NeXT subsequently joined forces with Sun Microsystems to create a standardized version of NeXTstep named OPENstep which the Free Software Foundation then adopted as GNUstep.

During the 1990s, John Sculley left Apple and a procession of new CEOs came and went. During this time, Apple had been losing market share and struggling to come out with a new operating system to replace the aging MacOS. After a number of failed attempts and partnerships, it was eventually decided that rather than try to write a new operating system, Apple should acquire a company that already had one. During Gil Amelio's brief reign as CEO, a shortlist of two companies was drawn up. One was a company called Be, Inc. founded by a former Apple employee named Jean-Louis Gassée, and the other was NeXT.

Ultimately, NeXT was selected and Steve Jobs once again joined Apple. In another boardroom struggle (another long story as outlined in Gil Amelio's bookOn the Firing Line: My 500 Days at Apple) Steve Jobs pushed out Gil Amelio and once again became CEO of the company he had founded all those years ago.

The rest, as they say, is history. NeXTStep formed the foundation of what became Mac OS X, bringing with it Objective-C. Mac OS X was subsequently modified to provide the operating system for the spectacularly successful iPhone.

分享到:
评论

相关推荐

    Objective-C历史

    PHP,一个嵌套的缩写名称,是英文...PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

    Objective-C基础教程 中文 PDF 清晰版 [31M]

    中文名: Objective-C基础教程 作者: Mark Dalrymple Scott Knaster译者: 高朝勤 杨越 刘霞图书 分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社 书号: ISBN: 9787115208774 发行时间: 2009...

    [Objective-c程序设计].杨正洪等.扫描版

    《Objective-C程序设计》(作者杨正洪、郑齐心、李建国)通过大量的实例系统地介绍了Objective-C语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读本书后,可以掌握Objective-C语言的基本内容,并进行...

    Objective-C学习笔记(一)OC基础.md

    1. Objective-C概述,介绍了Objective-C的来源、发展历史和作为面向对象的C语言的特点。 2. 第一个OC程序,讲解了如何创建一个OC项目,解释了一些OC程序中的关键字和语法。 3. OC基础语法,对比了OC和C语言的一些区别...

    Object-c的概要介绍与分析

    Objective-C 是一种面向对象的编程语言,广泛应用于苹果的 macOS 和 iOS 操作系统上的软件开发...1. **Objective-C基础**:介绍Objective-C的历史、环境搭建、基本语法,包括变量、数据类型、控制结构等。 2. **面向对

    Objective-C、C++以及C之间的区别

    随着ios开发的兴起,Objective-C语言收到了广大移动开发者的青睐。而传统的使用广泛的语言c++在不同的操作系统、不同的应用平台上继续发挥自己的能量。可以看到,前面两种语言都一个共同的字母—c,毫无疑问预示着...

    LanguageDay:Objective-C 语言简介

    语言日Objective-C 语言简介##什么是计算机程序? 计算机程序是以计算机可以理解的语言提供给计算机的指令列表。 我们这门课的语言是Objective-C 。 是学习更多关于 Objective-C 的好网站##Objective-C Primitives ...

    objc-guide:Objective-C编码准则

    这些约定随着Objective-C语言,框架和经验的发展而变化。 欢迎和鼓励反馈和讨论。 有关如何捐款的详细信息,请参阅。 目录 命名 实例变量 命名 模式 方法与实现 自动参考计数 早期退货 隐式布尔转换 冗余方法调用 ...

    word分词器java源码-pegkit:Cocoa/Objective-C的“解析表达式语法”工具包

    Objective-C 编写并在 . 始终使用 Xcode 工作区PEGKit.xcworkspace ,而不是Xcode 项目。 该项目作为 Git 子模块包含在内。 所以正确克隆这个项目需要--recursive参数: git clone --recursive git@github....

    iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建...提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    SyslogClient:用于查询 iOS 和 Mac OS X 系统日志历史记录(控制台日志)的 Objective-C 代码

    系统日志客户端 用于查询 iOS 和 Mac OS X 系统日志历史记录(控制台日志)的 Objective-C 代码。

    rollbar-ios:使用Rollbar进行崩溃报告和日志记录的Objective-C库

    适用于iOS和macOS的Rollbar Objective-C和Swift库,用于使用进行崩溃报告和日志记录。 它适用于iOS和macOS。路线图说明我们建议Rollbar-iOS SDK的所有当前用户开始计划从该SDK升级,方法是转到其新的版本,即我们的...

    HTMLKit:满足您日常HTML需求的Objective-C框架

    一个满足您日常HTML需求的Objective-C框架。 快速概述 HTMLKit是符合的框架,用于解析和序列化iOS和OSXHTML文档和文档片段。 HTMLKit以与现代Web浏览器相同的方式解析实际HTML。 HTMLKit提供了丰富的DOM实现,用于...

    rollbar-apple:Objective-C和Swift库,用于进行远程崩溃,异常,错误报告以及使用Rollbar进行日志记录。 它适用于所有Apple * OS平台(macOS,iOS,tvOS,watchOS等)

    适用于任何Apple * OS的Rollbar SDK Objective-C和Swift SDK,用于使用进行远程崩溃,异常,错误报告和日志记录。 它适用于所有Apple * OS平台(macOS,iOS,tvOS,watchOS等)。 注意:此SDK本质上​​是我们的的...

    iPhone应用开发从入门到精通代码

    C 2.0编程语言232.3.1 Objective-C简介232.3.2 Objective-C的发展历史242.4 混用C/C++编程242.5 本章小结252.6 本章练习25第3章 使用苹果公司提供的开发工具263.1 安装Xcode开发工具263.1.1 从操作系统光盘...

    大话swift(Swift历史简介)

    主要以Apple官方文档《The Swift Programming Language》的“A Swift Tour”为视角浏览...然后以Apple官方文档《Using Swift with Cocoa and Objective-C》来讲解一下Swift如何与Objective-C(包括纯C API)进行交互。

    swift-GCLoveComic一款免费看漫画的APP数据来源Charles抓包

    此项目是喜欢漫画的iPhone手机用户的福利,海量漫画免费阅读。...是一款真正的全、免、快、清的看漫神器,此项目用Objective-C语言编写,SQLite嵌入式数据库开发,开发工具为Xcode,设计过程采用MVC框架

    smalltalk(面向对象(OOP)的开发语言)

    Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor, Java 和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如Design Patterns, Extreme Programming(XP)和...

    Apple developer

    包含iphone开发秘籍.pdf,Objective-C培训资料.pdf,XCode快捷键.doc

Global site tag (gtag.js) - Google Analytics