Delphi 2010已早由Embarcadero公司发布。作者Kim Madsen作为一名资深的Delphi开发者,在他的博客中谈到了Delphi 2010的新性能、它的使用感受以及对Delphi语言未来的期望。博文如下:

Delphi 2010使用的第一感觉是:是时候为它抛弃Delphi 7了。

Delphi 2010比以往的Delphi版本都要快,而且它保留了一些Delphi 7的特性,比如可以将旧的条形控件(componentbar)找回。但这同时也带了相关的问题(比如在重启Delphi 2010之后componentbar的位置看起来挪动了),不过这只是细节问题,相信在之后的修补中会解决这个问题。

在D2005, D2006, D2007和 D2009中,IDE中都有不少漏洞,以至于内存会迅速被泄露导致IDE以及电脑的其他部分特别地慢。尽管从D2005到D2009,Delphi已经做了很多努力,但这种漏洞仍然存在,开发者不得不经常重启IDE来避免内存泄露。

然而在Delphi 2010中我们欣喜地发现内存泄露的问题得到了解决,以前我从事很复杂的项目开发,很难做到个把小时都不重启电脑,但现在已经不用重启了。另外,IDE的响应也得到了显著的提升,启动时间比D2009快了不少。

D2010还有许多其他组件的性能提升,但我个人感觉新增的手势支持(gesture support)是个很有趣的特性。手势支持(gesture support)的意思是你可以做出特殊的鼠标移动来向应用发送一个命令信号。就好像是用的不是鼠标而是触摸屏,因此也有可能做出像iPhone的触摸屏一样的界面。我想这是一个很重要的特性,除了手势性能以外,更大的意义在于它表达出了Delphi在桌面端的发展方向。

以前我曾写博文诟病过Delphi在桌面领域的表现,因为像Adobe Flex和MS WPF等开发工具功能强大而齐全,可以以相对简单的方法开发出很酷的客户端应用,而用Delphi却很费劲;我也曾诟病过Delphi在服务器领域的表现,而且它的市场由于Java和.Net而大幅缩水,而且由于缺少跨平台的兼容性、抛弃传统的Kylix编辑器而丧失了Linux的支持,Delphi在竞争对手面前沦为开发者的末端选择。这种境况在今日仍然如此,但是在过去的六个月中,Embarcadero公司宣布计划将支持Mac和Linux的跨平台编译,无疑这是Delphi向前发展的一大步。

由于全新的手势支持以及跨平台的计划,Delphi在未来几年有望赢过竞争对手并重新夺回市场份额。当然这取决于跨平台特性的最终性能,而且Embarcadero也不应当放松对手势支持的控制和研发,毕竟这是它桌面应用的方向。

那么Delphi还应当在哪些方向继续努力呢?

*改良数据绑定。现在的Delphi唯一的绑定是用特殊的数据源绑定有意识的控制(TDataSource和TDBxxx组件)。这一特性在当年刚推出的时候非常酷,但是它现在已经被.Net和Adobe Flex/Flash 4超越,因为.Net和Adobe Flex/Flash 4有两种方式可以将任何属性绑定到其他属性。因此,需要抛弃现有的Delphi DB控制,增加先进的自动的两种绑定方式。

*优化现有的TCanvas和Device Contexts,从而可以将任何控制放在画布(Canvas)上,让画布自动浮动在3D空间。这将给开发者带来新的用户界面,比现有的2D更有感觉。举个例子:在显示器帧值一定的情况下,如果你想呈现产品清单软件中的多个产品的细节,你就要经常使用目录,点击列表中的项目以在窗口上显示产品的细节,或者添加许多产品标签才能实现。然而这两种方法都不能同时展现产品和信息。如果使用Apple CoverFlow会怎样呢:就可以在3D空间中展示产品信息了。结合手势控制和触摸屏,开发者使用手指就可以浏览产品。虽然它的硬件要求比2D更高,但是现在即便最普通的PC都可以满足这一要求。

在服务器端,我的期望是Delphi可以实现单一来源、多平台支持。

语言特性方面,我期望Delphi:

* XML和正则表达式成为语言的一部分。XML不消多说,正则表达式在字串匹配和许多应用使用的解析设备方面非常有用。为什么不让它们成为Delphi语法的一部分呢?实际上,查看XML的E4X EcmaScript,可以将XML直接整合到语言中,所以看起来Delphi应该可以很自然地使用XML。

除此之外,Embarcadero的开发者还应当考虑如何解决下面的任务来更好地做好Delphi的开发:

* 应用的打包和分配;

*尽管存在各种第三方安装工具,但如今分配到Win32环境还是很复杂。主要的原因是因为需要其他开发工具和语言来创建相关的安装脚本,而且这些脚本的更新周期很快,需要持续不断地更新。

