| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 127.0.0.1
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 php libc rand() эксплоит Windows Server 2008 FreeBSD Jail Elastix QIP Virtual chroot Limit kernel proc sysctl Tune freeBSD bridge Boot LiveCD Disk Bluetooth GEO game DirectX emulator Python Shell червь Conficker вирус троян лаборатория касперского пиратство Apple iPhone Microsoft twitter социальная сеть анонимность лицензия Open Source уязвимость MySQL база данных Закон Франция Пират Skype мобильный Deutsche Telekom хакер trend micro кибератака Германия робот Персональные данные Ноутбук Интернет китай цензура windows vista acer Linux патент браузер Firefox Internet Explorer Opera Safari Intel Oracle патч Банкомат IBM США Dell Ford MAC контроль Internet кибербезопасность приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 взлом Пентагон Украина Facebook Cisco Cloud Windows XP нетбук торрент музыка Биометрический Nokia Hardware Manager ФБР IP-адрес sms RSA java Google Captcha Symantec Спам Антивирус тест Anti-Malware Windows 7 операционная система windows провайдер авторское право rapidshare UNIX свиной грипп шантаж Дети ipod копирайт McAfee HTTPS icann студент Норвегия New York Times YouTube Warner Music КНДР Ubuntu AMD ATI касперский Россия РФ сервер хостинг Wi-Fi суд пароль блог фишинг одноклассники Медведев контрафакт мошенник sony Gps по JavaScript Хакеры Yahoo фас компьютер софт Минкомсвязи Сбой мошенничество Доктор ВЕб Вконтакте ie8 исходный код МВД фильтр порнография свобода слова казахстан Autodesk сисадмин Gmail кредитная карта LiveJournal шифрование Deep Purple банк HTML5 Нанотехнологии wikipedia выборы DNS bind KaZaA Android Basic атака Mac OS X домен ФСБ прокуратура уголовное дело ICQ Sophos Google Voice ошибка DARPA военные сайт турция конференция спамер Полиция Koobface Великобритания IRC белоруссия Грузия Bittorrent Европа Dr.WEB Linux Mint Билл Гейтс спецслужбы Royal Bank of Scotland смартфон Canonical F-Secure Symbian фильм Microsoft Office Новая Зеландия Adobe Австралия IDC Internet Explorer 9 iPad Ирландия поиск GOOGLE EARTH МТС Реклама слежка Mandriva BSD Zeus личные данные eset avast Avira G Data Software защита Defcon виртуализация dll LibreOffice Черный список BlackBerry индия Москва DVD социальные сети flash player paypal BitDefender email сертификат honda MasterCard Anonymous технологии IPv6 Ассанж Оптоволокно передача данных арест Fedora Samsung Иск Apache учетная запись iTunes исследование Cert Санкт-Петербург McDonald's SOPA PIPA Bioshock Infinite: Burial at Sea - ico Megaupload CES hotfile отчет приложение Инвестиции платформа DRM DDoS-атака роскомнадзор

Главная » Статьи » Общие Статьи

Delphi 2009: Tiburon со слов очевидцев

Не секрет, что любимые многими разработчиками средства создания программного обеспечения от Borland, такие как Delphi и C++ Builder, к середине нынешнего десятилетия стали переживать не лучшие свои времена. Это вынудило компанию принять ряд организационных мер, направленных на борьбу с убытками, и фактически отказаться от дальнейшего ведения бизнеса в сфере создания средств разработки.

В 2006-м году было создано автономное IDE подразделение, учетные активы которого по-прежнему принадлежали Borland. Оно было названо CodeGear. И вот, 7 мая 2008 Borland и малоизвестная компания Embarcadero Technologies объявили о том, что было подписано окончательное соглашение о приобретении активов для покупки CodeGear. Приобретение было окончательно завершено 30 июня 2008 года. Тем самым, CodeGear окончательно отделилась от Borland и стала частью Embarcadero Technologies. Таким образом, на сегодняшний день мы можем говорить, что Delphi сменил владельца. Тем не менее, этот факт никак не отразился на планах выпуска новых продуктов. И осенью этого года будет выпущен новый продукт линии Delphi Delphi 2009.

