PDA

Просмотр полной версии : Почему Delphi лучше?



Anticler
10.06.2007, 18:35
Все говорят, что Delphi лучше таких систем как FoxPro и C++.
В чём же приимущества у Delphi?

Лелик_1044
10.06.2007, 19:24
В visula c++ ты пишешь сам
А тут ка бы компоненты кидай и готовая программа.

Но минус размер

Duncon
10.06.2007, 21:20
Но минус размер

Ты о чем - о кривых руках???

SergeyS
13.06.2007, 05:27
Anticler, а почему ты спрашиваешь? Какую цель преследуешь?

Лелик_1044
13.06.2007, 10:15
Ты о чем - о кривых руках???

Не совсем понял

Duncon
14.06.2007, 14:57
Подрастешь поймешь..

А цель разжигание очередной перепалке, что круче С или Delphi

BBB
14.06.2007, 15:15
В visula c++ ты пишешь сам
А тут как бы компоненты кидай и готовая программа.При использовании MFC в общем-то тоже "как бы компоненты кидай и готовая программа" :)

Anticler
14.06.2007, 16:32
Почему никто не работает на FoxPro, ведь обьектно-ориентированный и синтаксис похожий.

PS: Смысл не в том чтобы опустить делфи, а понять достоинства и недостатки других сред.

PS2: Сам работаю в делфи.

SergeyS
15.06.2007, 04:30
Почему никто не работает на FoxPro, ведь обьектно-ориентированный и синтаксис похожий.
FoxPro хорош но он под DOS
Visual FoxPro хорош только до 3-й версии - далее сплошной глюк, постоянные утечки памяти, но если не пользоваться всей мощью предложенной в последних версиях и оставаться на уровне FoxPro 2.6, то можно писать вполне приличные программы, сам на нем очень долго кодил.
Мне в FoxPro не нравится то, что он не является строго типизированным языком (а для меня это очень важно)
И для работы с WinAPI FoxPro не очень хорошо заточен, работать можно но через одно место

Arbis
05.08.2008, 21:14
Работаю в Turbo C++. Для Delphi в форумах можно найти больше информации...

Vasilisk
05.08.2008, 22:49
Подрастешь поймешь..

А цель разжигание очередной перепалке, что круче С или Delphi

Совсем озверел Чёрный Абдулла...

heisnod
25.11.2008, 13:54
В дельфи начинающему относительно проще разобраться чем в Си. Вообщем-то и вся разница.

Naeel Maqsudov
27.11.2008, 17:22
Тема ереезжает во флейм.
И вот по этому поводу моё IMCO.
(Чтобы некоторые не путали теплое с мягким)

Среда разработки Delphi использует красивый алгоритмический язык Object Pascal.
Pascal вообще язык, чтобы учить людей программированию. Но объективно, это не является преимуществом.
Среда разработки Delphi содержит VCL, разработанную Borland и очень сильно облегчающую процесс разработки GUI. Это, объективно, тоже не является ее достоинством (кое-кто считает это даже недостатком :)), и вообще не обязательно пользоваться VCL (можно как и на C обойтись только функциями WinAPI, не используя MFC)

ИТОГ ПЕРВЫЙ: VC= C + MFC, Delphi=ObjectPascal+VCL,
но и там и там можно не пользоваться готовыми компонентами!

C++ как алгоритмический язык ничуть не лучше и не хуже чем Pascal. Более того, с точки зрения алгоритмических возможностей и VB также примерно им равен. Т.е. у всех трех есть ветвления, циклы, подпрограммы, модульность.
Если нам нужны возможности ООП, то VB конечно отстает от этих двух окончательно, а и Object Pascal и C++ в равной степени обеспечивают работу с классми без серьезных фундаментальных отличий.

C++ более лаконичен и его синтаксис является основой для множества других языков, например JScript. В этой связи конечно рациональнее знать C. Но Pascal красивее.

ИТОГ ВТОРОЙ: и там и там можно делать все то же самое, кстати, и там и там есть встоенный ассемблер. Выбирайте что хотите: кому красиво, кому лаконично.

Все.

(FOXPRO был упомянут топик-стартером тут вообще не к месту.)

Поищите в инете рассказ о языках программирования, написанный в стиле библии:
Там было что-то типа:

