Myslím, že v současnosti není moc společností vyvíjejících kvalitní vývojové nástroje. Momentálním leaderem trhu je asi Microsoft, následován CodeGear (aka Borland). Jako dlouholetý programátor v Delphi, tak v C# se snažím sledovat oba konkurenty a proto nemohu přejít novinky v budoucí verzi Delphi aspoň bez malé zmínky.
Codegear vypouští jeden zajímavý projekt za druhým: kromě klasiky Delphi a C++ Builderu tak např. RAD nástroj pro PHP (Delphi for PHP - nutné service packy), nebo pro Ruby on Rails (3rdRail) nebo zajímavě vypadající (ale nepochopil jsem licenci) Blackfish SQL.
Hlavní akcí aktuální verze Delphi "Highlander" bylo přinesení Net Framework 2.0 (+ kompatibilita s .Net Framework 3.0) pro Delphi.NET, vylepšení ASP.NET a podpora AJAXu, a pro nativní Delphi podpora pro Visty (tj. průhledná okna a spol.) spolu se zachováním běhu na Win2k a XP. Velmi zajímavá je nová DBX4 architektura pro přístup k DB, potažmo i prý ECO IV (přiznám se, že tyto UML a spol. nástroje moc nepoužívám). Od verze 2006 obsahuje také nový memory manager FastMM, optimalizovaný na současné poměry.
Hlavními peckami budoucí verze Delphi s kódovým názvem "Tiburón" (první polovina 2008) bude plná podpora Unicode pro Win32 (včetně VCL) a generics pro Win32.
V souvislosti s Unicode se objevilo několik zajímavých informací.
- nový datový typ UnicodeString
- s počítaním referencí jako AnsiString (což je alias pro string od verze 2 (první 32bit Delphi))
- stane se novým aliasem pro string, shortstring zůstane zachován jako Ansistring (prostě jako v součastnosti)
- Char bude alias pro WideChar a PChar bude alias pro PWideChar
- volání API bude defaultně volat W (Unicode) verzi (tj. např. z windows.pas - logické)
- 8bit char bude AnsiChar a 8 bit pchar bude PAnsiChar.
- přidány warningy na podezřelé konstrukce
- nová třída TEncoding (jako v .NET)
- TStrings.(LoadFrom|SaveTo)xxx bude přetížena a parametrem bude instance TEncoding atd.
- LoadFromFile automaticky kontroluje existenci BOM (Byte Order Mark) a podle něj vybere správné kódování
Při té příležitosti bylo uvedeno na co si dát pozor, podle mne hlavní je:
sizeof(Char)
SizeOf(Buffer) <> Length(Buffer) kde Buffer: array[0..x] of Char;
Bezesporu se jedná o největší změnu v Delphi od Delphi 2 (přechod 16 bit -> 32 bit, počítání referencí string a spol.).
A na úplný závěr zajímavé čtení zda bude a nebo nebude compiler switch pro volbu Ansi a Unicode stringu - asi ne a důvody jsou velmi rozumně popsané.