Delphi 2010初体验,是时候抛弃Delphi 7了
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初体验,是时候抛弃Delphi 7了的更多相关文章
- Delphi 2010 中的泛型
Delphi 2010 中的泛型 2010已发布很长时间了,口碑还不错,准备用它开发下一项目,但对泛型等新东西的认识还不够,就搜了一下,发现下面这篇文章,还不错,大家一起补补课吧! C++中的模板.C ...
- Delphi 2010 3513正式版破解
Delphi 2010 3513正式 一.下载ISO文件右键迅雷下载 二.安装完成后,先运行一下程序,程序会弹出叫你注册对话框,逐步点击Cancel---->OK----->No----& ...
- Delphi 2010
Delphi 2010已早由Embarcadero公司发布.作者Kim Madsen作为一名资深的Delphi开发者,在他的博客中谈到了Delphi 2010的新性能.它的使用感受以及对Delphi语 ...
- delphi 2010与delphi XE破解版的冲突
在系统中同时安装了Dephi 2010LITE版与Delphi XE lite后,总是会有一个有问题 是因为两者都是读取C:\ProgramData\Embarcadero目录下的license文件, ...
- RAD Studio/Delphi 2010 3615下载+破解
RAD Studio/Delphi 2010 3615下载+破解 官方下载地址: http://altd.embarcadero.com/download/RADStudio2010/delphicb ...
- Delphi 2010错误 "displayNotification: 内存不够"
打开 Delphi 2010 的时候, 它报一个错误 "displayNotification: 内存不够",从而无法使用 Delphi , 解决办法 摘自http://www.cnblogs.com ...
- delphi 2010是动画GIF的支持方法
下面delphi 2010是动画GIF的支持方法: 1.在窗体上放一个Image1控件.注意:这时设置其Picture属性,加载一幅动画GIF是不会动画显示的. 2.在窗体的FormCreate事 ...
- delphi 2010 导出sql server 数据到DBF乱码问题
近日,由于业务需要导出sql server 数据到DBF文件,要查询多表记录,并适当处理后生成导出DBF文件,系统使用delphi2010平台开发. 首先按要求在VFP里创建DBF表,字段数有240个 ...
- Delphi 2010 安装及调试
呵呵,毫不客气地说,Delphi 2010 这个版本可以算是 Delphi 的一个“里程碑”,为什么这么说?因为这个版本实现了几个 Delphi 应该有却一直没有的功能 Delphi 2010 的新功 ...
随机推荐
- make menuconfig 是一个目录。停止 错误解决
在移植Linux内核时候,发现用 make menuconfig 发生如下错误 linux@ubuntu:/work/linux-socfpga$ make menuconfig make: *** ...
- ASP.NET fails to detect Internet Explorer 10
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"> http://www.han ...
- php中引用符号(&)的使用详解
php的引用就是在变量或者函数.对象等前面加上&符号,在PHP 中引用的意思是:不同的名字访问同一个变量内容,下面介绍如何使用PHP的引用 与C语言中的指针是有差别的.C语言中的指针里面存储的 ...
- 《Code Complete》ch.18 表驱动法
是什么 一种scheme,用表来做信息存取,代替逻辑语句(if/else) 为什么 简化逻辑语句,避免大量嵌套的 if/else 或者 switch/case 怎么用 三种访问表的方式 直接访问:将源 ...
- [ CodeVS冲杯之路 ] P1368
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1368/ 嗯……泡泡堂,很劲啊,其实就是个盗版的田忌赛马 http://www.cnblogs.com/hyfer/p/ ...
- Flash图表控件FusionCharts如何在图表标绘非连续数据
你可能经常要以不完整的数据点绘制图表.例如,当绘制每月的销售图表时,你可能没有所有的月数据.所以,你可能只想以一个空白的区域来显示缺失的数据,不在这个区域中绘制任何东西.FusionCharts可以让 ...
- 洛谷P1983 车站分级
P1983 车站分级 297通过 1.1K提交 题目提供者该用户不存在 标签图论贪心NOIp普及组2013 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 求帮忙指出问题! 我这么和(diao ...
- No.008 String to Integer (atoi)
8. String to Integer (atoi) Total Accepted: 112863 Total Submissions: 825433 Difficulty: Easy Implem ...
- TCP/IP详解学习笔记(14)-- TCP可靠传输的实现
1.概述 为方便描述可靠传输原理,假定数据传输只在一个方向上进行,即A发送数据,B给出确认 2.以字节为单位的滑动窗口 TCP的滑动窗口是以字节为单位的.为了便于说明,字节编号取得 ...
- asp.net 在线人数
很网站都有在线人数,这一功能无处不在.现在,我们就介绍在.NET中一个简单明了的方法来统计在线用户的多少,该方法的特点就是充分的利用了ASP.NET的特点,结合global.asax文件,用Appli ...