По традиции, за несколько месяцев до выпуска очередного релиза, бета-тестеры компании начинают активное описание продукта в своих блогах и на форумах. Данный процесс происходит довольно синхронно и его начало является верным признаком скорого выпуска продукта в свет. Таким образом, потенциальные покупатели получают возможность заранее ознакомится с новшествами среды, и даже обсудить ее преимущества с разработчиками. Последние, кстати, охотно идут на контакт на форумах и в блогах. И поскольку с момента начала обсуждения нового детища CodeGear прошло больше месяца, мы можем составить некоторое представление о новом продукте.


Дэвид Интерсаймон (David I.) презентует Tiburon в Германии

Если предыдущие три версии Delphi выходили с интервалом около года, то на создание Tiburon’а (в переводе с испанского означает акула) CodeGear затратил почти два. И похоже, что новшеств в очередном, двенадцатом по счету, продукте линии Delphi, будет намного больше, чем, скажем, их было в Delphi 2007. Изменения затронут практически все составляющие IDE, включая средства отладки приложений и язык Delphi.

Говоря о Tiburon, прежде всего стоит понимать новую версию Delphi for Win32 и C++ Builder. Вероятно, что схема распространения продуктов останется прежней. Оба Win32 решения будут продаваться отдельно и выйдут немного раньше. А затем они войдут в состав RAD Studio 2009, куда помимо них будут включены .Net средства. Новшества, коснувшиеся С# Builder и Delphi for .Net, пока активно не обсуждаются.

Если взглянуть на скриншоты, то можно увидеть, что внешне среда разработки особо не изменилась. Остался тот же Visual Studio подобный интерфейс и похожее расположение панелей.

Наиболее замечательным нововведением, на которое обращают внимание Дэвид Интерсаймон (технический руководитель команды разработчиков) и его коллеги, станет расширенная поддержка юникода. При этом отмечается, что начиная с 2002-го года, по данным регулярных опросов, подобное нововведение являлось наиболее ожидаемым и востребованным среди пользователей Delphi. Юникод это схема кодировки символов, которая фактически предоставляет возможность закодировать любой алфавит в единый набор символов. Проще говоря, юникод дает возможность использовать любой алфавит вне зависимости от того, какие региональные настройки являются базовыми.

Тотальная «уникодификация» затронула практически все составляющие IDE. Прежде всего, это изменение строковой концепции языка. Был добавлен новый строковой тип UnicodeString. Для UnicodeString внутренним форматом будет UTF16. Тип string, который ранее описывался как AnsiString, стал UnicodeString. Типы Char и PChar, которые ранее соответствовали AnsiChar и PAnsiChar, соответственно стали WideChar и PWideChar. Как следствие, все заголовочные файлы для работы с WinAPI изменены под юникод. Если ранее все функции соответствовали A функциям Windows, то теперь они будут соответствовать W функциям... Например, если в Delphi 2007 MessageBox определялась как MessageBoxA, то в Delphi 2009 она это будет MessageBoxW.

Старые типы данных также можно будет использовать, но потребуется явное указание типа (например, AnsiString и AnsiChar для указания старой однобайтной строки и символа).

Кроме того, был введен новый класс TEncoding, предназначенный для преобразования текста в различные кодировки. Соответственно, претерпели изменения некоторые базовые классы, которые стали использовать данный класс в реализации своих методов. Так метод LoadFromFile класса TStrings теперь автоматически определяет кодировку текста и производит его перекодировку в UTF-16 (UnicodeString), используя TEncoding. Множества вида Set of Char теперь в коде должны быть заменены на Set of AnsiChar. В противном случае компилятор выдаст ошибку

Что же мы в результате всего этого получаем на практике? Прежде всего, создавать приложения с полноценной поддержкой мультиязычности. В том числе и приложения, предназначенные для работы с базами данных. Теперь в одной таблице одновременно можно отображать как кириллицу, так и иероглифы. При этом трудоемкость адаптации старых Delphi приложений к использованию юникод сводится к минимуму. Иными словами, без особых затруднений можно перевести свою программу с английского на китайский и тем самым выйти на существенно более высокий уровень продаж. Столь незначительную проблему как изучение китайского в рамках данной статьи я затрагивать не стану. :)

