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. linux上部署应用

    1.编写traffic.sh 引入相关的jar包及java环境路径 2.crontab -e 加入: */10 * * * * cd /opt/sys/traffic_version/bin & ...

  2. Binary Search Tree In-Order Traversal Iterative Solution

    Given a binary search tree, print the elements in-order iteratively without using recursion. Note:Be ...

  3. javascript加速运动

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. hdu 1713 相遇周期

    求分数的最小公倍数.对于a/b c/d 先化简为最简分数,分数最小公倍数=分子的最小公倍数/分母的最大公约数. ;}

  5. truncate、drop、delete区别

    速度:drop>truncate>delete 1.TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE ...

  6. Java 编译错误:缺少返回语句

    示例: import java.util.*; import java.io.*; public class tt { public static void main(String[] args) { ...

  7. [转]Ubuntu alternate和desktop区别

    原文地址:http://blog.csdn.net/is2120/article/details/6797621 Desktop : 刻录在光盘,从光盘运行的系统,相当于 Live CD Altern ...

  8. 李洪强iOS开发支付集成之微信支付

    iOS开发支付集成之微信支付 微信支付也是需要签名的,也跟支付宝一样,可以在客户端签名,也可以在后台签名(当然,为了安全还是推荐在服务器上做签名,逻辑也比较好理解). 1 - 集成前首先要看看文档 开 ...

  9. lintcode : 二叉树的序列化和反序列化

    题目 二叉树的序列化和反序列化 设计一个算法,并编写代码来序列化和反序列化二叉树.将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”. 如何反序列化或序列化二叉树是没有限制 ...

  10. Libsvm学习

        本篇博客转自 http://www.cppblog.com/guijie/archive/2013/09/05/169034.html     在电脑文件夹E:\other\matlab 20 ...