OOP的未来(转)

OOP的未来
撰文/Bjarne Stroustrup & Tim Lindholm   编译/孟岩
把宝押在Java上?或是坚持C++不动摇?还是考虑考虑C#?你是否犹豫不决?那么不妨先听听下面这些专家的说法,对于面向对象程序设计语言的现状和未来作一番了解。
关键词:C++,Java,C#,OOP
科技进展一日千里,产品生产周期则越来越短,不少程序员已经完全没有时间掌握第二种语言。不论一个程序员的技术能力是否被考虑,对于他来说,将来能够参与什么类型的项目,加盟什么样的公司,在很大程度上,将取决于今天选择哪种程序设计语言。为了帮助大家清晰地了解C++和Java这两个最流行的OOP语言现在和将来的有关情况,我们采访了C++语言的设计者Bjarne Stroustrup,以及Sun公司著名工程师Tim Lindholm。下面是他们的观点,内容涉及程序设计的未来、语言之间的比较、OOP语言的发展与革新之取舍以及程序设计标准。
未来
在未来三年,程序员编写代码的方式会发生那些变化?
Stroustrup: 在C++中,假如没有合适的库在背后支撑,完成任何重要的工作都可能是很复杂的。而一旦有了合适的库,任何东西都可以被我们操控于股掌之间。因此,构造和使用程序库的重要性与日俱增。这也暗示我们,泛型程序设计(generic programming)将会越来越多地被运用。只有通过GP,我们才能确保库的通用性和高效率。我还预期在分布式计算和“组件(components)”应用领域会出现喜人的增长。就大部分程序员而言,通过使用方便适用的程序库,这些开发工作会变得简单明了。
现在有一个趋势,编译器厂商试图把其特有的“对象模型”和图形界面(GUI)细节推销给用户。比如微软的COM和Inprise的类属性“properties”。对于用户来说,这既不必要,也不情愿。我所希望看到的程序库,应该是用标准C++打造,界面灵活,值得信赖的程序库。通常,这些界面应该是平台无关的。C++的表达能力极强,即使不使用大量的宏,也应该足以达成这一要求。就算有些地方无法百分之百的遵守这一原则,也应该将对于平台和厂家的依赖性限制起来。这个目标的完成情况,可以反映软件工具产业对于应用程序开发行业的关注程度。我怀疑目前对于那些独立的、跨平台厂商来说,并不存在相应的市场。如果能够建立这样的市场,也许能够促进厂商们为客户做出“真正有用的”产品。
Lindholm: 对于编写代码的开发者来说,主要的驱动力量仍将是两个:网络和分布式——也就是设计和开发非单机软件的需求。大部分的应用程序将不会是孤零零地运行在单一设备上,而是运用了类似EJB和JSP之类技术的,平台无关的分布式程序。程序员们将不得不面对分布式计算的重重险阻。这将对许多程序员所依赖的设计模式、技术和直觉构成严峻的挑战。这是选择编程语言之前必须认识到的,尽管不同语言的设计特性可能促进或者阻碍这一转化。

时间: 2025-01-18 23:51:59

OOP的未来(转)的相关文章

解读面向对象的程序设计(三)

接着来看OOP.OOP的未来在未来三年,程序员编写代码的方式会发生那些变化? Stroustrup:在C++中,假如没有合适的库在背后支撑,完成任何重要的工作都可能是很复杂的.而一旦有了合适的库,任何东西都可以被我们操控于股掌之间.因此,构造和使用程序库的重要性与日俱增.这也暗示我们,泛型程序设计(genericprogramming)将会越来越多地被运用.只有通过GP,我们才能确保库的通用性和高效率.我还预期在分布式计算和"组件(components)"应用领域会出现喜人的增长.就大

OOP已死,AOP为未来而生(.net+java)

OOP已死,AOP为未来而生   未来用于构建复杂的基于服务的应用将是面向方面编程AOP(Aspect-Oriented Programming),而面向对象编程OOP将成为辅助.   •控制反转(IOC:Inversion of Control)模式.这个通用模式描述为支持插件架构,其中的对象可以"查询",他们需要的其他对象的实例方法.•依赖注入(DI:Dependency Injection)模式.这是IoC模式一种特殊情况,是基于改变类行为的接口编程技术,而不改变类的内部.开发人

c++-求教简单C++ OOP题目 关于Log库的简易编写