Соответственно, и средства отладки так же приобрели возможность работать с юникодом.

До настоящего времени лично я не испытывал особых проблем с кодировкой в предыдущих версиях Delphi. Хотя, неприятные моменты все же возникали. Например, при определении путей на русскоязычные папки. Есть надежда, что коль скоро разработчики продукта обратили внимание на интернализацию приложений, у них дошли руки и до поддержки локальных версий Windows.

В контексте вышесказанного уместно предаться некоторым отвлеченным размышлениям. Очевидно, что CodeGear проигрывает конкурентам на англоязычном сегменте рынка и сейчас делает ставку на потенциальных клиентов, для которых английский не является родным. Напомню, что кроме натуральной, английской версии Delphi, существуют японская, немецкая и французская локализации. С конца 2007-го года в пресс-релизах CodeGear начали сквозить испанские слова. А акцент в развитии продуктов компании ставится именно на их языковых возможностях. Если вспомнить, что недавно был заключен контракт с Министерством образования РФ на закупку 1 миллиона лицензий Delphi и C++ Builder, то можно прогнозировать, что в обозримом будущем эти продукты заговорят и по-русски.

В отличии от Delphi 2007, где язык разработки практически не эволюционировал, Tibuon привнес существенные изменения в Delphi Language (об очередном переименовании языка речь пока не ведется).

Изменение строковых типов мы рассмотрели выше. Главными же новшествами помимо этого стали так называемые анонимные методы и шаблоны (Generics). Анонимные метода, по сути своей, это процедуры и функции, за которыми не закрепляется имя.

type
// описание метода
TProc = reference to procedure(x: Integer);

procedure Call(const proc: TProc);
begin
proc(42);
end;

var
proc: TProc;
begin
// anonymous method
proc := procedure(a: Integer)
begin
Writeln(a);
end;

Call(proc);
readln
end.

Если посмотреть пример кода, то можно понять, что фактически анонимный метод это переменная, значением которой может быть любая подпрограмма. Эту подпрограмму мы можем переопределять в коде и даже передавать в качестве параметра другой подпрограмме. По крайней мере, это следует из кода. К сожалению, до выхода релиза мы не можем проверить это на практике и полностью оценить все возможности данной синтаксической структуры.

Концепция шаблонов так же интуитивно понятна из кода. Это решение было позаимствовано из .Net. Наиболее очевидное применение этой конструкции – работа со списками. Однако, вероятнее всего, могут найтись и другие точки ее приложения.

Описание:

TList<T> = class
private
FItems: array of T;
FCount: Integer;
procedure Grow(ACapacity: Integer);
function GetItem(AIndex: Integer): T;
procedure SetItem(AIndex: Integer; AValue: T);
public
procedure Add(const AItem: T);
procedure AddRange(const AItems: array of T);
procedure RemoveAt(AIndex: Integer);
procedure Clear;
property Item[AIndex: Integer]: T
read GetItem write SetItem; default;
property Count: Integer read FCount;
end;

Использование:

var
ilist: TList<Integer>;
slist: TList<String>;

procedure PrintListInteger;
var
i: Integer;
begin
for i := 0 to ilist.Count - 1 do
Write(ilist[i], ' ');
Writeln;
end;

procedure PrintListString;
var
i: Integer;
begin
for i := 0 to slist.Count - 1 do
Write(slist[i], ' ');
Writeln;
end;

begin
ilist := TList.Create;
try
ilist.AddRange([1, 2, 3]); // ['1', 'second', 'third']);
PrintListInteger;
ilist.RemoveAt(1);
PrintListInteger;
ilist.Clear;
PrintListInteger;
finally
ilist.Free;
end;
slist := TList.Create;
try
slist.AddRange(['one', 'two', 'three']); // ['first', 'second', 'third']);
PrintListString;
slist.RemoveAt(1);
PrintListString;
slist.Clear;
PrintListString;
finally
slist.Free;
end;
Readln;
end.

Еще одно, пусть и не столь масштабное, нововведение в синтаксисе – новая конструкция процедуры Exit:

function DoSomething(aInteger: integer): string;
begin
if aInteger < 0 then
begin
Exit(‘Negative’);
end;
Result := ‘Positive’;
end;

Аналогично следующему коду:

function DoSomething(aInteger: integer): string;
begin
if aInteger < 0 then
begin
Result := ‘Negative’;
Exit;
end;
Result := ‘Positive’;
end;

К сожалению, пока не ясно как такая конструкция будет работать, скажем, во вложенных подпрограммах.

VCL также претерпел отдельные изменения. По заверениям людей, тестирующих Tiburon, панель компонентов довольно существенно расширится. Добавятся довольно много, пусть не ключевых, но довольно удобных компонентов (Category panel, link label, buttoned edit и т.д.), известных по разработкам сторонних производителей. А также расширятся возможности многих классов. Например, будут поддерживаться PNG-изображения. Многие визуальные элементы управления будут адаптированы под Vista стиль. Так для TEdit появится Error Box (хинт, с сообщением об ошибке), дополнительные наборы стилей для TButton и многие другие новшества. Все это будет работать и под Windows XP, хотя, естественно, смотреться будет несколько по проще.

Позволю себе еще одно маленькое отступление. Меня всегда интересовало отношение вышеупомянутых сторонних производителей к тому факту, что в очередной версии Delphi появляются компоненты, вмещающие в себя те функции, от реализации которых они (производители) получают доход...

Отличная новость ожидает любителей красивого и модного интерфейса. До сегодняшнего дня, пожалуй, единственным профессиональным Delphi совместимым набором компонентов, позволяющим создавать приложения в стиле Office 2007 являлся DevExpress. Теперь же на палитре компонентов Tiburon появится вкладка Ribbon Controls. Она содержит следующие компоненты:

  • TRibbon;
  • TRibbonComboBox;
  • TRibbonSpinEdit;
  • TScreenTipsManager;
  • TScreenTipsPopup.

В комплект продукта прилагается пример, наглядно иллюстрирующий возможности новых контролов. Судя по скриншоту, разработчики Delphi для примера быстренько соорудили полный аналог MS Word 2007. :)

Кроме интерфейсных нововведений в VCL появились и некоторые изменения, связанные технологиями доступа к данным. В частности, новый компонент, основанный на технологии DataSnap server.

Существенно обновились многие диалоги и визарды. В частности, стал более наглядным визард создания COM объектов. Изменился и мастер создания новых компонентов. Кроме того, блогеры отмечают тот факт, что появилась возможность изменять размеры диалоговых окон там, где раньше таковой возможности не было. Мелочь, а приятно. При всем удобстве Delphi 2007, лично меня раздражало то, что строку в диалоге я не могу увидеть полностью. Приходилось ее выделять и копировать в блокнот, что бы прочесть, потому что часто даже хинт не укладывался в ширину экрана.

Как и в предыдущей версии Delphi инсталляция производится посредствам on-line инсталлятора (по крайней мере, для beta-версии, точно). Однако, как отмечают тестеры, эта процедура стала занимать намного меньше времени. Из личного опыта могу сказать, что установка Delphi 2007 при скорости канала 256 kb/s занимала около двенадцати часов. Так называемый Prerequired набор - то, что должно быть установлено для нормальной установки Delphi - несколько сократился.

Кроме всего прочего в комплект Delphi 2009 будут добавлены новые инструменты UML моделирования. Судя по всему, из набора хорошо знакомого по предыдущим версиям Together.

К сожалению, beta-версия Tiburon пока недоступна для свободного скачивания. Поэтому о стабильности и надежности продукта пока сказать нечего. Да и о удобстве его для разработок приходится говорить с чужих слов. Точная дата выпуска продукта обозначена как «выйдет, когда будет готов». Тем не менее, хочется надеяться на лучшее. И основания для таких надежд есть!

Категория: Общие Статьи | Добавил: aka_kludge (18.08.2008)
Просмотров: 2171 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

05:13
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2025 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика