-
> Нет, все таки наш арсенал немного возрос, а скорость компиляции > вроде не пострадала, что ни может не радовать
да уж, не сказал бы, что в C# часто приходилось пользоваться какими-то сложнейшими конструкциями с шаблонами, List<T> все и заканчивалось обычно, но как этого не хватало в Делфи!
-
>[66] Servy © (2008-08-26 21:44:00) >правда без return :) угу. пардон, недоперенастроил мозг с сей. %-)
--- All Your Base Are Belong to Us
-
> Нет, все таки наш арсенал немного возрос,
Дык, я не спорю. Это хорошо. Только как то немножко противно, что все делается с оглядкой на C#.
P.S. Я почемуто стал обращать внимание на D и Oxygene.
-
> > P.S. Я почемуто стал обращать внимание на D и Oxygene.
Вообще RemObjects рулит, я давно уже юзаю PS и доволен им. ИМХО, другие продукты этой компании не должны быть хуже по качеству.
По описанию и прайсу Oxygene уделывает Delphi. А вот как на счет применения в реальных боевых условиях? Юзал его?
-
> и прайсу Oxygene уделывает Delphi.
по прайсу по подробнее? я так понял, что в качестве IDE используется MS Visual Studio ? То есть её тоже нуно покупать???
-
> ZeroDivide © (27.08.08 11:22) [83]
Я пока больше теоретик.
-
Вот и я добрался до пощупывания Акулы (если кому надо, весь релиз лежит на оф. сайте, ссылки и лекарство в разделе Варезник ру-борда). Что могу сказать, обновления радуют, а вот реализация не очень... все новые фичи какие-то недоделанные. Класс эксплорер при добавлении элементов каждый раз генерит новую секцию, диспетчер ресурсов почему-то не создает автоматом кода для загрузки картинки, как на презентации, новые компоненты вообще хз как работают - на вид ничем не отличаются. А баллун хинт почти нельзя настроить, к тому же он с забивает на положение мыши и возникает всегда под ней. ToString у объекта - вещь хорошая, вот только если б она еще и прописана была, а то тупо возвращает имя класса, и всё. Вот exit с параметром - это единственная фича, которая пока что мне больше всего понравилась)). Теперь можно забыть про дурацкие if Suxx then begin Result:="Suxx"; Exit; end
и делать if Suxx then Exit("Suxx") - мелочь, а приятно)
C шаблонами пока е разбирался, насчет анонимных методов пока не могу придумать, где могут понадобиться. Лучше бы локальные переменные внутри блока сделали б, что ли )).
-
> и делать if Suxx then Exit("Suxx") - мелочь, а приятно)
Класс!
-
> и делать if Suxx then Exit("Suxx") - мелочь, а приятно)
Нда, приятная мелочь... :)
-
ап, еще мнения будут?
-
>[86] SpellCaster (2008-08-28 15:54:00) анонимы как раз рулят. я приводил пример, где и когда.
--- Do what thou wilt shall be the whole of the Law.
-
Кстати уже доступен свежий билд (RC или релиз?) 12.0.3155.16733, с хэлпом в комплекте.
-
> Кстати уже доступен свежий билд
где?
-
> весь релиз лежит на оф. сайте
> Кстати уже доступен свежий билд (RC или релиз?)
> где?
Вот именно что, Где? Не надоело ещё людям мозг пудрить. Методом тыка и подборки имён архивов заюзали списочек из ссылок http://installers.codegear.com/release/radstudio/12.0.3155.16733/***.7zipСкачали, и радуетесь, что оф. релиз скачали :) Ну прям дети. Никто не даёт гарантию, что это именно файлы релиза, а не какой-нибудь промежуточной сборки. Может поэтому и недоступен на codegear он-лайн инсталлятор Лучше уж дождаться ISO-образа. На этой неделе скорее весго его и выложат. зы: когда ссылки на реальный оф. релиз появятся, на e-mail придут уведомления, для тех, кто подписался
-
Завтра на работе устрою разбор реализации анонимных методов и шаблонов.
-
Первые исследования показывают,что Tobject обзавелся новыми методами
class Method UnitName;
instance virtual Methods Equals(self); VMT-$2С ToString; VMT-$24 GetHashCode; VMT-$28
+ перегруженный
class function TObject.MethodAddress(const Name: string): Pointer; begin {$IFDEF UNICODE} Result := MethodAddress(UTF8EncodeToShortString(Name)); {$ELSE} Result := MethodAddress(ShortString(Name)); {$ENDIF} end;
Это был совсем беглый взгляд на содержимое system.pas. Завтра буду дрючить его по полной.
Теперь, что реально меня интересовало кодогенерация и инстранцирование шаблонов. Пока не ушел спать поковыряю минут 20.
-
Что меня сейчас реально расстроило, код для инстанцированых шаблонов с разным параметризованных параметров отличается.
Однако зачем было городить поддержку использования операторов в параметризованных классов через унифицированный интерфейс, т.е через жопу я не знаю. Это же не .NET.
Я тут уже слегка кратко выше разобрал их реализацию
Возможно я сейчас чего не до конца понимаю, однако завтра я разберу все на винтики.
Теперь далее.
Слегка изменился код инстранцирования параметризованных классов. Есть предположения, завтра проверю. Завтра я вниметельно разберу все под отладчиком. И возможно сообщу здесь, если вдруг не забухаю. Теперь спать.
-
> oxffff © (29.08.08 00:10) [96] > Что меня сейчас реально расстроило, код для инстанцированых > шаблонов с разным параметризованных параметров отличается. >
Уточние. Точнее не расстроило, однако прикручивание операции сравнения через унифицированный интерфейс для известного на этапе компиляции типа меня сильно растроило. То есть не будет вам динамического инстанцирования шаблонов как в .NET. Я его и не ждал конечно, однако унифицированый интерфейс наводил на такие мысли. Вообщем могли бы сделать полу generics, полу template. Я ожидал этого. НО!!!..
Небольшое отступление. Я смотрел их "хитрый" код для сопоставления для типов классовоберток оператора сравнения. Мозг не сломаешь, но выкрутасы честно говоря не выразительные.
-
> Слегка изменился код инстранцирования параметризованных > классов
Нет, код такой же.
Далее Мое мнение о реализации generics - это полу generics.
Например is, as, приведение запрещены над Т. Хотя .net для этих целей использует опкод box <T>, т.е. приводит к управляемому типу. Зачем было тогда нацеплять идеалогию, которая не будет ложится полностью на native delphi. Ну и запрет на использование операторов меня просто удивили.
-
> oxffff@yandex.ru (29.08.2008 9:37:38) [98]
Модно и зависть.
|