问题描述 求教简单C++ OOP题目 关于Log库的简易编写 Log是用来对复杂程序进行调试的常用手段,用来实现log的库也是我们非常常用的程序 库之一.请你设计一个简化的log程序库,做到如下几点: a) 能够支持三种不同的log目的地(控制台.文件.数据库)及这三种目的地的自由 组合,目的地可以动态变化,未来可能需要加入更多种类的目的地(比如限制长度 的文件): b) 能够支持三种不同的log格式(简单不带任何附加信息,附带短格式表示的当前时 间,附带长格式表示的当前时间),格式可以动态变化

编程-(学生党)未来学习方向问题

问题描述 (学生党)未来学习方向问题 研一开学2个月有余,现在对自己学习方向满是困惑.本科时学的C和JAVA,但都是些基础的,也没做过什么大项目.现在研究生了,本想跟导师好好做项目,结果导师让学C#,学就学吧,但让做一个二期unity项目的C#脚本的算法分析,半路出家的我搞不懂.面对这些,该怎样掌握一个实在的编程技能.现在都不知道该干什么了,求大神指导(急急急!) 解决方案 其实这个要看个人爱好,看你喜欢那个方向,你不是有C和JAVA的基础吗,如果觉得感兴趣就学下去,计算机编程是一个漫长的道路,

JavaScript游戏中使用OOP和设计模式让代码变得更智能

学习如何在 http://www.aliyun.com/zixun/aggregation/33906.html">JavaScript 中使用基于经典继承的库从 OOP 中获得更多的好处.本文还将介绍架构式设计模式,来展示了如何使用游戏循环.状态机和事件冒泡 (event bubbling) 示例来编写更整洁的代码. 在本文中,您将了解 JavaScript 中的 OOP,来探索原型继承模型和经典继承模型.举例说明游戏中能够从 OOP 设计的结构和可维护性中获得极大利益的模式.我们的最终

Chrome 渲染流水线演化的未来

前段时间我写了一篇文章浏览器渲染流水线解析与网页动画性能优化,对目前 60 左右版本的 Chrome 的渲染流水线进行解析,文末也讨论了当前渲染流水线的一些不足和未来演化的方向. 当前的渲染流水线过于复杂和冗长,特别是对于非合成器动画来说,过多的线程/进程间交互增加了不少额外开销,异步光栅化的机制也是有利于合成器动画而不利于非合成器动画.而未来的演化理应需要简化渲染流水线,减少线程/进程间交互,避免非必要的额外开销,光栅化和合成不再像现在一样泾渭分明,渲染流水线可以支持更灵活和动态自适应的图层化

Java与.NET,谁将是未来?

为什么会有Java,为什么会有.NET 有人说,Java是为了跨Windows和UNIX而产生的.是这样吗? Sun有自己的操作系统solaris,并且打的是高端市场,而Java发展早期阶段,Windows还主要定位在中小型企业,并没有打算与Sun一争高端客户. 而且Sun的用户大部分都是大型企业级,而Windows定位在家庭消费用户,由于Windows已经成为桌面OS的事实标准,Sun根本无意抢夺 Windows的地盘,而且Sun有自己的操作系统,扩大自己产品销售才是第一. 但是UNIX一直是

四分五裂的MySQL未来命运会如何?

在甲骨文宣布收购Sun一个月之后,MySQL的未来仍然悬而未决.领先的轻量级开源数据库能否在领先的商业数据库供应商手中仍能保持欣欣向荣?目前看来形势不是很乐观. 早在Oracle收购之前,MySQL社区就有了紧张的迹象.2008年在Sun收购MySQL后不久,许多重要的MySQL员工就开始陆续离开,其中包括CEO Mårten Mickos和共同创始人Monty Widenius.Widenius更是公开抨击了由Sun领导的MySQL开发流程,批评发布周期太过匆忙以及缺乏质量控制.另一位共同创始

阿里云自研云数据库POLARDB,未来企业的数字化答案

在2017年的杭州云栖大会上,阿里云总裁胡晓明做了题为"智能计算,为未来而生"的主题演讲,在众多内容中,阿里云的自研数据库产品POLARDB,引发了广泛关注. 从上个世纪60年代诞生开始,数据库就永久的改变了人类对数据的管理和认知,陆续出现今日的DB2 .Oracle.Informix.MySQL等大玩家,现在,从登录淘宝购物到在社交网站上高谈阔论,背后都离不开数据库的支撑. 数据库,无处不在. 假如要详细的说清楚阿里云为什么要选择自研数据库这条路,大概可以从以下三个方面展开. 数据库