Дельфи - это очень хорошая библиотека (VCL) и худший из популярных ООП-язык(Object Pascal) Основные минусы языка(для меня) - это полное отсутствие механизмов управления временем жизни объектов/памятью и убогий синтаксис указателей, который сильно осложняет работу с динамическими массивами. Еще можно припомнить длинные begin/end и обязательное объявление переменных в начале процедуры. С++.... это просто самый мощный язык с самой плохой библиотекой. Почему-то в универах преподают дельфи, поэтому если взять среднестатестического ламера, который знает только один язык программирования (и тот плохо), то этим языком будет именно дельфи
scf Далеко не всегда, самое большое кол-во багов в ms компиляторе связанно именно с оптимизацией. Я ещё могу понять когда не работает в релизе, а в дебаге работает, но с оптимизацией другое дело.
А почему все принялись обсуждать именно дельфи и си плюс плюс? Почему-то в тени остался популярный в америке бейсик. Ява как-то вскользь упоминулась, хотя ИМХО у неё большое будущее. Кстати, не задумывались, почему М$ выпускает оболочки и для явы, и для сей, и для васика, но обходит вниманием паскаль с дельфёй, в то время, как у борланда с ними любовь на вечные времена?
Ты ошибаешся. Если не изменяет память, ты как-то говорил, что занимаешся веб-разработкой. Там сильно очищается дух человеческий? А еще тут не работает поиск и аттачи - не все то правильно что есть на форуме. Некоторые вобще на дотнете пишут, вот где истинное зло. На делфи можно сделать все, что можно сделать на С/С++. Тем более, я например не особый любитель ООП и мне пофиг там всякие дженерики и множественные наследования... Но на делфи дружественнее синтаксис. В С сплошные шифровки. --i++ извратный синтаксис. Угу, МсРем например? Для меня не составляет проблемы понять исходник практически на любом распространенном языке. Пишу восновном на Делфи, иногда на ассемблере. Просто С не дает мне ничего такого, из за чего нужно выбрать его. ИМХО, каждое выбор имеет причины, лично я не вижу причин писать на С. Это VCL, не самая между прочим плохая ГУИ библиотека. Ты пореверси QT-ные 10-мегабайтные екзешники ) Ну вот например тестовый пример, аналог утилиты bin2db из пакета msam32. Маленькая утилита, написана на Делфи, с графическим интерфейсом, поддержкой параметров коммандной строки. Екзешник весит < 9 кБ. http://slil.ru/26267422 ПС. Плюсы Делфи не в названии (с)
_proteus Известное дело - раздел сфер влияния, МС - Бейсик, Борланд - Пася. Этот раздел произошёл очень давно, когда Си ещё не был в большом почёте. Типо договорились конкуренты, которые предполагали, что эти два языка будут самыми продвигаемыми, а вышло не так -)
K10 Вот например код из начала твоего тестового примера: Code (Text): 0040208A: [...] mov eax,bin2pas.00402064 call bin2pas.0040103C [...] 0040103C: ret )))
K10 Для тебя может так, я же тоже скажу о Дельфи. Кто нас расcудит? А причины почему я перешёл на С++, я тебе скажу: Visual Studio + поддержка М$ + MSDN + DirectX + дефакто стандарт в Unix. У дельфи ниша: БД + VCL(формошлёпство), хотя подпирает .Net.
Clerk Это вызов функции _InitExe. В этой функции размещается инициализация RTL. Т.к. здесь RTL не используется то функция _InitExe выглядит как Code (Text): procedure _InitExe; asm end; что и генерирует соответствующий код
K10 Еслибы после неё небыло вызова кернелапи, я бы подумал что это для определения дельтасмещения. Тут это мусор. А та процедура размером 0x1B6 - ужос.. Но это только пример. Если взять более сложную программу, то это будет хоть и рабочий, но гуанокод.
K10 О! А мне нравится прямо очень. Одна из причин почему пас когдато бросил (дельфой еще и не пахло) как ответ по синтаксису могу предложить ':=' в почти каждой строке. Booster Как бы немного не так было. Когда появилось дельфи - война между бор и мс за лучший С/С++ компилер была в смерть, а реклама с обоих сторон и пропаганда С++ разве только на спичечных коробках не печаталась. Пас стал не модным. Дельфи было ответом на МС ВБ и удачной попыткой реанимировать пас с обжектами 7 (? давно было). Почему МС так любит и продвигает васик и совсем не любит пас, имхо, объясняется только особенностями образования хозяина фирмы. Как относятся сами разрабы васика к нему - видно из качества продукта. Booster С и юних родились у одних отцов, в одном месте и полностью зависели друг от друга. Распросранялись вместе ибо никак. И все оси, что забазировались на юних, те практически все, получили в наследство С и связаность с С. PS Уважаемые товарищи или [гГ]оспода или кореша или пацыки или (впишите сами) пасовцы, напишите пож, краткую инструкцию как в блэкбоксе сделать монолитный ехе-шник с только моей прогой и, желательно, без дефолтного мэйн окна, но с моим изначально шовнутым диалогом. Ато по стандартной инструкции у меня не выходит (выкидывает окно в сеточку и в логе ошибку), а без этого применибельность бб под вопросом. А ведь он 1000 очков вперед делфям дает. внедорожники. Подходящих серийно не выпускается. Брюнетки, но не усатые и умеющие держать себя в руках (но не циклящиеся на этом). лимбо
Clerk Я же написал, что это вызов _InitExe, после чего идет код, в begin...end. Т.е. Code (Text): begin // Здесь вызывается _InitExe hInstance:=GetModuleHandle(nil); // Вызов "кернелапи"(что это?) ... end. Что соверешенно прозрачно компилируется в Code (Text): 004020A3 |. E8 94EFFFFF CALL bin2pas.0040103C 004020A8 |. 6A 00 PUSH 0 ; /pModule = NULL 004020AA |. E8 E5EFFFFF CALL <JMP.&kernel32.GetModuleHandleA> ; \GetModuleHandleA 004020AF |. A3 0C404000 MOV DWORD PTR DS:[40400C],EAX И чем тебе не понравилась процедура "размером 0x1B6"? Обьясни тогда мне бестолковому, что есть гуанокод? Аргументы типа "это можно на fasm написать гораздо лучше" не принимаются...
Сразу видно - человек не имеет представления о предмете, а пересказывает чьи-то слова. Это популярное заблуждение, что Дельфи(Паскаль) не подерживает адресную арифметику с указателями. Работа с указателями ничуть не сложнее чем в С.
Точнее, задумывалось как его убийца (VB Killer) - Front-End для баз Oracle (отсюда и выбор названия - от дельфийского оракула). Не знаю, как _оно_ выглядит "в натуре", но несколько сот отреверсированных дельфийских .EXE/.DLL выработали стойкий рвотный рефлекс на это слово.
За год коданья на Делфе я отупел окончательно. Эти бесконечные begin end и уж самое бесящее := Вместо набивания алгоритма я постоянно занимался поиском компонент подходящих к задаче и их прикручиванием, а особенно разборками почему они не встают в иде чтобы можно было их использовать. Причем дирик постоянно занимался тем же самым и при этом мнил себя крутым кодером. Так что, я рад что бросил это гуано. Васм для низкоуровненго программирования. С,С++ можно тоже тут обсуждать, но вот Делфями портить этот ресурс не нужно.