В начале было слово, и слово было 2 байта. Потом бог создал программы. Потом юзеров, чтобы владычествовали над программами. Потом юзеры вкусили от дерева познания (там видимо росли автокоды и ассемблеры) и решили сами писать программы (на автокодах). Решили написать искусственый интеллект и быть как бог. Тогда бог смешал языки. И перестали программисты понимать друг друга. И только и спорят с тех пор какой язык лучше. А вавилонская башня так и стоит недостроенная!

Voortex
07.12.2008, 21:09
А я на C++ еще не работал, но препод говорит что C++ Лучше, на нем все программы создаются.
А для меня пока Delphi устраивает, я на нем тоже много чего нормального написал для себя, вроде ни чем не хуже. Да и дельфи мне кажется больше идет к развитию чем С++

Duncon
07.12.2008, 23:11
Препод видимо тоже подвержен влиянию.
На Delphi тоже создаются нехилые программулины.

Это вопрос выбора, нормальному программеру побарабану в чём кодить (в чём больше нравится.)

про C++ следует почитать данную статью
http://www.steps3d.narod.ru/tutorials/c-minus-minus.html
Это перевод статьи одного заграничного дядъки, по отзывам сведающих людей дядъка довольно крут, на предидущих холиварах кто-то ныл на некоторые места думаю стоит грешить на перевод, статья довольно старая.

somewhere
08.12.2008, 12:26
Все-таки с детства мозг человека адаптируют для восприятия слов целиком, а не последовательного набора символов.


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

Язык С мне представляется набором символов, причем в отличие от остальных слов здесь имеет значение порядок символов. Пропуск одного знака может привести к фатальной ошибке, при том что компиляция произойдет успешно. В то же время конструкции циклов, математические операции, сдвиги и конкатенации не сразу бросаются в глаза. Возможно имеено поэтому я и не стал изучать С дальше, т.к. разобраться в чужом, даже простом коде, по первости почти невозможно.
Но и у Pascal есть большие на мой взгляд недостатки. По части поинтеров - их нельзя просто складывать, что весьма и весьма полезно. К тому сами операции с поинтерами и данными, на которые указывают - реализованы довольно криво.
Добавлю к мнению Duncon, что издавна существует заблуждение, что "крутые программеры кодят на С". Возможно раньше это и было так, в силу слабых возможностей других языков. С был нечто средним между Assembler'ом и Pascal'ем, по скорости и размеру кода уступал первому, но качественно выигрывал у второго.
Сейчас ситуация совершенно другая и на самом деле уже нет разницы на чем писать - главное чтобы работало. За байты кода и такты процессора все равно уже никто не дерется. Делается упор на скорость разработки программ, километры кода сведены к вызову одной функции из DLL, найти грань различия между каким либо языком можно только в синтаксисе. Если речь идет о разработке GUI - то вопрос что лучше просто не имеет смысла, если о читаемости кода - то имхо Delphi или VB, если о скорости работы - однозначно Assembler. Возможны комбинации. Мое мнение - выбор языка программирования зависит от вкусов каждого, который не влияет на качество разрабатываемых программ при условии наличия головы и нормальных рук у программиста.

Duncon
08.12.2008, 13:27
Не согласен про поинтеры, всё вполне удобно, по крайней мере меня в тупик или к какомо-то явному неудобству это не приводит.

Про Assembler скажу только одно встроенный компилятор сред зачастую выдаёт более оптимальный код нежели набраный кодером и это факт, опять же уметь нужно кодить чтоб этого не происходило.

И по скорости работы существует множество расхождений, некоторые результаты тестирования однозначно куплены, иные же упираются в то что - дурак в Delphi но Сишник или наоборот, пишет тесты на обоих языках,, и всё же объективно Delphi надерает C++ и местами наоборот...

WinMain
08.12.2008, 14:25
На самом деле, средства быстрой разработки приложений (RAD), к которым и относится Delphi, а так же Visual Basic выигрывают лишь за счёт технологии визуальной связки имеющихся компонентов. Обширная палитра готовых компонентов, мощная библиотека классов VCL и хороший набор визуальных инструментов делают эту среду разработки столь популярной. Убери из неё эти три составляющие и Dephi, как среда разработки, потеряет всякую ценность. А сам язык программирования Object Pascal вряд ли можно всерьёз рассматривать как основное средство программирования сложных масштабируемых приложений для Windows. В то же время, при разработке Windows-приложений в среде Visual C++ можно вполне обходиться и без платформы MFC. Понятно, что при этом трудозатраты на разработку приложения увеличатся, но это в целом не смертельно для проекта. Если же в Delphi попытаться реализовать более-менее сложный проект без использования VCL, то это приложение может вообще никогда не появиться на свет, а умереть ещё на стадии проектирования.

Duncon
09.12.2008, 10:52
Бред, мы без vcl пишем довольно нехилые штуки..
Ну или давай скажи - что я не смогу написать, того что сможет сишник?

somewhere
09.12.2008, 10:53
иные же упираются в то что - дурак в Delphi но Сишник или наоборот
И это на самом деле так, только там где я работал приходилось делать еще и на VB.

Про Assembler скажу только одно встроенный компилятор сред зачастую выдаёт более оптимальный код нежели набраный кодером и это факт, опять же уметь нужно кодить чтоб этого не происходило.
Не разу такого не замечал. Единственный плюс - автоматическое выравнивание по 16 байтам, не нужно считать байты занимаемые командами. В остальном компилятор не одну операцию избыточной не посчитал, так же как и их порядок.

Не согласен про поинтеры, всё вполне удобно, по крайней мере меня в тупик или к какомо-то явному неудобству это не приводит.
Ну не знаю, часты случаи в практике, когда нужно


p := p + varInt32;

Вместо этого пишу:


p := Pointer(Integer(p) + varInt32);

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

выигрывают лишь за счёт технологии визуальной связки имеющихся компонентов
Не, это понятно, собственно один из принципов быстрой разработки - использование готового кода для разных задач.
Если же в Delphi попытаться реализовать более-менее сложный проект без использования VCL, то это приложение может вообще никогда не появиться на свет, а умереть ещё на стадии проектирования.
Почему же? правила написания кода задает сам кодер, можно использовать обвязку WinAPI - только вот это опять шаг назад, в те времена когда вручную описывалось почти все, и, тем не менее существовал код, не зависящий от ОС.

Duncon
09.12.2008, 12:51
Не очень то удобно. На асм вообще сводится к одной команде, в отличие от копилятора, который генерит кажется 4. А если таких операций много? Бывает что просто забиваю на это и всю процедуру или функцию делаю на асм.

Тем неменее удобно неуобно - выполнимо.
У меня были случаи когда проводил сравнения 1 команда на асме работала дольше нежели 4 других на асме! хотя по логике бред..

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

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

pWord : ^word;
Inc (pWord);

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

word * pWord;
pWord += 1;

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

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

WinMain
10.12.2008, 01:02
Бред, мы без vcl пишем довольно нехилые штуки..
Ну или давай скажи - что я не смогу написать, того что сможет сишник?

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

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

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

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

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

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

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

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

atavin-ta
03.02.2009, 11:47
Вовсе не бред, а нормальная ситуация. Длительность каждой команды (а точнее группы команд определенного вида) различна + задержки на занятость шины данных если операнд в памяти + задержки на выборку команды из кеша 1-го уровня и его обновление, если команда не выровнена по границам параграфа. А если брать в расчет многоконвеерное АЛУ, то..... Вообщем факторов достаточно много, на мой взгляд это настоящее искусство и отдельное направление в программировании - оптимизация кода.
Дле часто вообще не в этом, а втом, что разные команды по самомой их реализации трбеют разного числа тактов. Знаю комп у которого дже если не считать реперы, разница между разными документированными командами достиагет 5,5 (по справочнику).

Duncon
03.02.2009, 15:32
Имхо бред перезагрузка операторов стала доступна сразу после 7 версии если не вру (толи с 2005 толи с 2006 версии).

зы Если ты чего-то не знаешь и не можешь это всего лишь характеристика плохого программиста, но не того что язык говно.

atavin-ta
08.04.2009, 11:36
Имхо бред перезагрузка операторов стала доступна сразу после 7 версии если не вру (толи с 2005 толи с 2006 версии).
Я таких версий вообще не видал. Кроме того, я не хочу писать для .net, так как .net проги, насколько мне известно, интерпретируются с байткода, а интерпретация уступает компиляции в скорости исполнения. У меня был комп со встроенным интерпретатором байткода. Так вот, байтпроги работали примерно в 36 раз медленне исполяемых, компилированных с тогоже исходника. Если слишком многие не знают или не могут предельно простого, то язык говно. Все програмеры, знающие c++, могут на нём писать проги с перегрузкой операторов, но я не знаю никого, кто бы мог писать такие проги в delphi. Язык может какую-то возможность предусматривать, но если её мало кто может использовать, значит она в этом языке слишком сложна, тогда лучше тот язык, на котором та же возможность проще.

