Работаю в небольшой компании выпускающей shareware несколько продуктов.
Все проекты на Delphi 6. Сейчас встал вопрос о миграции на Delphi 2006 (BDS).
С одной стороны шестерка шустрая, имеется почти все что нужно, все навороты 2006 можно поставить дополнительно.
Ну за исключением наверное редактора кода. Компоненты мне кажется еще пару лет как минимум будут выпускаться для этой версии.
Ну и это более менее стабильная версия Delphi (с установленными сервис паками)
С другой стороны много интересных вещей в BDS 2006: рефакторинг, редактор кода прикольный, встроенная поддержка FastMEM, встроенная поддержка DUnit. Среди минусов: тормознутый, немного глючный, отсутствует поддержка UNICODE, нет поддержка многопроцессорности (хотя где она есть — не знаю?)
Есть ли убедительные, веские причины перехода на последнюю версию Delphi 2006?
Здравствуйте, MarkANix, Вы писали:
MAN>Здравствуйте, Dimonka, Вы писали:
D>>По-моему, есть смысл перейти на 7-ку. D>>Далее переходить, мне кажется, сомнительно.
Приемущества есть. Более стабильна. В 6 были некоторые глюки компилятора, которые в 7 исправили. Какие именно — смотреть у них на сайте.
D>>>По-моему, есть смысл перейти на 7-ку. D>>>Далее переходить, мне кажется, сомнительно. OV>Приемущества есть. Более стабильна. В 6 были некоторые глюки компилятора, которые в 7 исправили. Какие именно — смотреть у них на сайте.
Посмотрю обязательно. И все-таки интересуют опыт разработчиков перешедших на BDS2006 и не жалеющих об
этом
Здравствуйте, MarkANix, Вы писали:
D>>>>По-моему, есть смысл перейти на 7-ку. D>>>>Далее переходить, мне кажется, сомнительно. OV>>Приемущества есть. Более стабильна. В 6 были некоторые глюки компилятора, которые в 7 исправили. Какие именно — смотреть у них на сайте.
MAN>Посмотрю обязательно. И все-таки интересуют опыт разработчиков перешедших на BDS2006 и не жалеющих об MAN>этом
Я перешёл. Долго у меня стояла и 7 рядом. Но рефракторинг, подправка кода за мной(я пишу begin а он добавит end;. Castalia такое тоже умеет, но там как то не интуитивно) сделали своё. Появились новые возможности — перегрузка операторов (правда только для структур) возможность структур иметь процедуры — иногда просто незаменимо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Delphi 6 -> 2006
От:
Аноним
Дата:
15.02.07 15:34
Оценка:
Здравствуйте, MarkANix, Вы писали:
MAN>Среди минусов: тормознутый, немного глючный, отсутствует поддержка UNICODE, нет поддержка многопроцессорности (хотя где она есть — не знаю?)
Даже после всех апдейтов (их два) и хотфиксов (их девять, кажется), память в среде течет. Ломается навигация по коду. После сборки проекта может сделать глючный EXE (с какой-то терминальной приблудой), поэтому после Build надо делать еще и Compile — тогда EXE будет "правильный".
А что понимается под многопроцессорностью и ее поддержкой? Раздача потоков на выполнение ядрам — прерогатива ОС, и руками тут вмешиваться не надо.
Здравствуйте, MarkANix, Вы писали:
MAN>Посмотрю обязательно. И все-таки интересуют опыт разработчиков перешедших на BDS2006 и не жалеющих об MAN>этом
Опыт как раз обратный — сильно жалею: тормозит, глючит, страшный внешний вид (a-la XP), неудобная палитра, редактор кода, от которого в глазах рябит. Единственный плюс — перегрузка операторов и inline.
Так что D6 + GExperts + FastMM пока что лучше всех
SHK>Опыт как раз обратный — сильно жалею: тормозит, глючит, страшный внешний вид (a-la XP), неудобная палитра, редактор кода, от которого в глазах рябит. Единственный плюс — перегрузка операторов и inline.
Объясните пожалуйста что такое перегрузка операторов и inline?
Здравствуйте, MarkANix, Вы писали:
SHK>>Опыт как раз обратный — сильно жалею: тормозит, глючит, страшный внешний вид (a-la XP), неудобная палитра, редактор кода, от которого в глазах рябит. Единственный плюс — перегрузка операторов и inline.
MAN>Объясните пожалуйста что такое перегрузка операторов и inline?
Перегрузка операторов иногда класная штука. Объявляете структуру, которя будет хранить к примеру комплексное число. Теперь нужно делать сложные расчёты с ними. (типичная инженерная задача) Ты начинаеш объявлять кучу функций, что бы умножить, сложить и так дальше. И несложное выражение превращается в набор функций. чуть где то смазал — и переписывай заново.
Но теперь можно у структуры указать, как их слаживать, умножать. И пишем как обычно. А компилятор разгребёт. В демках есть пример с комплексными числами.
inline — это банально. Если функция отмечена так, то компилятор попытается вставить её тело вместо вызова. Да, размер кода увеличивается, но производительность тоже
MAN>>Объясните пожалуйста что такое перегрузка операторов и inline? OV>Перегрузка операторов иногда класная штука. Объявляете структуру, которя будет хранить к примеру комплексное число. Теперь нужно делать сложные расчёты с ними. (типичная инженерная задача) Ты начинаеш объявлять кучу функций, что бы умножить, сложить и так дальше. И несложное выражение превращается в набор функций. чуть где то смазал — и переписывай заново. OV>Но теперь можно у структуры указать, как их слаживать, умножать. И пишем как обычно. А компилятор разгребёт. В демках есть пример с комплексными числами.
OV>inline — это банально. Если функция отмечена так, то компилятор попытается вставить её тело вместо вызова. Да, размер кода увеличивается, но производительность тоже
Надо посмотреть. Thanx.
ЗЫ. Уверенности перехода на 2006 не прибавилось. Пока больше всего нравится встроенный рефакторинг объектов.
Скорость компиляции v6 vs v2006 никто не замерял?
Здравствуйте, MarkANix, Вы писали:
MAN>Скорость компиляции v6 vs v2006 никто не замерял?
Судя с компиляции JEDI, (он просто немаленький ) разница субъективно не ощущается.
IMHO, из JEDI сделали помойку. Если что-то и беру оттуда, то только кусками с последующей доработкой.
З.Ы Скорость компиляции у D2006 достаточно быстрая. По крайней мере, особой разницы по сравнению с D7 не обнаружил.
З.З.Ы Очень шустро работает Code completition в D2006, значительно быстрее, чем в D7.
Здравствуйте, OdesitVadim, Вы писали:
OV>Здравствуйте, MarkANix, Вы писали:
MAN>>Скорость компиляции v6 vs v2006 никто не замерял? OV>Судя с компиляции JEDI, (он просто немаленький ) разница субъективно не ощущается.
Была бы там поддержка UNICODE на нейтивном уровне — перешел бы в активное тестирование BDS2006.
Кстати, когда там выход 2007 обещают?
Здравствуйте, MarkANix, Вы писали:
MAN>Посмотрю обязательно. И все-таки интересуют опыт разработчиков перешедших на BDS2006 и не жалеющих об MAN>этом
Купил Turbo Delphi Prof for Win32, портировал на него с D7 незаконченный проект, работаю второй месяц. Из плюсов — цена (меньше 10000 руб., у руководства не было никаких вопросов), дополнительные возможности языка, появившиеся в D2005 (пока не использовал, но пригодится) и рефакторинг (а к нему привыкаешь сразу). IDE достаточно стабилен — у меня за месяц падал дважды — однажды при отладке, что в общем нормально — перед отладкой надо сохраняться, второй раз когда попытался использовать встроенный UML. Самое большое разочарование — этот самый UML. Не пользуюсь и другим не советую. ModelMaker гораздо лучше. О переезде не жалею.
Учтите также изменившийся внешний вид IDE — теперь 1280x1024 — минимально приемлемое разрешение, а лучше 21" и 1600x1200.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
W>Купил Turbo Delphi Prof for Win32, портировал на него с D7 незаконченный проект, работаю второй месяц. Из плюсов — цена (меньше 10000 руб., у руководства не было никаких вопросов), дополнительные возможности языка, появившиеся в D2005 (пока не использовал, но пригодится) и рефакторинг (а к нему привыкаешь сразу). IDE достаточно стабилен — у меня за месяц падал дважды — однажды при отладке, что в общем нормально — перед отладкой надо сохраняться, второй раз когда попытался использовать встроенный UML. Самое большое разочарование — этот самый UML. Не пользуюсь и другим не советую. ModelMaker гораздо лучше. О переезде не жалею.
W>Учтите также изменившийся внешний вид IDE — теперь 1280x1024 — минимально приемлемое разрешение, а лучше 21" и 1600x1200.
Здравствуйте, RENaissance, Вы писали:
REN>MarkANix пишет >>Кстати, когда там выход 2007 обещают?
REN>Уже появилась Beta-версия D2007. Желающие могут зарегистрироваться по адресу REN>http://blogs.codegear.com/nickhodges/archive/2007/02/08/31699.aspx и скачать для тестирования.
Здравствуйте, MarkANix, Вы писали:
MAN>Добрый день,
MAN>Работаю в небольшой компании выпускающей shareware несколько продуктов. MAN>Все проекты на Delphi 6. Сейчас встал вопрос о миграции на Delphi 2006 (BDS).
лучше на 7 MAN>С одной стороны шестерка шустрая, имеется почти все что нужно, все навороты 2006 можно поставить дополнительно. MAN>Ну за исключением наверное редактора кода. Компоненты мне кажется еще пару лет как минимум будут выпускаться для этой версии. MAN>Ну и это более менее стабильная версия Delphi (с установленными сервис паками)
спорно MAN>С другой стороны много интересных вещей в BDS 2006: рефакторинг, редактор кода прикольный, встроенная поддержка FastMEM, встроенная поддержка DUnit. Среди минусов: тормознутый, немного глючный, отсутствует поддержка UNICODE, нет поддержка многопроцессорности (хотя где она есть — не знаю?)
рефакторинг можно получить через modelmaker code explorer
реадктор кода — почти все через castalia
dunit — dunit.sf.net
fastmem помоему там же
в общем я ушел с 2006 на 7 и не жужжу MAN>Есть ли убедительные, веские причины перехода на последнюю версию Delphi 2006?
нет
W>Купил Turbo Delphi Prof for Win32, портировал на него с D7 незаконченный проект, работаю второй месяц. Из плюсов — цена (меньше 10000 руб., у руководства не было никаких вопросов), дополнительные возможности языка, появившиеся в D2005 (пока не использовал, но пригодится) и рефакторинг (а к нему привыкаешь сразу). IDE достаточно стабилен — у меня за месяц падал дважды — однажды при отладке, что в общем нормально — перед отладкой надо сохраняться, второй раз когда попытался использовать встроенный UML. Самое большое разочарование — этот самый UML. Не пользуюсь и другим не советую. ModelMaker гораздо лучше. О переезде не жалею.
W>Учтите также изменившийся внешний вид IDE — теперь 1280x1024 — минимально приемлемое разрешение, а лучше 21" и 1600x1200.
Нашел пару существенных минусов:
— нельзя запускать компилятор с командной строки
— нельзя ставить компоненты с IDE
Не понятно что с утечками памяти о которых упоминали в этом топике для BDS2006??
Здравствуйте, MarkANix, Вы писали:
MAN>Нашел пару существенных минусов: MAN> — нельзя запускать компилятор с командной строки
Компилятор командной строки Delphi скачивается со страницы зарегистрированных пользователей Turbo на http://www.codegear.com
MAN> — нельзя ставить компоненты с IDE
Шутить изволите? http://www.turbodelphi.ru/turbo_faq.html
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
W>Компилятор командной строки Delphi скачивается со страницы зарегистрированных пользователей Turbo на http://www.codegear.com
Точно. Спасибо за инфу. Это была основная причина по которой я не рассматривал TurBoDelphi как альтернативу BDS2006 и Delphi6,7.
На соседних топиках нарыл информацию о поддержках версиями Delphi инструкций процессоров:
vlad_gri:
"Поддержка MMX, SSE, AMD Enhanced 3D for the AMD K7 появилась еще в Delphi 6.
в Delphi 7 добавилась поддержка AMD Athlon включая 3D Now!
в BDS 3 (Delphi 2005) SSE2 и SSE3
в BDS 4 (Delphi 2006/Turbo Delphi 2006) поддерживаются все инструкции Pentium 4, и AMD Athlon"
ну и где-то не раньше 2008 появится поддержка x64.
Буду щас тестить влияние этих инструкций на нескольких графических тестах.
Здравствуйте, MarkANix, Вы писали:
MAN>Была бы там поддержка UNICODE на нейтивном уровне — перешел бы в активное тестирование BDS2006. MAN>Кстати, когда там выход 2007 обещают?
В середине марта.Но юникода там нет.
D_T>Здравствуйте, MarkANix, Вы писали:
MAN>>Была бы там поддержка UNICODE на нейтивном уровне — перешел бы в активное тестирование BDS2006. MAN>>Кстати, когда там выход 2007 обещают? D_T>В середине марта.Но юникода там нет.
Случайно не знаешь про список фич. Я записан как бета-тестер. Но пока еще не скачивал дистрибутив — великоват.
Если есть инфа, скинь пожалуйста в личку.
Здравствуйте, OdesitVadim, Вы писали:
OV>Я перешёл. Долго у меня стояла и 7 рядом. Но рефракторинг, подправка кода за мной(я пишу begin а он добавит end;. Castalia такое тоже умеет, но там как то не интуитивно) сделали своё. Появились новые возможности — перегрузка операторов (правда только для структур) возможность структур иметь процедуры — иногда просто незаменимо.
Кстати, нито, ни ждроугое меня не очень сильно привлекло, имбо перегрузка операторов оправдана, ну уж в ОЧЕНЬ редких ситуациях, а на счет методов в записях.. Когда я вижу код
SameVar.SameMethod();
и не вижу за ним
finally
SameVar.Free
end;
меня коробит
А вот что меня очень прикололо, так это хелперы. Весьма полезная вещь. У мя было достаточно много всяких функций а-ля
Stream_WriteString(Stream: TStream; const S: string); или там List_FindInSorted(List: TList; Item: Point; Compare: TListCompare; var Index: Integer): boolean;
Сейчас пратически всё это барахло переведено на хелперы. Читабельность кода весьма и весьма повысилась.
[Skip]
J>А вот что меня очень прикололо, так это хелперы. Весьма полезная вещь. У мя было достаточно много всяких функций а-ля J>Stream_WriteString(Stream: TStream; const S: string); или там List_FindInSorted(List: TList; Item: Point; Compare: TListCompare; var Index: Integer): boolean; J>Сейчас пратически всё это барахло переведено на хелперы. Читабельность кода весьма и весьма повысилась.
Это что за хелперы? Не лез я в BDS, потому не осведолмлен. Мне всегда помогали class методы. Так для примера:
TStringsHelper = class
public
class function CreateSorted : TStringList; overload;
class function CreateSorted (Duplicates : TDuplicates) : TStringList; overload;
class function Delete(Strings: TStrings; Str: string): Boolean;
class procedure DeleteLast (Strings: TStrings); overload;
class procedure DeleteLast (Strings: TStrings; Number : Integer); overload;
class procedure FreeMem (Strings: TStrings); overload;
class procedure FreeMem (Strings: TStrings; FreeItemProc: TFreeItemProc); overload;
class procedure FreeObjects (Strings: TStrings);
class function Get (Strings: TStrings; Index : Integer) : string;
class function IndexOf(Strings, SubStrings: TStrings): Integer;
class function IndexWords (Strings : TStrings; Words : string) : Integer; overload;
class function IndexWords (Strings : TStrings; Words : string; Spaces : TDCharSet) : Integer; overload;
class function IsValidIndex (Strings: TStrings; Index : Integer) : Boolean;
class function Last (Strings: TStrings) : string;
class procedure LoadFromStream (Strings : TStrings; Stream : TStream; SavePos : Boolean);
class procedure RemoveEmptyLines(Strings: TStrings);
class procedure RemoveLastEmptyLines(Strings: TStrings);
class procedure Substract(Strings: TStrings; const Items: TStrings);
class function ToArray (Strings: TStrings) : TDStringArray;
class procedure Trim (Strings: TStrings);
end;
Здравствуйте, Danchik, Вы писали:
D>Здравствуйте, Jack128, Вы писали:
D>[Skip]
J>>А вот что меня очень прикололо, так это хелперы. Весьма полезная вещь. У мя было достаточно много всяких функций а-ля J>>Stream_WriteString(Stream: TStream; const S: string); или там List_FindInSorted(List: TList; Item: Point; Compare: TListCompare; var Index: Integer): boolean; J>>Сейчас пратически всё это барахло переведено на хелперы. Читабельность кода весьма и весьма повысилась.
D>Это что за хелперы? Не лез я в BDS, потому не осведолмлен. Мне всегда помогали class методы. Так для примера: D>
D> TStringsHelper = class
D> public
D> class function CreateSorted : TStringList; overload;
D> class function CreateSorted (Duplicates : TDuplicates) : TStringList; overload;
D> class function Delete(Strings: TStrings; Str: string): Boolean;
D> class procedure DeleteLast (Strings: TStrings); overload;
D> class procedure DeleteLast (Strings: TStrings; Number : Integer); overload;
D> class procedure FreeMem (Strings: TStrings); overload;
D> class procedure FreeMem (Strings: TStrings; FreeItemProc: TFreeItemProc); overload;
D> class procedure FreeObjects (Strings: TStrings);
D> class function Get (Strings: TStrings; Index : Integer) : string;
D> class function IndexOf(Strings, SubStrings: TStrings): Integer;
D> class function IndexWords (Strings : TStrings; Words : string) : Integer; overload;
D> class function IndexWords (Strings : TStrings; Words : string; Spaces : TDCharSet) : Integer; overload;
D> class function IsValidIndex (Strings: TStrings; Index : Integer) : Boolean;
D> class function Last (Strings: TStrings) : string;
D> class procedure LoadFromStream (Strings : TStrings; Stream : TStream; SavePos : Boolean);
D> class procedure RemoveEmptyLines(Strings: TStrings);
D> class procedure RemoveLastEmptyLines(Strings: TStrings);
D> class procedure Substract(Strings: TStrings; const Items: TStrings);
D> class function ToArray (Strings: TStrings) : TDStringArray;
D> class procedure Trim (Strings: TStrings);
D> end;
D>
Ну и сравни, что более понятно и при этом более компактно:
if TStringsHelper.IsValidIndex(Memo1.Lines, 10) then
//
или
if Memo1.Lines.IsValidIndex(10) then
//
Синтаксис хелпера был бы такой
TStringsHelper = class helper for TStrings
public
function IsValidIndex (Index : Integer) : Boolean;
end;
[Skip]
J>Ну и сравни, что более понятно и при этом более компактно:
[Skip]
Да более удобно. Но так как, я пока не собираюсь переходить на более тормознутую версию от Borlanda (просто не вижу смысла), я пока по старому подергаюсь
Re[2]: Delphi 6 -> 2006
От:
Аноним
Дата:
21.02.07 13:49
Оценка:
Здравствуйте, RENaissance, Вы писали:
REN>З.З.Ы Очень шустро работает Code completition в D2006, значительно быстрее, чем в D7.
Батенька, Вы под Visual Studio, наверное, не работали. Вот ТАМ — действительно шустро. Я не понимаю в упор, почему начиная с 3й версии Delphi, борландовцы так и не могут создать хороший и быстрый code completion.
P.S. Я говорю про рабочие проекты, а не исходники а-ля Hello Wrold
Здравствуйте, Jack128, Вы писали:
J>Кстати, нито, ни ждроугое меня не очень сильно привлекло, имбо перегрузка операторов оправдана, ну уж в ОЧЕНЬ редких ситуациях, а на счет методов в записях..
Не согласен про ОЧЕНЬ редкие ситуации — при работе с D3D векторами отсутствие операторов может довести до нанесения тяжких повреждений клавиатуре =)
Здравствуйте, wallaby, Вы писали:
W>Turbo Delphi for Win32 — это BDS2006 Update 2, из которого выбросили всё лишнее. См. http://www.turbodelphi.ru
Добрый день подскажите плиз.
Я меня проблемка выбора версии Делфи, как для меня это так и для организации. По общим критериям я так понял что стоит остановиться на TurboDelphi, т.к. это почти тоже самое что BDS 2006 только меньше глюков и т.п.?
Здравствуйте, Vodyamba, Вы писали:
V>Здравствуйте, wallaby, Вы писали:
W>>Turbo Delphi for Win32 — это BDS2006 Update 2, из которого выбросили всё лишнее. См. http://www.turbodelphi.ru
V>Добрый день подскажите плиз.
V>Я меня проблемка выбора версии Делфи, как для меня это так и для организации. По общим критериям я так понял что стоит остановиться на TurboDelphi, т.к. это почти тоже самое что BDS 2006 только меньше глюков и т.п.?
Turbo — это и есть BDS2006 Update 2, порезанная на 4 части. По функциональности Turbo Pro соответствует BDS 2006 Pro с одним но — в одной системе (виртуальной машине) не может быть двух и более Turbo — продуктов. Поскольку меня в настоящее время интересует только Delphi for Win32, остальное мне не нужно. По поводу глюков — по идее их должно быть столько же, сколько и в BDS2006 после установки всех апдейтов и хотфиксов. В Turbo уже есть Update2, и после установки нужен только хотфикс. Turbo Delphi for Win32 заметно быстрее грузится и субъективно быстрее BDS2006. Так что если цена критична и нужна только Delphi for Win32, берите Turbo, иначе смотрите в сторону Delphi 2007 for Win32 — http://www.ibase.ru/prices/borland.htm
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Re[10]: Delphi 6 -> 2006
От:
Аноним
Дата:
11.04.07 04:09
Оценка:
Берите уж тогда Д2007 про например, по качеству намного лучше турбы и Д2006, стоит правда дороже чем турбо.
Подробности на ibase.ru