Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2014.08.17;
Скачать: [xml.tar.bz2];

Вниз

Вот говорят, что дельфи не умирает   Найти похожие ветки 

 
DevilDevil ©   (2014-01-21 19:38) [200]

> И в исходном виде - да, если {$M+} в настройках включен.
> Я это к тому, что всё-таки можно.


напомни название опции, поищу

> Для Delphi такое выражение просто смешно.

ну для того кто не программирует - может и смешно
я постоянно перекомпилирую, дорабатываю, отлаживаю


 
Ega23 ©   (2014-01-21 19:42) [201]


> напомни название опции, поищу


Я семёрку последний раз видел лет шесть назад.


> ну для того кто не программирует - может и смешно
> я постоянно перекомпилирую, дорабатываю, отлаживаю


А, ну так-то оно конечно да, тут один программист всего, я и забыл.


 
Rouse_ ©   (2014-01-21 19:50) [202]


> DevilDevil ©   (21.01.14 17:48) [198]
> > Я просто считаю, что лучше больше возможностей, чем меньше
> :)
>
> Я тоже за "больше возможностей"
> Просто в данном случае мы говорим о возможностях, которые
> во-первых, нужны далеко не всегда, во-вторых, отжирают немеряно
> времени компиляции. Ну и мегабайтов на диске тоже. Почему
> ты игнорируешь аргумент с временем компиляции - не понятно.
>  Лично меня этот момент просто выбешивает

Как давно ты делал полный билд проекта под MS VC++ ?
Если тебя выбешивает время компиляции под дельфей, то под студией ты должен как минимум пойти и застрелить разработчиков оной, пока проект билдится (и вероятно даже успеешь) :)


 
Rouse_ ©   (2014-01-21 19:52) [203]

ЗЫ: это я тебе так мягко намекаю, бо время полного ребилда того-же Notepad++ коим мы тут все привыкли пользоваться в районе двух с половиной часов.


 
Пит   (2014-01-21 20:06) [204]

ага, поэтому у дельферов ярко выраженный стиль работы. Сделал галочку, жмякнул F9, посмотрел как она выглядит и работает, дальше программирует )))


 
Ega23 ©   (2014-01-21 20:26) [205]


> Как давно ты делал полный билд проекта под MS VC++ ?


Это, помниццо, лет 5 назад с Алкидом нажрались как-то во вторник. Ну и по аське в среду, мол, как самочувствие? А он мне: "Да я поставил полный билд проекта и спать на руки лёг, часа 2 проспал".
Но я понимаю - Лёха-то ваще не программирует совсем.


 
clickmaker ©   (2014-01-21 21:06) [206]

> Да я поставил полный билд проекта и спать на руки лёг, часа
> 2 проспал

программер спит - таймшит идет


 
Юрий Зотов ©   (2014-01-21 21:34) [207]

> Object Inspector Conscience   (21.01.14 16:58) [179]

> Компоненты компилятся в отдельные bpl-и

Это не новость.

> код которых, если не сильно изворачиваться, не попадает в exe.

Если компилить с run-time пакетами. А если нет (что бывает чаще), то вот это уже новость.

> В design-time bpl вполне можно published трактовать как RTTI.

У компонентов деление на run-time и design-time довольно таки условное. Кинутый на форму компонент УЖЕ работает точно так же, как он работает и в программе. Поэтому для компонента понятие design-time означает всего лишь то, что он работает в среде IDE, а не в среде программы.

> Но есть и другие способы.

Хотелось бы подробностей. Какими способами можно отобразить ЛЮБОЙ компонент в Object Inspector"е, не используя RTTI ?


 
DevilDevil ©   (2014-01-21 23:12) [208]

> Rouse_ ©   (21.01.14 19:50) [202]

> Как давно ты делал полный билд проекта под MS VC++ ?Если
> тебя выбешивает время компиляции под дельфей, то под студией
> ты должен как минимум пойти и застрелить разработчиков оной,
>  пока проект билдится (и вероятно даже успеешь) :)


Приоткрою страницы своей биографии
Моя первая официальная работа программистом отняла у меня 2,5 года жизни. Если её вообще можно назвать жизнью. Я программировал на C++Builder. Это по хлеще вашей Visual Studio было ;)


 
DevilDevil ©   (2014-01-21 23:12) [209]

> Ega23 ©   (21.01.14 19:42) [201]
> > напомни название опции, поищуЯ семёрку последний раз видел
> лет шесть назад.


но тем не менее ты утверждаешь, что {$M+} там в опциях есть :)


 
Ega23 ©   (2014-01-21 23:17) [210]


