|
甲骨文Cameron Purdy在上周四的演讲中回顾了Java和C++。他认为Java是C++向前迈进的重要一步,并建议Java语言处在一个很好的位置,在今后几年蓬勃发展的网格和云为导向的分布式体系结构中找到了更大的使用。
根据Purdy的观点,C++的某一方面证明了通过Web浏览器控制存在的技术世界的开发缺点。
Java为何成功?
Java能够有效地代替C++,由于促进它在创建方面的增长和源代码简易性、动态连接、标准型系统、可移植性和垃圾回收,Purdy表示。在此之前,他是Tangosol公司创始人,内存数据网格创始人。Tangosol与2006年被甲骨文收购。
他说:“框架的爆发是由于Java垃圾回收能力的直接结果,它为我们提供在没有明确契约的情况下插入事物的能力。”
毫不惊讶。垃圾回收几乎是Java对抗C++的巨大加号。
标准型系统协助Java繁荣,但在C++中也有所考虑。Purdy估计专注C++社区的人还在争论“什么是字符”。
“没有任何的标准化可言,一个字符可以是16、32、64甚至80bit,”他引证了少用的80-bit格式归因于英特尔80387协同处理器。“这似乎是次要的细节,但是你可以假设Java内存不足。”
Purdy指出其他C++元素促进Java变好,这些安全、反射和性能。许多人认为这是最后一点。这是Purdy的基本原理。
“结果是在现代架构上Java性能更好。这是由于多核处理器和开放编码,”他说。许多好处是由于Java虚拟产生。但是你的里程数可能改变——程序员的技能也是个自然抽象因素。
他承认:“如果你一直处在这样的环境中,你可以用C++创建更快的运行或者装配。”
事实上,Purdy并没试图把C++放在落后者的位置上,他承认在某些地方它仍是优秀的。例如启动时间、内存覆盖和确定销毁。Java垃圾回收暂停可以阻止一些应用。他的理由是,Java在适当的网络世界网络中更出色。
但是C++的一些优势,Purdy认为主要是随着网络作为所有事情的主要平台的出现。在Web应用中,启动时间问题、Python和PHP已经有了自己的角色。
关于JDK 7
在今后的分布式计算中,实际上它是被虚拟化云计算主张描绘的,Purdy认为演变的Java会继续发挥作用。Purdy说,特性能够提高Java在分布式环境中被添加到现在酝酿的JDK7工具集中。
“在JDK 7中,你已经看到了模块化工作。JDK 7中 Java NIO.2文件系统包括可插入式文件系统。为什么这很酷?可插入文件系统是指文件系统已不再是操作系统的文件系统。”
这意味着“你可以创建这个环境交叉共享的虚拟文件系统。所以在某种程度上,你可以提供通向应用的接口,这很容易使用。”
“你可以用现有代码读写硬盘驱动,在完全虚拟的环境中使用,交叉多机器进行传播。”
Purdy希望从编程历史中吸取教训。“学习过去,一种语言既要适合目的也不必因为目的儿必须改变。如果你看看C++,就会发先它无法做出这样的跳跃。” |
|