Страница 3 из 4

Re: Почему Delphi лучше?

Добавлено: 09 дек 2008, 10:53
somewhere
&quot писал(а):иные же упираются в то что - дурак в Delphi но Сишник или наоборот
И это на самом деле так, только там где я работал приходилось делать еще и на VB.
&quot писал(а):Про Assembler скажу только одно встроенный компилятор сред зачастую выдаёт более оптимальный код нежели набраный кодером и это факт, опять же уметь нужно кодить чтоб этого не происходило.
Не разу такого не замечал. Единственный плюс - автоматическое выравнивание по 16 байтам, не нужно считать байты занимаемые командами. В остальном компилятор не одну операцию избыточной не посчитал, так же как и их порядок.
&quot писал(а):Не согласен про поинтеры, всё вполне удобно, по крайней мере меня в тупик или к какомо-то явному неудобству это не приводит.
Ну не знаю, часты случаи в практике, когда нужно

Код: Выделить всё

p := p + varInt32;
Вместо этого пишу:

Код: Выделить всё

p := Pointer(Integer(p) + varInt32);
Не очень то удобно. На асм вообще сводится к одной команде, в отличие от копилятора, который генерит кажется 4. А если таких операций много? Бывает что просто забиваю на это и всю процедуру или функцию делаю на асм.
&quot писал(а):выигрывают лишь за счёт технологии визуальной связки имеющихся компонентов
Не, это понятно, собственно один из принципов быстрой разработки - использование готового кода для разных задач.
&quot писал(а):Если же в Delphi попытаться реализовать более-менее сложный проект без использования VCL, то это приложение может вообще никогда не появиться на свет, а умереть ещё на стадии проектирования.
Почему же? правила написания кода задает сам кодер, можно использовать обвязку WinAPI - только вот это опять шаг назад, в те времена когда вручную описывалось почти все, и, тем не менее существовал код, не зависящий от ОС.

Re: Почему Delphi лучше?

Добавлено: 09 дек 2008, 12:51
Duncon

Не очень то удобно. На асм вообще сводится к одной команде, в отличие от копилятора, который генерит кажется 4. А если таких операций много? Бывает что просто забиваю на это и всю процедуру или функцию делаю на асм.
Тем неменее удобно неуобно - выполнимо.
У меня были случаи когда проводил сравнения 1 команда на асме работала дольше нежели 4 других на асме! хотя по логике бред..

Re: Почему Delphi лучше?

Добавлено: 09 дек 2008, 15:23
somewhere
&quot писал(а):У меня были случаи когда проводил сравнения 1 команда на асме работала дольше нежели 4 других на асме! хотя по логике бред..
Вовсе не бред, а нормальная ситуация. Длительность каждой команды (а точнее группы команд определенного вида) различна + задержки на занятость шины данных если операнд в памяти + задержки на выборку команды из кеша 1-го уровня и его обновление, если команда не выровнена по границам параграфа. А если брать в расчет многоконвеерное АЛУ, то..... Вообщем факторов достаточно много, на мой взгляд это настоящее искусство и отдельное направление в программировании - оптимизация кода.

Re: Почему Delphi лучше?

Добавлено: 09 дек 2008, 16:31
BBB
somewhere писал(а):По части поинтеров - их нельзя просто складывать, что весьма и весьма полезно.
Можно применять операторы Inc и Dec :)
Работает как в C.
Т.е.

pWord : ^word;
Inc (pWord);

равносильно C-шному:

word * pWord;
pWord += 1;

Можно ли писать Inc (pWord, N); честно скажу, не помню. Вполне может быть, что можно.

Re: Почему Delphi лучше?

Добавлено: 09 дек 2008, 16:51
somewhere
&quot писал(а):pWord : ^word;
Inc (pWord);
Хм... работает... только одно "но" - с типизированными поинтерами, причем inc(typed_pointer, x) добавляет к поинтеру x*size_of_type, если верить компилятору конечно :) Вообщем тоже решение, спасибо!!! при том что Pointer можно сделать PByteArray и тогда вообще все просто.

Re: Почему Delphi лучше?

Добавлено: 10 дек 2008, 01:02
WinMain
Бред, мы без vcl пишем довольно нехилые штуки..
Ну или давай скажи - что я не смогу написать, того что сможет сишник?
А что используете вместо VCL?
Я понимаю, в VС++ вместо MFC можно использовать аналогичные платформы других разработчиков, типа Qt или wxWidgets. Можно даже обойтись ATL/WTL от Микрософт.
А для Delphi какие альтернативные платформы существуют? Не на голом же Win32API программы писать?

Re: Почему Delphi лучше?

Добавлено: 10 дек 2008, 08:30
Duncon
Я написал что мы не испорльзуем vcl, используются 3 модуля system(который вшит), windows и messages всё, более ничего для счястья не нужно.
Для мелкософтного программирования конечно же используются стандартные компоненты (благо TurboDelphi штука бесплатная(устанавливать компоненты только нельзя) : )
В альтернативных "платформах" смысла не вижу в Delphi с этим всё впорядке в отличии от MFC (Сишный vcl это конечно полный ахтунг люди написали мегакашу). Опять же компонентов для Delphi понаписанно за прошедшие годы столько что не описать словами, в конце концов можно самому побыстрому соорудить чего тебе не хватает, в этом плане всё удобно и доступно.

Re: Почему Delphi лучше?

Добавлено: 10 дек 2008, 12:39
BBB
somewhere писал(а):Хм... работает... только одно "но" - с типизированными поинтерами, причем inc(typed_pointer, x) добавляет к поинтеру x*size_of_type, если верить компилятору конечно :) Вообщем тоже решение, спасибо!!! при том что Pointer можно сделать PByteArray и тогда вообще все просто.
Так я и говорю - все, как в Си. В Си тоже нетипизированный пойнтер не инкрементируешь:

void * p;
p += 1; // <- не скомпилируется

И сдивг по памяти происходит на указанное кол-во "того, какого типа указатель". Т.е. при:
int * pInt;
pInt += 1;

pInt "сдивнется" в памяти не на "один байт", а именно на "один sizeof (на_что_указываем)", т.е. в данном случае на "один интежер".
Собственно, в этом есть логика. Если указатель объявлен типизированым, предполагается, что он, все-таки, указывает на память, содержащая элементы этого типа. И логично двигатся по памяти именно "дискретными шагами", размером с sizeof этого типа. Какой смысл сдвигаться на, скажем, "полтора элемента" :)

Re: Почему Delphi лучше?

Добавлено: 29 дек 2008, 16:37
Негодяйка
обожаю Делфи, кодить одно удовольствие имхо)

Re: Почему Delphi лучше?

Добавлено: 03 фев 2009, 11:42
atavin-ta
В delphi вообще не понятно, для чего существуют объекты и классы, так как ни один оператор перегрузить нельзя. А конкатенация выглядит АБСОЛЮТНО ИДЕНТИЧНО везде, где поддрживаются строки (не путать с массивами символов). C++ действительно является объекто-0ориентированным, то есть позволяет создавать свои классы, перегружать для них операторы и потом пользоваться классами также легко, как и стандартными типами.