>  Какими способами можно отобразить ЛЮБОЙ компонент в Object
> Inspector"е, не используя RTTI ?


Не, ну извратиться-то можно. Например, на уровне TComponent унаследовать какой-нить хитрый интерфейс IObjectInspectorProps, в котором уже вот это всё делать.
Но это лютый изврат на фоне существующего мощного механизма.


>  Я программировал на C++Builder.

Среда как среда.


 
Ega23 ©   (2014-01-21 23:20) [211]


> но тем не менее ты утверждаешь, что {$M+} там в опциях есть


Вот поверь, ради того, чтобы найти, где эта опция там в настройках включается, я не буду искать семёрку на торрентах и пытаться её локально развернуть.
Но уж ежели на {$B-} и {$B+} чекбокс сподобились запуздырить...


 
DevilDevil ©   (2014-01-21 23:22) [212]

> Юрий Зотов ©   (21.01.14 21:34) [207]

Юрий, я утверждаю, что поменяв всего несколько вещей в подходах, компания Embarcadero смогла бы легко сократить время компиляции и размер exe.

Те вещи, которые Вы комментируете - были ответом на вопрос "как тогда быть в design-time, если published свойства не будут попадать в RTTI (в real-time)"

Если после пояснения Вы всё же будете настаивать на вопросах [207] - я отвечу. Но хочется надеяться, в этом больше нет необходимости


 
DevilDevil ©   (2014-01-21 23:25) [213]

> Ega23 ©   (21.01.14 23:20) [211]

> Вот поверь, ради того, чтобы найти, где эта опция там в
> настройках включается, я не буду искать семёрку на торрентах
> и пытаться её локально развернуть.Но уж ежели на {$B-} и
> {$B+} чекбокс сподобились запуздырить...


Я тебе мягко намекаю на то, что твои выпады были бы адекватны, если бы на них были основания. Но оснований нет


 
Ega23 ©   (2014-01-21 23:45) [214]

А может и нет такой галки.
Только один хрен TPersistent под {$M+} объявлен.


 
DevilDevil ©   (2014-01-21 23:46) [215]

но не TObject, от которого наследуется TSome


 
Ega23 ©   (2014-01-21 23:48) [216]


> но не TObject, от которого наследуется TSome


Не тот. Ну а толку-то?
Не, можно, конечно, написать свои компоненты, с шахматами и поэтессами. А смысл?


 
DevilDevil ©   (2014-01-21 23:54) [217]

Смысл в том, чтобы согласиться с высказываниями [184] и [185]
И впредь проявлять чуть большее уважения к высказываниям форумчан


 
Юрий Зотов ©   (2014-01-22 00:02) [218]

> Ega23 ©   (21.01.14 23:17) [210]

Олег, попробуй определить интерфейс IObjectInspectorProps - так, чтобы с его помощью можно было отобразить в Object Inspector ЛЮБЫЕ свойства ЛЮБОГО компонента. В том числе, ЛЮБОГО самописного.

> Ega23 ©   (21.01.14 23:20) [211]

Директива {$M+} явно прописана прямо в коде VCL, в модуле Classes, непосредственно перед объявлением TPersistent (по крайней мере, в D1-D7). И понятно, почему - потому что именно от TPersistent наследуется все то, что отображается в IDE.

> DevilDevil ©   (21.01.14 23:22) [212]

1. В сокращении времени компиляции нет никакой необходимости, в Delphi оно и без того мало. Овчинка не стоит выделки.

2. Все же мне хотелось бы увидеть пример отображения в Object Inspector ЛЮБЫХ свойств ЛЮБОГО компонента без использования RTTI. Я действительно не представляю, как это можно сделать.


 
vuk ©   (2014-01-22 00:12) [219]

to Юрий Зотов ©   (22.01.14 00:02) [218]:

> Все же мне хотелось бы увидеть пример отображения в Object
> Inspector ЛЮБЫХ свойств ЛЮБОГО компонента без использования
> RTTI. Я действительно не представляю, как это можно сделать.
>

Что-то типа IDispatch и иже с ним?


 
DevilDevil ©   (2014-01-22 00:24) [220]

> Юрий Зотов ©   (22.01.14 00:02) [218]

> 1. В сокращении времени компиляции нет никакой необходимости,
>  в Delphi оно и без того мало. Овчинка не стоит выделки.


Видимо для Вас это не на столько критично, насколько для меня. Всё, что дольше секунды - для меня долго. Поэтому я не пересаживаюсь на XE

> 2. Все же мне хотелось бы увидеть пример отображения в Object
> Inspector ЛЮБЫХ свойств ЛЮБОГО компонента без использования
> RTTI. Я действительно не представляю, как это можно сделать.


Ну пример Вы врядли увидите, но описать один из возможных вариантов такой реализации я в состоянии. Обусловимся, что в design-time bpl-е компилируются все published-свойства. Соответственно при компиляции Delphi знает о каждом свойстве - как получается, как изменяется. Соответственно по каждому свойству хранится 2 указателя на функцию - одна геттер, другая сеттер. Если свойство реально использует геттер или сеттер тогда указатель содержит реально скомпилированную функцию. Если свойство читается/изменяется по полю - тогда генерируется JIT функция, взаимодействующая непосредственно с полем.

Согласен, путь published RTTI в design-time выглядит проще всего. Но и вариант, описанный выше, - тоже имеет право на существование


 
Дмитрий Белькевич   (2014-01-22 00:26) [221]

Реально не знаю, что ты, DevilDevil, такое там собираешь. Наш самый толстый проект. 790 тысяч строк, 44 формы, build около 10-ти секунд, compile - 4. D2010. По-моему резульататы отличные. Мне особенно сравнивать не с чем, я кроме как с Delphi ни с чем не работал, но меня скорость компиляции вполне устраивает. Опять же - всё таки написание программ (по крайней мере у меня :) ) отнимает достаточно много времени в раздумиях, написании кода и отладке. Компилирую не очень часто, build так вообще может быть раз в 3-4 дня или реже. У каждого свой стиль, конечно. Но на мой взгляд время компиляции в delphi отличное.

У себя давно сделал:

{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}


 
Дмитрий Белькевич   (2014-01-22 00:30) [222]

По поводу размера. Размеры экзешников под Андроид, скажем так, удивили :)
Есть у нас один проект - справочник, размер довольно критичен при установке "по воздуху". И качать 20-ти мегабайтную программу, скорее всего, не станут.
Сейчас программа занимает 400 кб, я не сам ей занимаюсь, была бы возможность - то пересобрал бы её на Delphi, но размер экзешника сдерживает.


 
Юрий Зотов ©   (2014-01-22 00:31) [223]

> vuk ©   (22.01.14 00:12) [219]

То есть, каждый компонент становится COM-сервером?


 
DevilDevil ©   (2014-01-22 00:32) [224]

> Дмитрий Белькевич   (22.01.14 00:26) [221]

1 секунда лучше, чем 10, согласись ? :)
а вообще я не навязываю свои пристрастия другим людям. Я говорю, что, поменяв концепцию, можно добиться лучших результатов, проработав всего 2 пункта. Вас устраивает, меня нет. Вы выбираете, я остаюсь на Delphi 7. Вот и всё. :)


 
Юрий Зотов ©   (2014-01-22 00:36) [225]

> DevilDevil ©   (22.01.14 00:24) [220]

А где же отображение в Object Inspector?


 
vuk ©   (2014-01-22 00:42) [226]

to Юрий Зотов ©   (22.01.14 00:31) [223]:

> То есть, каждый компонент становится COM-сервером?

COM - вполне себе компонентная модель, работающая через интерфейсы. Я не говорю, что делать надо именно так. Не надо. :) Но ты спросил - и вот тебе вариант ответа.


 
DevilDevil ©   (2014-01-22 00:44) [227]

> Юрий Зотов ©   (22.01.14 00:36) [225]

Понятно, к чему Вы клоните - к тому, что без RTTI никак
И Вы правы
Просто произнося аббревиатуру "RTTI" я подразумеваю непосредственно дельфийский PTypeInfo. И говоря "есть и другие способы", я подразумевал, что можно не использовать Delphi-подход, ставший стандартом

Разумеется в добавок к методу, описанному выше, понадобятся имена свойств и описания их типов. Что технически разумеется подпадает под истинную расшифровку аббревиатуры "RTTI"


 
Дмитрий Белькевич   (2014-01-22 00:47) [228]

>1 секунда лучше, чем 10, согласись ? :)

Лучшее враг хорошего, как известно. Почему одна? Почему не 100 мс? Не 10 мс? Не 10 нс? Как на мой вкус, то билд за 10 секунд и компиляция за 3-4 это отличный результат. Ну а нужен реально экстремально быстрый билд - то сиди на 7-ке, кто же тебя выше тянет :) Если бы не юникод и (уже) 64 бита я бы сам на 7-ке сидел.


 
DevilDevil ©   (2014-01-22 00:51) [229]

> Лучшее враг хорошего, как известно.

только не у перфекционистов
у нас плохо - если не так хорошо, как мог сделать :)

> Почему одна?

потому что, нажимая F9, разница между половиной секунды и одной секундой - не ощутима. А разница между одной секундой и тремя - уже ощутима. В моём случае она конкретно бесит.


 
Ega23 ©   (2014-01-22 01:07) [230]

Для этого есть Syntax Check.


 
Пит   (2014-01-22 01:10) [231]


> Всё, что дольше секунды - для меня долго

нифига ты быстрый.


 
jumping jack   (2014-01-22 01:12) [232]

байзэвэй, говорят, в дотнете (как и других языках/средах с возможностью интерпретации кода) возможно такое чудо, как изменение кода прямо в процессе отладки, на ходу, без перекомпиляции
вот уж где скорость отладки-то реально хороша


 
имя   (2014-01-22 01:13) [233]

Удалено модератором


 
Юрий Зотов ©   (2014-01-22 01:14) [234]

> vuk ©   (22.01.14 00:42) [226]

Вариант, согласен.
:o)

> DevilDevil ©   (22.01.14 00:44) [227]

Ну, наверное можно что-то придумать и взамен RTTI. Vuk же предложил вариант. И ведь действительно работать будет. Но какими тогда станут те самые размер кода и время компиляции?

А RTTI - просто, быстро, универсально. И зачем, спрашивается, от него уходить?


 
antonn ©   (2014-01-22 08:06) [235]


> jumping jack   (22.01.14 01:12) [232]
>
> байзэвэй, говорят, в дотнете (как и других языках/средах
> с возможностью интерпретации кода) возможно такое чудо,
> как изменение кода прямо в процессе отладки, на ходу, без
> перекомпиляции

ну да, удобно, однако работая с несколькими языками все таки привычно по-старинке (а иногда и тупыми мессаджбоксами =))


 
Sergey Masloff   (2014-01-22 09:20) [236]

DevilDevil ©   (22.01.14 00:32) [224]
>> Дмитрий Белькевич   (22.01.14 00:26) [221]

>1 секунда лучше, чем 10, согласись ? :)
Можно я не соглашусь? Это вообще без разницы. Проект компилируется 1 раз в день, ну 10 раз... 100 раз ни разу не компилировал. Экономия 9 секунд не стоит вложений. Ни копейки.
 Ну теоретически если б она была абсолютно бесплатной то 1 лучше чем 10. Практически - монопенисуально. Свои ресурсы лучше потратить на что-то более полезное...


 
имя   (2014-01-22 09:28) [237]

Удалено модератором


 
DevilDevil ©   (2014-01-22 09:37) [238]

> Юрий Зотов ©   (22.01.14 01:14) [234]

> Ну, наверное можно что-то придумать и взамен RTTI. Vuk же
> предложил вариант. И ведь действительно работать будет.
> Но какими тогда станут те самые размер кода и время компиляции?
>
> А RTTI - просто, быстро, универсально. И зачем, спрашивается,
>  от него уходить?


Вы говорите так, будто COM не подразумевает под собой RTTI :)
Те же имена свойств/методов, указатели на них, информация о типах :)

> Но какими тогда станут те самые размер кода и время компиляции?

design-time bpl-и традиционно большие. Но из них ни байта не попадает в exe. Exe компилируется и линкуется из исходников, design-time bpl работает в IDE. Поэтому логично, что для design-time и для exe должны быть применены разные политики RTTI. Ибо для design-time нужны все свойства и события, а для exe - только малая часть из них.


 
vuk ©   (2014-01-22 10:15) [239]

to DevilDevil ©   (22.01.14 09:37) [238]:

>  а для exe - только малая часть из них.

Засада только одна - это неизвестно, какая часть.


 
DevilDevil ©   (2014-01-22 10:23) [240]

> vuk ©   (22.01.14 10:15) [239]
> Засада только одна - это неизвестно, какая часть.

На дворе 21 век. И современные компиляторы вполне успешно справляются с задачей определения, какой код прилинковывать, а какой нет :)



Страницы: 1 2 3 4 5 6 7 8 9 
10 вся ветка

Форум: "Прочее";
Текущий архив: 2014.08.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 1.08 MB
Время: 0.046 c
15-1390302290
Дмитрий СС
2014-01-21 15:04
2014.08.17
rs232 через сеть


15-1389174438
Novicer
2014-01-08 13:47
2014.08.17
Как установить Firebird вместе с прогой?


15-1389997119
Rouse_
2014-01-18 02:18
2014.08.17
Здравствуйте, я ошибка 217 и я вам ничего не скажу


15-1390163402
Юрий
2014-01-20 00:30
2014.08.17
С днем рождения ! 20 января 2014 понедельник


15-1390258933
Jeer
2014-01-21 03:02
2014.08.17
Памяти главных конструкторов..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский