вторник, 26 августа 2008 г.

Пополнение семейства.

Собственно, родился ещё один дельфенок. Назвали "Дветысячидевятым". С утреца занял очередь, чтобы поглядеть на чадо. Очередь двигается медленно...

Сайт почти валяется - апологеты с открытыми ртами смотрят на мохнатого, волосатого Девида Интерсимона в пестрых рубашках, олицетворяющего собой протошамана Кодгира – этакую квинтэссенцию старой доброй гвардии, успеха и легендарности – все, что оказалось не нужно Борланду на нынешнем этапе его существования. Девид постарел, поседел, но всё ещё может быстро говорить и замечательно читает по бумажке =).
Итак, что интересного? Наконец-то удалось увидеть в действии класс-эксплорер. Похоже, кодгировцы решили отобрать хлеб у Modelmaker-а, но судя по реализации, это произойдет не скоро. Появился также эксплорер ресурсов – вещь чрезвычайно нужная. Появись она лет десять назад, и многие дельфисты не знали бы ещё одну главу из майкрософтовского мануала. А вот конфигурации сборки – довольно интересная штука. Хотелось бы повозится с ней подольше, чтобы понять возможности и удобство использования. Как известно, в D2007 есть определенные сложности с куцей «оболочкой» MSBuild-а.

Переливы Ходжеса про VCL компоненты опущу. Мне кажется, что серьезной компании, создавшей мощнейшее средство разработки, рассуждать о каком-то там компонентике с панельками достаточно смешно. Более интересны доработки вершины пирамиды – TObject обзавелся тремя новыми методами: ToString, GetHashCode и Equals. Из названия ясны задачи, но вот нюансы будут понятны позже - из документации и исходного кода.
Радует полноценная поддержка Unicode. И хотя теперешние мои решения для мультиязычности повзрослели и устаканились, но я всегда с тревогой думал о том часе Х, когда придется реализовывать поддержку иероглифов или что-нибудь подобного. Теперь, думаю, стоит тревожиться о косяках в алгоритмах работы со строками. Наверняка где-нибудь что-нибудь заглючит, потому как библиотек старых полно, писалось много и как бог на душу положит.
Наконец-то появились альфаканалы в иконах и стандартная поддержка формата PNG. Вот уж чего давно не хватало. Не понимаю, почему был полный игнор этих важных для внешнего вида ПО вещей (я имею в виду, конечно же, коммерческие приложения). Ну и TImageList под неутихающие аплодисменты довели до ума. Теперь он поддерживает все зарегистрированные для TImage форматы. О, чудо! Надо где-нибудь заметку зарубить.
Поддерживаю решение дать в нагрузку разработчикам Interbase Developer Edition. Ну действительно, не отправлять же людей к конкурентам. Развивается Intraweb. На мой взгляд – не в том направлении, но об этом может быть позже, в отдельном посте.
Ну и всякие модные штуки, типа Exit с параметром, TStringBuilder-a, дженериков и поддержки лямбда-исчисления, про которые вы уже наверняка много слышали и читали. Не то, чтобы меня они не радуют =) Считаю, что должно пройти некоторе время, прежде чем новые решения приживутся, взойдут и дадут плоды. Я вот, например, всё ещё не использую конструкцию For in (как точно и мило прозвали её аналог for each VB-программисты - ФУРЫЧ), так как использую много Legacy кода, который собирается на старых версиях Delphi. Когда-нибудь это безобразие кончится, и я приобрету новую версию ModelMaker, которая будет всё это знать и уметь. И вот тогда… =) В общем, все это освоим, только дайте срок.

Плохо, что уже несколько релизов подряд так и не может разродиться Компактфреймворк (что не удивительно, так как D2009 не поддерживает .Net). Рынок сбыта медленно, но верно уплывает к более проворным компаниям. Но в целом, маркетинг CodeGear стал гораздо эффективнее и нагляднее. Надеюсь, это положительно повлияет на продажи. Курс верный.

PS. А! Самое-то главное. На днях буду тестировать LiveSource. Первые пять попыткок были неудачными. На очереди шестая. Ваши ставки?

3 комментария:

Николай Войнов комментирует...

отличные новости и нововведения полезные

Анонимный комментирует...

И хотя теперешние мои решения для мультиязычности повзрослели и устаканились

Очень интерестно узнать о Ваших решениях мультизадачности. Раскажите подробнее пожалуйста.

Mikhail Mokhov комментирует...

Речь шла о мультиязычности, а не о мультизадачности. Для мультизадачноти предпочитаю использовать idThread и систему нотификаций в параллельной нитке. К этому решению был дописан гробовщик для ниток (TThreadUndertaker), классы для нотификаций (лог, статус, результат), классы для хранения и передачи параметров потока и ещё одна штука - TThreadLauncher, не такая мощная, как AsyncCalls (http://andy.jgknet.de/async/), но тоже обегчает жизнь =)