我读了这个问题,这让我开始思考另一件事。面向对象的语言。我不确定第一个是何时创建的,但是为什么要花这么长时间才成为主流?
- C变得非常流行,但是多年之后(数十年?)才没有成为面向对象的C ++。
- 90年代以前没有主流语言是面向对象的
- 面向对象确实似乎在Java和C ++的同时流行
现在,我的问题是,为什么要花这么长时间?为什么C最初不被认为是一种面向对象的语言?只使用一小部分C ++不会对核心语言产生很大的影响,所以为什么这个想法直到90年代才流行起来?
我读了这个问题,这让我开始思考另一件事。面向对象的语言。我不确定第一个是何时创建的,但是为什么要花这么长时间才成为主流?
现在,我的问题是,为什么要花这么长时间?为什么C最初不被认为是一种面向对象的语言?只使用一小部分C ++不会对核心语言产生很大的影响,所以为什么这个想法直到90年代才流行起来?
Answers:
首先,让我们尝试建立一个时间表:
Ritchie的主要影响力是BCPL和ALGOL(两者都是命令式语言),而C是在Simula和Smalltalk的面向对象方法尚未广为人知的时候创建的。它于1972年左右完成,并且仅在7年后出现了C with Classes,Dennis Ritchie和Brian Kernighan都参与了它的创立:
当时,我认为C是目前最好的系统编程语言。那时(1979年)并没有那么明显,但后来我得到了诸如丹尼斯·里奇(Dennis Ritchie),史蒂夫·约翰逊(Steve Johnson),桑迪·弗雷泽(Sandy Fraser),格雷格·切森(Greg Chesson),道格·麦克罗伊(Doug McIlroy)和布莱恩·科尼根(Brian Kernighan)等专家的帮助,我可以从中学习并获得反馈。没有他们的帮助和建议,也没有C,C ++将会胎死腹中。
与一再的谣言相反,我从未被告知必须使用C。从来没有告诉过我不要使用C。实际上,第一本C ++手册源于Dennis给我的C手册的troff来源。贝尔实验室设计了许多新语言。至少在“研究”中,没有强制执行语言偏执的规则。
目标C出现在11年后,它与C ++都是将对象定向带入C的主要且成功的尝试。现在的差距可能似乎很长,但我认为当时的差距并不特别长,请记住我们正在谈论关于万维网之前的时代。1993年,第一个浏览器Mosaic出现了,这是该行业的转折点。几年后发布的Java和Delphi,在其流行度方面,比其前身具有巨大优势。Web也是Sun 兑现WORA承诺的目标平台之一,也许在当时更重要,而Java作为当时刚诞生的平台的语言被大量销售。
另一个关键因素是,1980年代末和1990年代初是GUI开始流行的时代,尤其是在家庭计算领域,而与此同时,硬件越来越便宜。通常,在开发GUI和面向图形的应用程序时,面向对象是一种极为方便的范例,而Turbo Pascal,Delphi,Visual Basic和Java(可能在较小程度上的扩展)因其为GUI开发带来的简便性而受到称赞(当时)。
Sun积极的Java营销显然也发挥了作用,但是由于我仍然清楚地记得我第一次与Java进行交互,所以我肯定没有留下深刻的印象。我对Java的第一个反应是“嗯,无非是一个资源匮乏的解释性C ++,我会坚持使用Turbo Pascal,非常感谢”(嘿,当时我才17岁;)。我不知道当时其他人对Java的反应如何,但是对我而言,这只是一时的流行,所以我很快转到了Delphi(叹息着Visual Basic),几年后才在大学里开始使用Java。 ,并且因为这是一门必修课。
的确,Java及其面向对象的风格迅速流行开来,但我真的不认为该范式在1990年代中期之前还不是很流行,但是Web的引入改变了我们对流行性的定义。无论如何,在1990年代中期,软件开发总体上受到欢迎,而网络,GUI的普及以及更便宜的硬件是关键因素。Java只是在正确的时间正确的位置。
进一步阅读:
相关问题: