Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi - приемущества и недостатки, принимаются различные высказывания 
:(
    Опции темы
MAKCim
Дата 2.1.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата

а как можно обсуждать что-то и при этом не сравнивать с чем-то? Все познается в сравнении. В данном случае показываются, что новое введено в питоне чего нет и не может быть в делфи.

Это языки разного уровня
Мы же не сравниваем кашу с макаронами. Мы сравниваем гречневую кашу, рисовую, ...  smile
Цитата

На поставленный вопрос о преимуществах и недостатках был введен постулат о универсальности и абсолютном превосходстве Дельфи над всем, что не Дельфи.

ну если брать этот контекст, то да
но мне кажется такого постулата никто не вводил



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
skyboy
Дата 2.1.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



Цитата(MAKCim @  2.1.2007,  15:36 Найти цитируемый пост)
Мы же не сравниваем кашу с макаронами. Мы сравниваем гречневую кашу, рисовую, ... 

да ладно - "не сравниваем"! "Я от макаронов полнею - сварим-ка гречневую кашу"  smile Чем не сравнение? а  в холи-вар всё равно аргументы прочными/объективными/очевидными быть не обязаны  smile 
PM MAIL   Вверх
Romikgy
Дата 2.1.2007, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(MAKCim @  2.1.2007,  15:36 Найти цитируемый пост)

Это языки разного уровня
Мы же не сравниваем кашу с макаронами. Мы сравниваем гречневую кашу, рисовую, ... 

дык про что я и говорил , на протяжении стольких моих постов!
Цитата(MAKCim @  2.1.2007,  15:36 Найти цитируемый пост)
но мне кажется такого постулата никто не вводил

где то пробегал
Цитата(skyboy @  2.1.2007,  15:40 Найти цитируемый пост)
а  в холи-вар всё равно аргументы прочными/объективными/очевидными быть не обязаны

на кой тогда вообще разговаривать , при такой постановке вопроса?
просто флеймить тогда, а ради флейма, я бы здесь ни одного поста бы не оставил


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
MAKCim
Дата 2.1.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата

И при этом спорит. У него видете ли методы в какой-то таблице

по сути да
Код

class A {
public:
    virtual void F() {}
};

class B: public A {
    virtual void F() {}
};

int main() {
    B b;
    A *a = &b;
    a -> F();
    return 0;
}

Код

.file    "a.cpp"
    .section    .text._ZN1A1FEv,"axG",@progbits,_ZN1A1FEv,comdat
    .align 2
    .weak    _ZN1A1FEv
    .type    _ZN1A1FEv, @function
_ZN1A1FEv:
.LFB2:
    pushl    %ebp
.LCFI0:
    movl    %esp, %ebp
.LCFI1:
    popl    %ebp
    ret
.LFE2:
    .size    _ZN1A1FEv, .-_ZN1A1FEv
.globl __gxx_personality_v0
    .section    .text._ZN1B1FEv,"axG",@progbits,_ZN1B1FEv,comdat
    .align 2
    .weak    _ZN1B1FEv
    .type    _ZN1B1FEv, @function
_ZN1B1FEv:
.LFB3:
    pushl    %ebp
.LCFI2:
    movl    %esp, %ebp
.LCFI3:
    popl    %ebp
    ret
.LFE3:
    .size    _ZN1B1FEv, .-_ZN1B1FEv
    .section    .text._ZN1AC2Ev,"axG",@progbits,_ZN1AC2Ev,comdat
    .align 2
    .weak    _ZN1AC2Ev
    .type    _ZN1AC2Ev, @function
_ZN1AC2Ev:
.LFB7:
    pushl    %ebp
.LCFI4:
    movl    %esp, %ebp
.LCFI5:
    movl    $_ZTV1A+8, %edx
    movl    8(%ebp), %eax
    movl    %edx, (%eax)            /* по сути, запись в [EBP - 12] из main адреса функции A::F() */
    popl    %ebp
    ret
.LFE7:
    .size    _ZN1AC2Ev, .-_ZN1AC2Ev
    .section    .text._ZN1BC1Ev,"axG",@progbits,_ZN1BC1Ev,comdat
    .align 2
    .weak    _ZN1BC1Ev
    .type    _ZN1BC1Ev, @function

/* конструктор B */

_ZN1BC1Ev:
.LFB10:
    pushl    %ebp
.LCFI6:
    movl    %esp, %ebp
.LCFI7:
    subl    $8, %esp
.LCFI8:
    movl    8(%ebp), %eax            /* в eax адрес объекта b в стеке */
    movl    %eax, (%esp)
    call    _ZN1AC2Ev                   /* конструктор A */
    movl    $_ZTV1B+8, %edx
    movl    8(%ebp), %eax
    movl    %edx, (%eax)             /* по сути в [EBP - 12] из main помещаем адрес B::F() */
    leave
    ret
.LFE10:
    .size    _ZN1BC1Ev, .-_ZN1BC1Ev
    .text
    .align 2
.globl main
    .type    main, @function
main:

/* начинаем отсюда */

.LFB4:
    leal    4(%esp), %ecx
.LCFI9:
    andl    $-16, %esp
    pushl    -4(%ecx)
.LCFI10:
    pushl    %ebp
.LCFI11:
    movl    %esp, %ebp
.LCFI12:
    pushl    %ecx
.LCFI13:
    subl    $20, %esp
.LCFI14:
    leal    -12(%ebp), %eax              /* в [EBP - 12] расположен b */
    movl    %eax, (%esp)
    call    _ZN1BC1Ev                       /* вызываем конструктор B */
    leal    -12(%ebp), %eax
    movl    %eax, -8(%ebp)             /* в [EBP - 8] расположен указатель (4 байта) на A (а по сути указатель на B) */
    movl    -8(%ebp), %eax
    movl    (%eax), %eax
    movl    (%eax), %edx                 /* берем то (4 байта), что лежит в [EBP - 8] ~ [EBP - 12] - как оказывается адрес B::F() */
    movl    -8(%ebp), %eax
    movl    %eax, (%esp)
    call    *%edx                                /* абсолютный переход на то, что записано в [EBP - 8] ~ [EBP - 12] */
    movl    $0, %eax
    addl    $20, %esp
    popl    %ecx
    popl    %ebp
    leal    -4(%ecx), %esp
    ret
.LFE4:
    .size    main, .-main
    .weak    _ZTV1B
    .section    .rodata._ZTV1B,"aG",@progbits,_ZTV1B,comdat
    .align 8
    .type    _ZTV1B, @object
    .size    _ZTV1B, 12

/* вот vtbl для B */

_ZTV1B:
    .long    0
    .long    _ZTI1B
    .long    _ZN1B1FEv          /* вот адрес B::F() */
    .weak    _ZTI1B
    .section    .rodata._ZTI1B,"aG",@progbits,_ZTI1B,comdat
    .align 4
    .type    _ZTI1B, @object
    .size    _ZTI1B, 12
_ZTI1B:
    .long    _ZTVN10__cxxabiv120__si_class_type_infoE+8
    .long    _ZTS1B
    .long    _ZTI1A
    .weak    _ZTS1B
    .section    .rodata._ZTS1B,"aG",@progbits,_ZTS1B,comdat
    .type    _ZTS1B, @object
    .size    _ZTS1B, 3
_ZTS1B:
    .string    "1B"
    .weak    _ZTI1A
    .section    .rodata._ZTI1A,"aG",@progbits,_ZTI1A,comdat
    .align 4
    .type    _ZTI1A, @object
    .size    _ZTI1A, 8
_ZTI1A:
    .long    _ZTVN10__cxxabiv117__class_type_infoE+8
    .long    _ZTS1A
    .weak    _ZTS1A
    .section    .rodata._ZTS1A,"aG",@progbits,_ZTS1A,comdat
    .type    _ZTS1A, @object
    .size    _ZTS1A, 3
_ZTS1A:
    .string    "1A"
    .weak    _ZTV1A
    .section    .rodata._ZTV1A,"aG",@progbits,_ZTV1A,comdat
    .align 8
    .type    _ZTV1A, @object
    .size    _ZTV1A, 12

/* вот vtbl для A */

_ZTV1A:
    .long    0
    .long    _ZTI1A
    .long    _ZN1A1FEv             /* вот он, адрес A::F() */
    .section    .eh_frame,"a",@progbits
.Lframe1:
    .long    .LECIE1-.LSCIE1
.LSCIE1:
    .long    0x0
    .byte    0x1
    .string    "zP"
    .uleb128 0x1
    .sleb128 -4
    .byte    0x8
    .uleb128 0x5
    .byte    0x0
    .long    __gxx_personality_v0
    .byte    0xc
    .uleb128 0x4
    .uleb128 0x4
    .byte    0x88
    .uleb128 0x1
    .align 4
.LECIE1:
.LSFDE9:
    .long    .LEFDE9-.LASFDE9
.LASFDE9:
    .long    .LASFDE9-.Lframe1
    .long    .LFB4
    .long    .LFE4-.LFB4
    .uleb128 0x0
    .byte    0x4
    .long    .LCFI9-.LFB4
    .byte    0xc
    .uleb128 0x1
    .uleb128 0x0
    .byte    0x9
    .uleb128 0x4
    .uleb128 0x1
    .byte    0x4
    .long    .LCFI10-.LCFI9
    .byte    0xc
    .uleb128 0x4
    .uleb128 0x4
    .byte    0x4
    .long    .LCFI11-.LCFI10
    .byte    0xe
    .uleb128 0x8
    .byte    0x85
    .uleb128 0x2
    .byte    0x4
    .long    .LCFI12-.LCFI11
    .byte    0xd
    .uleb128 0x5
    .byte    0x4
    .long    .LCFI13-.LCFI12
    .byte    0x84
    .uleb128 0x3
    .align 4
.LEFDE9:
    .ident    "GCC: (GNU) 4.1.0 (SUSE Linux)"
    .section    .note.GNU-stack,"",@progbits


Это сообщение отредактировал(а) MAKCim - 2.1.2007, 17:04


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Daevaorn
Дата 2.1.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(MAKCim @  2.1.2007,  18:02 Найти цитируемый пост)
по сути да

Мы говорим не про виртуальные методыsmile Я это сразу уточнил.
PM MAIL WWW   Вверх
nickless
Дата 3.1.2007, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 2
Всего: 181



млин, вы так много холиварите, я аж читать не успеваю  smile  smile 


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Artemios
Дата 3.1.2007, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 10
Всего: 50



Romikgy, 
Цитата(Artemios @  2.1.2007,  14:14 Найти цитируемый пост)
Из всего, что не Дельфи, я выбираю например Python и говорю, что есть многое на свете, друг Горацио, что на Питоне сделать в 5 раз быстрее, проще и красивее, нежели на Дельфи. (в частности ГУИ, работа с БД...)
Цитата(Romikgy @  2.1.2007,  15:54 Найти цитируемый пост)
а вот с БД имхо ты не прав, не будет ни один исходник работающий через байт-код работать быстрее чем откомпилированый, так что при одинаковых условиях приложение будет быстрее работать на Дельфи или С++, нежели на питоне!
Цитата(Artemios @  2.1.2007,  16:18 Найти цитируемый пост)
Имхо, при работе с БД быстрота замеряется уже не скоростью работы исходника, а временем отклика БД.
Цитата(Romikgy @  2.1.2007,  16:34 Найти цитируемый пост)
не только время отклика, хотя и оно важно.

Имхо, разница будет заметна где-нибудь на 50 запросах в секунду.
Ну ладно, здесь основным моментом, на который я упирал, является скорость разработки.
А использование единого интерфейса DB-API 2.0 позволяет произвести переход от одной СУБД к другой заменой всего лишь одной-двух строчек кода... -- это так, к слову сказать...

Цитата(Romikgy @  2.1.2007,  15:54 Найти цитируемый пост)
ни один исходник работающий через байт-код работать быстрее чем откомпилированый

А здесь еще зависит от того, что конкретно в байт-коде сидит, а что реализовано через builtin функции Питона либо через откомпилированные расширения. В builtin находится не так уж и мало: практически все необходимые функции/операции для работы с примитивными типами данных, обработка строк, регулярных выражений, списков и спископодобных структур, множеств, итераторов, генераторов et cetera, et cetera... И может так случится, что код на компилируемом языке соревнуется в скорости не с аналогичным алгоритмом в байт-коде, а с откомпилированными функциями на C плюс их call из байт-кода. 
По поводу же скорости builtin -- разработчики Python-а стараются и от версии к версии он становится только быстрее.



--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
pythonwin
Дата 3.1.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(Beltar @  30.12.2006,  03:53 Найти цитируемый пост)
Я понимаю, что дебильные конструкции вроде

Выделить всёкод C++
1:
    
a+=b;

не согласен! 
представь ситуацию, что имена переменных не "a" или "x", "y", а смысловые и сложные (это очень важно в средних проектах, а больших просто необходимо), типа "zayavka_na_zp_beznal" smile

Цитата(Artemios @  30.12.2006,  13:32 Найти цитируемый пост)
aktuba, то, что я делаю на Python в одну строчку, на Дельфи также займет уйму кода. Это к "не на, а с помощью".

++1 smile
в питоне сильное ФП. 
aktuba, и уважаемые дельфисты, подскажите, пожалуйста, есть ли в DElphi Функциональное программирование? smile
Цитата(nerezus @  30.12.2006,  13:58 Найти цитируемый пост)
Бред, могу даже на твоих же словах показать: ты согласился с примером Artemios, но как может быть куча строк понятнее одной(ну если не считать перлоподобный стиль программирования


если честно, то можно и питоне такую строчку забабахать, что сам потом при каком-то глюке начинаешь её ненавидеть, хотя когда у тебя не одна тысяча строк, то ФП сильно уменьшает код + улучшается читабельность. А код писать лучше писать красивый, хотя не всегда получается. smile

PS а вообще, можно при желании и достаточном времени на любом универсальном языке написать практически всё. Насчет дельфи - этот язык для прикладников и использовать его для написания ОС помоему изврат, хотя если за этот изврат платят деньги...
PM WWW GTalk Jabber   Вверх
nerezus
Дата 3.1.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Пардон, но работа с БД на питоне будет быстрее, чем на делфи.
Причина проста: хранимых процедур на делфи нет ни в одной СУБД, а хранимые процедуры на питоне использовать можно в том же, например, PostgreSQL.

Цитата

ни один исходник работающий через байт-код работать быстрее чем откомпилированый
 Опять бред. Двойной. Ты сам свою речь контролируешь?
1) Сходи в соседние темы, где есть тесты, в которых джава дерет C++.
2) Тем более что ты путаешься в терминологии: байт-код - это результат компиляции.

Добавлено @ 11:22 
Доказательства бредовости:
http://forum.vingrad.ru/topic-24644/view-all.html


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
MAKCim
Дата 3.1.2007, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата

Опять бред. Двойной. Ты сам свою речь контролируешь?

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


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
nerezus
Дата 3.1.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



MAKCim, это в теории.

А вот что на практике: http://forum.vingrad.ru/topic-24644/view-all.html


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Beltar
Дата 3.1.2007, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

не согласен! 
представь ситуацию, что имена переменных не "a" или "x", "y", а смысловые и сложные (это очень важно в средних проектах, а больших просто необходимо), типа "zayavka_na_zp_beznal"


Я намного больше времени трачу на вспоминание мнемотических названий и отладку, что несколько секунд при наборе мне не критичны, зато очень критично, что я могу воспринять a+=b, как a=b.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Artemios
Дата 3.1.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 10
Всего: 50



Цитата(Beltar @  3.1.2007,  17:24 Найти цитируемый пост)
зато очень критично, что я могу воспринять a+=b, как a=b. 

??? smile Индивидуальная особенность восприятия. У меня брат например дальтоник -- это же не значит, что все надо перекрашивать в черное либо белое...


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
W4FhLF
Дата 3.1.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Цитата

Я намного больше времени трачу на вспоминание мнемотических названий и отладку, что несколько секунд при наборе мне не критичны, зато очень критично, что я могу воспринять a+=b, как a=b.


Так а чё вы из этого проблему делаете? Ну не пиши так, пиши a = a + b; 
Ещё можешь написать программу, 10 строк буквально, которая будет заменять подобные конструкции в чужих исходниках на более понятные тебе. 
Хотя я впервые слышу, что для кого-то это такая проблема...

Цитата

MAKCim, это в теории.

А вот что на практике: http://forum.vingrad.ru/topic-24644/view-all.html


А на практике в JAVA и .NET во всю используется JIT, а не учитывая её вы фактически сравниваете натив код, который был транслирован разными компиляторами.


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
nerezus
Дата 3.1.2007, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

а не учитывая её вы фактически сравниваете натив код, который был транслирован разными компиляторами. 
 выходит, что нативный код может проигрывать питоновскому? (VM)
Ссылку не привожу, т.к. мельком глянул - не увидел. Но это из раздела питон на этом форуме.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.