9

在开发工具方面,我是一个犹豫不决的升级者。对于我大约一半的产品,我仍然使用 D7,而对于其他产品,我仍然使用 D2006。

事实是,虽然 Unicode 支持非常受欢迎并且非常有用,但它可能给我带来的麻烦多于我当前项目的收益(它们或多或少已经准备好 Unicode)。如果每个字符串占用的内存是以前的两倍,那么其中一个性能会受到很大影响的情况尤其如此。

那么,除了 Unicode,还有哪些其他主要的升级激励措施?

4

10 回答 10

13

为了正确看待事物,请查看在 Delphi 7 和 Delphi 2007 之间添加的内容。这是一个显着的高水位标记。

http://blogs.codegear.com/nickhodges/2007/03/28/33579

http://www.stevetrefethen.com/blog/VCLAndRTLEnhancementsSinceDelphi7D7.aspx

Delphi 2009 设定了更高的标准。

http://blogs.codegear.com/pawelglowacki/2008/11/03/38527

http://blogs.codegear.com/chrispattinson/2008/09/19/38897

以下是我最喜欢的一些:

  • RTL 中的泛型(自然)和泛型集合。

  • 改进了从通用基本配置继承的构建配置。

  • DataSnap 改进,包括删除 COM 依赖项。

  • 比 Delphi 2007 更快、更稳定的 IDE,这毫不逊色。

我不确定我将如何在生产中使用它们,但你必须承认匿名方法真的很酷。我很想知道人们如何最终将它们与线程一起使用。

关于 Unicode 支持只有两件事(我最喜欢的另一件事)。

  • 当您转换现有的 Unicode 项目时,您可能会看到显着的性能改进。我知道我做到了。

  • 您需要小心转换任何对字符大小做出假设的代码。如果您现有的代码支持 Unicode,您可能不会看到很多问题。

http://dn.codegear.com/article/38437

http://dn.codegear.com/article/38498

http://dn.codegear.com/article/38693

于 2008-11-20T13:16:54.173 回答
9

首先,我认为您不会注意到性能上的影响。

看看这个

我会说只是泛型使它值得升级。其次是匿名方法。

于 2008-11-20T11:41:55.503 回答
8

我最近从 Delphi 4 升级到 Delphi 2009,主要是因为 Unicode,但也因为自从我的版本以来,Delphi 到处都有许多改进。

但是升级时最让我高兴的意想不到的改进是新的IDE(集成开发环境)。Delphi 7 和以前的版本有一个非停靠的布局,让我抓狂。现在它是一种可以轻松调整大小和移动的停靠形式。更不用说它的许多改进,使每一个编程任务变得更容易。请记住,您将所有的编程时间都花在了 IDE 上,因此每件小事都变得更容易,从而节省了时间。

在调试和单步执行代码时,默认情况下会监视所有局部变量。这非常有帮助。

FastMM 内存管理器是内置的。

我现在安装了 Delphi 4 和 Delphi 2009,我可以运行其中一个,甚至同时运行两个。这在转换我的程序时非常有用,因为我可以一起调试和单步调试,以确保转换后的程序正常工作。

此外,Embarcadero 仍然提供 Borland 和 Code Gear 为所有以前版本所有者所做的特殊升级价格。他们不必这样做,但这是他们将 Delphi 的早期采用者视为他们的 VIP 的一个伟大举措。

我不喜欢什么?嗯,Delphi 4 2 秒就启动了。Delphi 2009 大约需要 15 个。但在那之后它很快。单步执行代码也更频繁地进入 CPU 代码,因为它通常是内联的,我认为没有任何办法解决这个问题。

如果您需要 Unicode,请不要三思而后行升级。

如果您不需要 Unicode,Delphi 7 及更早版本仍有足够的改进,最终值得一试。

于 2008-11-21T00:38:28.230 回答
6

正如史蒂夫所说,主要的语言添加是一个很大的优势。但还有另一件事。

过去几年,德尔福一直处于暴风雨天气中。版本反映了这一点。7 是最后一个好版本,2006 年是合理的,但仍然低于平均水平。但现在随着 2009 年的到来,一个新的时代已经开始。德尔福找到了新家。重点又回到了成为最好的开发工具上。仍有一些积压的工作需要解决,但就我而言,Delphi 正在重新崛起。

于 2008-11-20T11:49:05.210 回答
4

事实证明,Delphi 2009 比 Delphi 2007 稳定得多,仅对我来说升级就足够了,delphi 2007 的错误和崩溃非常烦人且压力很大。

于 2008-11-20T13:12:20.127 回答
4

2 件事。稳定性比 2006 年和 2007 年要好得多。(更不用说它的安装速度更快,运行速度更快,并且不会出现占用数百兆 RAM 的令人讨厌的内存泄漏。)仅此一项就值得放弃最后两个中的任何一个的版本。但是关于语言的改进,有很多要谈的,而且已经谈了很多了,但对我来说最重要的是通用支持,尤其是新的内置 Generics.Collections 单元。最后,不再使用我们都熟悉的这种丑陋的成语:

for i := 0 to myObjectList.Count - 1 do
begin
  currentObject := myObjectList[i] as TMyObjectType;
  currentObject.WhateverYoureDoingWithIt;
  ...
end;

相反,如果您将 MyObjectList 声明为基于泛型的TObjectList<TMyObjectType>,它会为您处理类型转换,并作为包的一部分抛出一个免费的枚举器(AKA 迭代器)。你的循环现在看起来像这样:

for currentObject in myObjectList do
begin
  currentObject.WhateverYoureDoingWithIt;
  ...
end;

Unicode 和匿名方法很好,尤其是 Unicode 对某些人来说可能是必不可少的,但我个人最喜欢的改进是丑陋的列表访问的终结。

于 2008-11-26T00:38:01.457 回答
2

尼克霍奇斯发布:

从 Delphi 7 升级的十大理由

它们包括:

  1. 实时模板
  2. 历史标签
  3. 可停靠/可定制的 IDE
  4. VCL 设计师指南
  5. 新工具调色板
  6. 重构
  7. 泛型
  8. 匿名方法(闭包)
  9. Unicode 支持
  10. 功能区控件

在他的结论中,他说:“写这篇文章最困难的部分是将它限制在十个以内”

然后他列出了其他 24 件事情(不算 Intellimouse 两次)。

于 2008-12-17T07:23:29.107 回答
2

我只是给了通用集合和增强的 For-loop 一个旋转(不要介意代码的视觉丑陋(例如 if-then-else 在一行上)):

program genericTList;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Generics.Collections;

var
  myList : TList<string>;
  s: string;

begin
  myList := TList<string>.create;
  try
    myList.Add('Peter');
    writeln('Inviting Peter');
    myList.Add('Barbie');
    writeln('Inviting Barbie');
    if myList.Contains('Bob') then writeln('Bob has managed to sneak in...') else writeln('Bob is not invited!');
    writeln('List of invited people:');
    for s in myList do writeln(s); //feels sooo goood X-)
    readln;
  finally
    FreeAndNil(myList);
  end;
end.

离开当时似乎快要死去的德尔福三年后,我想我可能会回到这个可爱的世界。

最伟大的 Delphi 项目似乎没有为 Unicode 做好准备,但 Unicode 也是很棒的东西,所以我只需要在几个地方修复代码。昨天我还设法让它在没有错误的情况下构建和执行(似乎涉及某种 D2007->D2009 转换技巧),我注意到 D2009 非常快!它在(几乎*)各个方面都比旧版本好。

*我还没有发现回归。

于 2009-05-04T11:07:36.940 回答
1

到目前为止,对我来说最重要的激励因素是 IDE 与 Delphi 2006 和同一个项目相比的整体速度。

于 2008-12-17T13:39:04.353 回答
1

重构——提取方法、移动类、提取接口、可以提高代码和设计质量的操作,在新版本的 IDE 中是一个非常好的功能。

于 2009-05-04T16:55:04.873 回答