Duncon
08.04.2009, 12:17
>>Я таких версий вообще не видал.
http://www.delphi2009.ru/ (осторожно 2009 юникод)

.Net каким-то образом подшита для чего-то, но с exe всё впорядке .net для запуска не требуется..

>>Если слишком многие не знают или не могут предельно простого, то язык говно.
Я ты дал определение быдлокодера только что.. Видимо их действительно большинство, мой круг программеров об этом знает ещё с момента выхода.

ps А ещё есть Free Pascal, ребята его специально написали для того чтоб рвать C++ по скорости во всех местах :)

atavin-ta
26.10.2009, 10:36
не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве, галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм.
Это, смотря кто читает. Если комп, то проблемы будут. А человеку пофиг даже как текст расположен: нормально или перевёрнут - прочитать можно.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------

лишь за счёт технологии визуальной связки имеющихся компонентов
Не согласен. Я, например, предпочитаю текстовую разработку и в той же делфе часто создаю объекты и размещаю их в объектах-контйнерах не с визуальной среды, а с кода. Время разработки всегда сокращается. Кто не согласен, попробуйте с визуала накидать четыреста объектов пяти разных типов и ещё выровнять их. Сколько на это нужно времени? Мне с кода - меньше десяти минут. А так, как у меня ещё проблемы одновременно со зрением и с координацией, то с визуала у меня же это займёт год даже при использовании команд визуала для автовыравнивания. У вас, возможно, много быстрее, но от кода отстанете. При этом я знаю и плюсплюс. И для одних задач предпочитаю делфу, а для других - плюсплюс. Кстати, в плюсплюсе есть болендовский интерпрайз - так это точно такой же визуал. Но я его юзю для воще третьих задач и тоже кидаю компоненты с кода. На вижелбейсике же вообще не поянтно, что ещё можно делать, кроме как кидать готовые компоненты вообще без обработчиков, чем он и проигрывает, так как без самостоятельной разработки кода с текста вообще нельзя сделать ничего толкового и хоть куда нибудь годного.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------

Вовсе не бред, а нормальная ситуация. Длительность каждой команды (а точнее группы команд определенного вида) различна + задержки на занятость шины данных если операнд в памяти + задержки на выборку команды из кеша 1-го уровня и его обновление, если команда не выровнена по границам параграфа. А если брать в расчет многоконвеерное АЛУ, то..... Вообщем факторов достаточно много, на мой взгляд это настоящее искусство и отдельное направление в программировании - оптимизация кода.
Знаю комп у которого вообще нет конвейеров, + синхронная оперативка, + кэшей нет за ненадобностью , но одна команда может выполняться дольше, чем одиннацать. Это по неблочным командам. А для блочных команд толко долгое исполнение - норма, а быстрое - анамалия. Но они и делают больше.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------

осторожно 2009 юникод
Я понимаю "осторожно ansi", но уникод? Раньше была куча проблем, для решения которых надо было каждый раз точно знать кодировку, а уникод решает их сам.

Duncon
26.10.2009, 12:20
Программировать нужно подругому некоторые места - поэтому осторожно уникод.
Тем временем вышла Delphi 2010 с кучей наворотов. Сишники а как у вас с тачскринами? И вообще когда последний раз C++ выходил (мне интересно не слежу за сями последние годы)

atavin-ta
26.10.2009, 12:25
2006 точно есть. Позже не знаю.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------

тачскринами
Что это вообще такое? И зачем нужно? Если ты потратишь страницу на ответы, на второй вопрос, то тем самым докажешь примущества тех языков, где этого не только нет, но и никогда не будет. А если заметно короче - то плюс делфей.

Anticler
28.10.2009, 00:20
Ха, даже смешно стало:D.

А вы уверены что тема еще актуальна? :D:D:D Уже столько лет прошло, этот топик сдесь явно залежался. Я кстати его написал когда начинал диплом делать на Delphi.

Да я бы на него и не зашел бы, еслиб на почту письмо не отправили о новых сообщениях с форума.