*文档在源代码内提供了各种注释,因而某种程度上它已经成为了开发过程的一部分。我个人很讨厌这种方法,因为它将源散落得到处都是,而现在的文档则是分离式的也很不方便。因此IDE需要提供一种解决方式,既让文档同步,同时又能够将文档和源分开从而可以简单地将文档翻译到其他语言中。

Delphi 2010的更多相关文章

  1. delphi 2010与delphi XE破解版的冲突

    在系统中同时安装了Dephi 2010LITE版与Delphi XE lite后,总是会有一个有问题 是因为两者都是读取C:\ProgramData\Embarcadero目录下的license文件, ...

  2. RAD Studio/Delphi 2010 3615下载+破解

    RAD Studio/Delphi 2010 3615下载+破解 官方下载地址: http://altd.embarcadero.com/download/RADStudio2010/delphicb ...

  3. Delphi 2010错误 "displayNotification: 内存不够"

    打开 Delphi 2010 的时候, 它报一个错误 "displayNotification: 内存不够",从而无法使用 Delphi , 解决办法 摘自http://www.cnblogs.com ...

  4. Delphi 2010初体验,是时候抛弃Delphi 7了

    Delphi 2010已于近日由Embarcadero公司发布.作者Kim Madsen作为一名资深的Delphi开发者,在他的博客中谈到了Delphi 2010的新性能.它的使用感受以及对Delph ...

  5. delphi 2010是动画GIF的支持方法

    下面delphi 2010是动画GIF的支持方法:  1.在窗体上放一个Image1控件.注意:这时设置其Picture属性,加载一幅动画GIF是不会动画显示的.  2.在窗体的FormCreate事 ...

  6. delphi 2010 导出sql server 数据到DBF乱码问题

    近日,由于业务需要导出sql server 数据到DBF文件,要查询多表记录,并适当处理后生成导出DBF文件,系统使用delphi2010平台开发. 首先按要求在VFP里创建DBF表,字段数有240个 ...

  7. Delphi 2010 安装及调试

    呵呵,毫不客气地说,Delphi 2010 这个版本可以算是 Delphi 的一个“里程碑”,为什么这么说?因为这个版本实现了几个 Delphi 应该有却一直没有的功能 Delphi 2010 的新功 ...

  8. delphi 2010 动态链接库DLL断点调试

    DELPHI 2010 动态链接库DLL断点调试 马根峰 (广东联合电子服务股份有限公司,广州 510300) 摘要:本文详细介绍了Delphi 2010中的动态链接库DLL断点调试技术 关键词:DE ...

  9. Lua 5.1 for Delphi 2010

    This is a Lua 5.1 Wrapper for Delphi 2009 and Delphi 2010 which automatically creates OOP callback f ...

随机推荐

  1. time wait duo

    linux 下Time_wait过多问题解决 分类: linux FAQ2011-07-14 11:20 3485人阅读 评论(0) 收藏 举报 linux服务器tcp通讯活动ssh 问题起因: 自己 ...

  2. Codeforces400D Dima and Bacteria

    题意:给你一个无向有权的图,图上的点被分成了几类,对于同类的点你需要判断它们之间相互的最短距离是不是0.满足这个条件之后要输出的是类与类之间的最短距离的矩阵.点给到10^5这么多,判断同类的点显然不能 ...

  3. POJ 1691 Painting A Board(DFS)

    链接 题意 : 看了好长时间终于看懂题目了,将一个大矩形划分成若干小矩形,告诉你每个小矩形的左上角那个点和右下角那个点的坐标,告诉你这个小矩形要涂的颜色,每个颜色对应一个刷子,问你最少要使用几次刷子. ...

  4. POJ 2407 Relatives(欧拉函数)

    题目链接 题意 : 求小于等于n中与n互质的数的个数. 思路 : 看数学的时候有一部分是将欧拉函数的,虽然我没怎么看懂,但是模板我记得了,所以直接套了一下模板. 这里是欧拉函数的简介. #includ ...

  5. [转]Openstack Havana Dashboard测试和使用

    转贴一篇陈沙克老师的文章:http://www.chenshake.com/openstack-havana-dashboard-to-test-and-use/ Openstack Havana D ...

  6. 用Delphi创建服务程序

    用Delphi创建服务程序 日期:2005年11月29日 作者:sunmohe 人气: 3154 查看:[大字体 中字体 小字体] Windows 2000/XP和2003等支持一种叫做"服 ...

  7. lintcode:Compare Strings 比较字符串

    题目: 比较字符串 比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是 大写字母 样例 给出 A = "ABCD" B = "ACD" ...

  8. lintcode:Remove Nth Node From End of Lis 删除链表中倒数第n个节点

    题目: 删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点.  样例 给出链表1->2->3->4->5->null和 n = 2. 删除 ...

  9. SpringMVC学习总结(六)——SpringMVC文件上传例子(2)

    基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下使用SpringMVC进行表单上的文件上传以及多个文件同时上传的不同方法 一.配置文件: SpringMVC 用的是 的 ...

  10. HTML5入门1---Canvas画布

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...