Каковы основные стимулы для перехода на D2009 (исключая Юникод)? - PullRequest
9 голосов
/ 20 ноября 2008

Я нерешительный обновитель, когда дело доходит до инструментов разработки. Примерно для половины моего продукта я все еще использую D7, а для других D2006.

По правде говоря, хотя поддержка Unicode более чем приветствуется и очень полезна, она может доставить мне больше хлопот, чем выгод с моими текущими проектами (они уже более или менее готовы к Unicode). Особенно это касается одного из них, чья производительность сильно пострадает, если каждая строка занимает в два раза больше памяти, чем раньше.

Итак, кроме Unicode, каковы другие основные стимулы для обновления?

Ответы [ 10 ]

13 голосов
/ 20 ноября 2008

Чтобы представить вещи в перспективе, посмотрите на вещи, которые были добавлены между 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-зависимостей.

  • Быстрее и стабильнее IDE по сравнению с Delphi 2007, который не был дураком.

Я не уверен, как я собираюсь использовать их в производстве, но вы должны признать, что анонимные методы действительно крутые. Мне любопытно посмотреть, как люди используют их с потоками.

Только две вещи о поддержке Unicode (еще один мой любимый).

  • Вероятно, вы увидите значительное улучшение производительности при конвертации существующих проектов Unicode. Я знаю, что сделал.

  • Вам нужно быть осторожным при преобразовании любого кода, который делает предположения о размере символов. Вы, вероятно, не увидите много проблем, если ваш существующий код поддерживает Unicode.

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

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

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

9 голосов
/ 20 ноября 2008

Прежде всего, я не думаю, что вы заметите такой большой удар по производительности.

Посмотрите на это

Я бы сказал, что только дженерики оправдывают апгрейд. Далее следуют анонимные методы.

8 голосов
/ 21 ноября 2008

Я недавно обновил 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. Но это быстро после этого. Кроме того, пошаговое выполнение кода входит в код ЦП гораздо чаще, потому что он часто встроен, и я не думаю, что есть какой-то способ обойти это.

Если вам нужен Unicode, не думайте дважды об обновлении.

Если вам не нужен Unicode, в Delphi 7 и более ранних версиях все еще достаточно улучшений, чтобы можно было наконец прыгнуть.

6 голосов
/ 20 ноября 2008

Как сказал Стив, основные языковые дополнения - большой плюс. Но есть и другая вещь.

В последние годы Дельфи была в штормовую погоду. И это было отражено в версиях. 7 была последней хорошей версией, 2006 год был разумным, но все еще ниже среднего. Но теперь с 2009 года началась новая эра. Дельфы нашли новый дом. И мы снова нацелены на то, чтобы быть лучшим инструментом для разработки. Есть еще какое-то отставание, которое нужно решить, но, насколько мне известно, Delphi возвращается на путь вверх.

4 голосов
/ 26 ноября 2008

2 вещи. Стабильность намного лучше, чем в 2006 и 2007 годах. (Не говоря уже о том, что он устанавливается быстрее, работает быстрее и не полон неприятных утечек памяти, которые поглощают сотни мегабайт ОЗУ.) Одно это стоит того, чтобы отказаться от любого из двух последних версии для. Но что касается языковых улучшений, здесь есть о чем поговорить, и о них много говорили, но для меня жемчужина короны - это общая поддержка, особенно новый встроенный модуль 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 особенно может быть необходим для некоторых людей, но лично мое любимое улучшение - это конец уродливого доступа к списку.

4 голосов
/ 20 ноября 2008

Delphi 2009 оказался гораздо более стабильным, чем Delphi 2007, и этого для меня будет достаточно для обновления, ошибки и сбои в delphi 2007 очень раздражают и вызывают стресс.

2 голосов
/ 04 мая 2009

Я только что дал Generic Collections и расширенный цикл 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 , похоже, страдает от того, что он не готов к Unicode, но Unicode тоже замечательный материал, поэтому мне просто придется исправлять код в нескольких местах. Вчера мне также удалось заставить его собирать и запускать без ошибок (кажется, там была какая-то хитрость с переходом D2007-> D2009), и я заметил, что D2009 просто ОТЛИЧНО БЫСТРО! Это лучше, чем в старых версиях (почти *) во всех аспектах.

* Я не нашел регрессий ДА.

2 голосов
/ 17 декабря 2008

Ник Ходжес опубликовал:

Десять главных причин перехода с Delphi 7

Они включают в себя:

  1. Живые шаблоны
  2. Вкладка истории
  3. Док-станция / Настраиваемая IDE
  4. Руководство по проектированию VCL
  5. Новая палитра инструментов
  6. Рефакторинг
  7. Дженерики
  8. Анонимные методы (замыкания)
  9. Поддержка Unicode
  10. Элементы управления ленты

В своем Заключении он сказал: «Самое сложное в написании этой статьи - ограничиться только десятью»

и затем он перечисляет 24 других объекта (не считая Intellimouse дважды).

1 голос
/ 04 мая 2009

Рефакторинг - извлечение методов, перемещение классов, извлечение интерфейсов, операции, которые могут улучшить код и качество дизайна, являются очень приятной функцией в новых версиях IDE.

1 голос
/ 17 декабря 2008

Наиболее важным стимулом для меня была общая скорость IDE по сравнению с Delphi 2006 и тем же проектом.

...