升级到 D2009(Unicode 除外)的主要动机是什么?

发布于 2024-07-08 12:25:47 字数 237 浏览 6 评论 0原文

当谈到开发工具时,我是一个犹豫升级者。 对于大约一半的产品,我仍然使用 D7,而对于其他产品,我仍然使用 D2006。

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

那么,除了 Unicode 之外,升级的其他主要动机是什么?

I'm a hesitant upgrader when it comes to development tools. For roughly half of my product I still use D7, and for others D2006.

The truth is, although Unicode support is more than welcomed and very useful, it could cause me more troubles than gains with my current projects (they are more-or-less Unicode ready already). It's especially case with one of them who's performance would suffer a lot if each string takes twice as much memory as before.

So, Unicode aside, what are other major incentives to upgrade?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

无风消散 2024-07-15 12:25:47

为了正确地看待问题,请看一下 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,Delphi 2007 也毫不逊色。

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

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

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

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

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

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

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

To put things in to perspective, look at the things that were added between Delphi 7 and Delphi 2007. This was a significant high water mark.

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

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

Delphi 2009 sets the bar even higher.

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

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

Here are some of my favourites:

  • Generics (naturally) and generic collections in the RTL.

  • Improved build configurations where they inherit from a common base configuration.

  • DataSnap improvements, including removing COM dependencies.

  • Faster and more stable IDE over Delphi 2007, which was no slouch.

I'm not sure how I'm going to use them in production, but you have to admit that anonymous methods are really cool. I'm curious to see how people wind up using them with threading.

Just two things about Unicode support (another favourite of mine).

  • You will probably see a significant performance improvement when you convert your existing Unicode projects. I know I did.

  • You will need to be careful about converting any code that makes assumptions about character size. You probably won't see many problems if your existing code is Unicode aware.

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

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

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

酸甜透明夹心 2024-07-15 12:25:47

首先,我认为您不会注意到性能受到如此大的影响。

看看这个

我会说只是仿制药就值得升级。 其次是匿名方法。

First of all I don't think you're going to notice that much of a performance hit.

Have a look at this

I'd say just generics make it worth the upgrade. Followed by Anonymous methods.

画离情绘悲伤 2024-07-15 12:25:47

我最近从 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 及更早版本仍然有足够的改进,值得最终跳转。

I recently upgraded from Delphi 4 to Delphi 2009, primarily because of Unicode, but also because of the many improvements everywhere in Delphi since my Version.

But the unexpected improvement that pleased me the most when I upgraded was the new IDE (Integrated Development Environment). Delphi 7 and previous versions had an undocked layout that drove me crazy. Now it is one docked form that can be resized and moved around easily. Not to mention many improvements to it that make every programming task easier. Remember, you spend all your programming time in front of the IDE, so every little thing made easier is a time saver.

When debugging and stepping through the code, all local variables are watched by default. That is extremely helpful.

The FastMM Memory Manager is built in.

And I now have both Delphi 4 and Delphi 2009 installed, and I can run either one, or even both at the same time. That was extremely useful when converting my programs, because I could debug and step through both together to ensure the converted program was working right.

Also, Embarcadero still gives a special upgrade price that Borland and then Code Gear did for all previous version owners. They didn't have to, but that is a great move on their part to treat the early adopters of Delphi as their VIPs.

What don't I like? Well, Delphi 4 started up in 2 seconds. Delphi 2009 takes about 15. But it's fast after that. Also stepping through code goes into the CPU code much more often because it is often inlined, and I don't think there's any way around that.

If you need Unicode, don't think twice about upgrading.

If you don't need Unicode, there are still enough improvements from Delphi 7 and earlier to make it worthwhile to finally jump.

瞳孔里扚悲伤 2024-07-15 12:25:47

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

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

As steve said, the major language additions are a big plus. But there is an other thing.

Delphi had been in stormy weather the last years. And that was reflected by the versions. 7 was the last good version, 2006 was reasonable, but still below average. But now with 2009 a new era has started. Delphi has found a new home. And the focus is back on being the best development tool there is. There is still some backlog that needs to be solved, but as far as I am concerned Delphi is back on the way up.

雾里花 2024-07-15 12:25:47

Delphi 2009 已被证明比 Delphi 2007 稳定得多,仅对我来说就足以升级,delphi 2007 的错误和崩溃非常烦人和压力。

Delphi 2009 has proven to be much more stable than Delphi 2007, that alone for me would be enough to upgrade, delphi 2007 bugs and crashes are very annoying and stressful.

清风无影 2024-07-15 12:25:47

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,它会为您处理类型转换,并且它抛出一个免费的枚举器(又名迭代器)作为包的一部分。 您的循环现在看起来像这样:

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

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

2 things. The stability is much better than 2006 and 2007. (Not to mention it installs faster, runs faster, and isn't full of nasty memory leaks that eat up hundreds of megs of RAM.) That alone is worth ditching either of the last two versions for. But as for the language improvements, there's a lot to talk about, and it's been talked about plenty, but for me the crown jewel is the generic support, and especially the new built-in Generics.Collections unit. Finally, no more of this ugly idiom that we're all familiar with:

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

Instead, if you declare MyObjectList as a generic-based TObjectList<TMyObjectType>, it takes care of type conversions for you, and it throws in a free enumerator (AKA iterator) as part of the package. Your loop now looks like this:

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

Unicode and anonymous methods are nice, and Unicode especially may be essential for some people, but personally my favorite improvement is the end of ugly list access.

以可爱出名 2024-07-15 12:25:47

Nick Hodges 发布:

从 Delphi 7 升级的十大理由

其中包括:

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

在他的结论中,他说:
“写这篇文章最困难的部分是将其限制为仅 10 条”,

然后他列出了 24 条其他内容(不算 Intellimouse 两次)。

Nick Hodges posted:

Top Ten Reasons to Upgrade From Delphi 7

They include:

  1. Live Templates
  2. History Tab
  3. Dockable/Customizable IDE
  4. VCL Designer Guidelines
  5. New Tool Palette
  6. Refactoring
  7. Generics
  8. Anonymous Methods (Closures)
  9. Unicode Support
  10. Ribbon Controls

In his Conclusion he said:
"the hardest part about writing this article was limiting it to only ten"

and then he lists 24 other things (not counting Intellimouse twice).

草莓味的萝莉 2024-07-15 12:25:47

我刚刚试了一下通用集合和增强的 For 循环(不要介意代码的视觉丑陋(例如 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 三年之后,Delphi 似乎正在消亡那时,我想我可能会回到这个可爱的世界。

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

*我还没有发现回归。

I just gave the Generic Collections and the enhanced For-loop a spin (don't mind the visual ugliness of the code (e.g. if-then-else on one line)):

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.

After three years of staying away from Delphi, which seemed dying back then, I think I might return to this lovely world.

My greatest Delphi project seems to suffer from not being Unicode-ready, but Unicode is great stuff too, so I'll just have to fix the code in few places. Yesterday I also managed to get it to build and execute without errors (seems there was some sort of D2007->D2009 transition trickery involved) and I noticed that D2009 is just EXCELLENTLY FAST! It's better than the older versions in (almost*) every aspect.

*I have not found regressions YET.

蓝眼泪 2024-07-15 12:25:47

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

The by far most important incentive to me was the overall speed of the IDE in comparison with Delphi 2006 and the same project.

茶花眉 2024-07-15 12:25:47

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

Refactoring - extracting methods, moving classes around, extracting interfaces, operations which can improve code and design quality, are a very nice feature in newer versions of the IDE.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文