Вообще спор программистов на Delphi/Visual Basic и C++ можно отнести к разряду споров физиков и лириков. Но все таки в стороне оставаться не хочется, поэтому выскажу свое мнение.
При определении языка программирования, на котором будет разрабатываться приложение, следует прежде всего исходить из характеристик задачи.
С++
Если требуется обеспечить хорошую скорость работы приложения и экономию ресурсов памяти и процессора традиционно считается, что лучше использовать C++. Однако, в последнее время разница в скорости работы программ, собранных различными компиляторами, становится все менее и менее заметной. Почему? Потому что большинство сред разработки имеет встроенный конвертор кода в ассемблер, а он – как ни крути самый быстрый. Delphi 2007 например имеет опцию работы компилятора {$PUREPASCAL}. Когда она включена – компилятор компилирует классический паскалевский код, когда выключена – используются функции и процедуры, написанные в ассемблере. По умолчанию, кстати, она выключена.
Единственное приемущество C++ – мощная модель работы с указателями. В общем случае это очень полезно, так как переменные в памяти не дублируются. Но, если проект сложный – всегда приводит к ошибками доступа к памяти.
В качестве очевидного приемущества C++ зачастую называют его модел работы с классами и шаблонами. Но, имхо, весь функционал C++ реализуем и в любом другом языке программирования. Да, в С++ можно например переопределить действие операторов + – / *, правда зачем, можно просто написать доп. функцию. Что же касается шаблонов функций и процедур С++, которые очень часто ставятся в достоинство – на это в Delphi есть вариантные типы. То есть мы просто не указываем тип переменной в Delphi, по сути – та же шаблонная функция.
Delphi
Противоположный случай – когда требуется разработать ПО в максимально сжатые сроки и обеспечить хороший рефакторинг (читабельность, модифицируемость, удобство и оптимизацию) кода приложения. Тут Delphi просто нет равных. Код хорошо структурируется, названия всех функций по сути есть сокращения английских слов (IntToStr – целое в строку; Now – возвращает дату и время сейчас; UpperCase – приводит к верхнему регистру и тд), хорошая модульность и видимость кода – все это способствует скорости разработки, а также позволяет производить ее в командном режиме более эффективно.
Еще одно очевидное приемущество Delphi – компоненты, число которых исчисляется миллионами. В Delphi есть возможность скомпилировать участок кода и предоставить его в свободное пользование как компонент. Что получается? Гигантское количество энтузиастов и организаций предоставляют в свободное пользование готовые решения. Хочешь фтп клиент? Нет вопросов – скачал компонент, кинул на форму и вуаля! Дело 2ух кликов.
Более того, большое комьюнити Delphi кодеров (в котором больше непрофессионалов в силу легкости языка) порождает в интернете большое количество справочной информации в самых разных областях программирования.
Итак, подведем итоги:
| Характеристика | С++ | Delphi |
|---|---|---|
| Сложность изучения | большая (-) | маленькая (+) |
| Количество специалистов-профессионалов | много (+) | мало (-) |
| Восприятие кода | плохое (-) | хорошее (+) |
| Рефакторинг | средний (+-) | хороший (+) |
| Скорость работы приложения | отличная (++) | хорошая (+) |
| Скорость разработки решения | маленькая (-) | очень высокая (++) |
| Наличие документации | много (+) | MSDN не содержит примеров кода на pascal (+-) |
| Необходимость в будущем, ввиду конкуренции с языками C#,VB, Java | маленькая (–) | средняя (-) |
| Итого | 5+/5- | 7+/3- |
автор не знает смысл термина рефакторинг?
по сводной таблице –
сложность изучения – субъективный фактор, язык С++ сложный, но он отражает сложность задач, которые можно решить с помощью него.
Кол-во специалистов – откуда данные? кол-во специалистов не зависит от языка.
Восприятие кода – субъективный критерий. На С++ можно писать очень выразительный код.
Рефакторинг – процесс реорганизации кода – не имеет никакого отношения к языку.
Скорость разработки решения – Какого решения? формочки клепать?
Необходимость в будущем, – полный бред – С++ промышленный язык, который обладает таким свойством как мультипарадигмность, т.е. на нём можно пистаь в любом стиле. Хоть в стиле delphi, java и др. Говорить о том что С++ в будущем умрёт (или не пригодится) это признак чудлвищной некомпетентости.
Вывод: автор абсолютно некомпетентен в данном вопросе.
>кол-во специалистов не зависит от языка.
Я не говорю о количестве людей которые программируют, а именно о специалистах. О тех, кто действительно понимает, какой будет скомпилированный код в случае написания тех или иных операторов. Большинство С++ программисов профессионалы. Работать иначе с этим языком нельзя. На Делфи можно клепать код не задумываясь – он сам разберется. И пофиг, что у тебя где-то 20мб строка в памяти продублируется. Пофиг, что процесс выделения памяти под массив будет произведен столько раз, сколько итераций в цикле. Мало кто понимает эти тонкости. Поэтому, профи, которые реально могут подсказать граммотный код, а не кинуть ссылку на компонент – мало.
Рефакторинг неотъемлемая часть любого крупного проекта. Чем больше он растет, тем больше приходится «реорганизовывать код». За счет восприятия и встроенных средств автоматизации в Делфи это сделать намного легче.
С++ промышленный язык. Однако он плохо живет в технологиях типа .Net. Попробуй написать ASP.NET приложение на C++. В студии по-моему даже такой опции нет. В свете активного пиара C# и Java, я думаю количество пользователей C++ резко сократится.
Восприятие кода – можно писать, да. Только посмотри на большинство сорцов открытых программ. Очень выразительно? В Делфи по-другому просто не получится. Слишком формальный язык.
Решение – это термин такой;) Нет не формочки клепать. Дело в библиотеках. Нативных библиотек в Делфи намного больше. Сам язык Делфи если говорить кухонным языком, более высокого уровня, чем С++. Можно конечно спустится и до уровня С++, выделять самому память под переменные, освобождать ее. Но зачем? Все автоматизированно. Нужно просто понимать, как это будет делать компилятор и не создавать ему трудностей.
Супер полезная вещь, спасибо!!!
Я практически соглачен со всем. Но в руках разработчика Delphi больше иструментов работы с памятью, как было упомянуто, нетипизированный указатель, к примеру. И согласен, что надо понимать как интерпритирует компилятор ваш код, ведь Delphi повсеместно скрыто пользуется димамической памятью (умалчивание ^). Непонимание этого может вызывать недовольство, какие-то нелепые обвинения.
Delphi в структуре языка позволяет избегать скрытых ошибок.
Я бы сказал, что С++ в использовании нагляднее, так как там все в коде, а понять delphi иногда сложно. К примеру: a:=b. Если это стековые типы то пройдет копирование значения, в противном случе скопируется указатели, даже для обычного массива. При правильном понимании того, что закладывали разработчики Delphi становиться немного более гибким.
Да, в 2009 Delphi реализует использование шаблона, жаль что он такой дорогой.
а вот скажите мне господа любезные реально ли на дельфе всякую гадость писать???
Delphi очень эффективный язык. Он очень высокого уровня. При этом он позволяет и писать код низкоуровневый – работа с памятью, ручное выделение и размещение. С точки зрения разработки бизнес-приложений практически идеален. Но если вы решили написать какой-нить драйвер – тут уж увольте, он не предназначен для этого.
Хорошая статья. Насчет гадости – можно писать, после тэга «asm»
Блин, как хорошо, что для комментов не надо регистрироваться.
Я, признаться честно, смеялся. Мне, кажется, здесь после каждой строки надо ставить ИМХО, вы на личном опыте все это базировали? Описание делфи вообще на рекламу похоже, как говаривал наш декан: «мне не нужна реклама, где технологии?». Вы в С++ IntToStr не встречали? Те же LowerCase и UpperCase, по-моему, вообще еще с С пришли, с чистого. Читабельность? Какой там. Покажите домашнему пользователю код на делфи, он упадет. А программист и так все поймет, по-моему. Там ничего сверхестественного нет. Структуры почти идентичны. Вы считаете, что число компонентов для С++ меньше? Навряд ли. Builder’ом не пользовались? да и для визуала, вроде, сторонних, но достаточно.
«Только посмотри на большинство сорцов открытых программ.» мне дельфятник хвастался, что код ядра Линуха на Си читается очень легко и понятно. Видимо дело в квалификации.
«И пофиг, что у тебя где-то 20мб строка в памяти продублируется.»
Ну и что вы тогда за программист, если пофиг на 20 потерянных метров? Впустую!!!! Большие приложения писать не пробовали? если на каждую строку выделять лишние 20 мб… Как скоро память ваша заскрипит?
«Дело 2ух кликов» – вот, уже началось. Программисты начали кликами сложность измерять. Писать уже не то? Не кошерно? Конечно, когда все уже сделано, зачем. Тогда технологий вы знать не будете и цена вам, как программисту – грошь!
«Вывод: автор абсолютно некомпетентен в данном вопросе.» +1
“И пофиг, что у тебя где-то 20мб строка в памяти продублируется.”
kk, Вы сарказм от чистой воды не отличаете)
Лично сам пишу и на C++ и на Delphi и теперь уже на C# приходится. Однако ничто еще не отбило у меняя уверенности в том что Delphi самый производительный язык. Лично мой флагманский софт имеет 120 000 строчек кода. По моему не плохой результат?
А насчет технологий вы не правы. Всегда можно воспользоваться встроенными в компилятор возможностями и всегда можно написать тоже самое самому, а не искать реализацию в справочной системе. И правильный ход – именно кликать мышкой и использовать встроенное. Почему? Потому что время – деньги, а свое решение еще отлаживать надо будет.
>>Да, в С++ можно например переопределить действие операторов + – / *, правда зачем,
в новой делфи тоже можно:)
>>Нет вопросов – скачал компонент, кинул на форму и вуаля!
Оно хорошо, что не нужно велосипед изобретать… Но, отчасти, из-за таких заявлений, делфийстов обзывают «кнопко-кидателями», и по умолчанию на делфиста все остальные реагируют негативно.
>>“Почему Delphi лучше C++”
имхо, на сегодняшний день сравнение C++ и делфи не актуально. Эти продукты занимают абсолютно разные доли рынка (по крайней мере у нас). Давайте уже сравнивать Delphi и C#. И не нужно говорить, что разные платформы:
а) Майкрософт из штанов выпрыгнет, чтобы .NET на каждом компьютере стоял
б) для промышленного софта установить фреймворк не проблема
Я сам делфист, но давайте смотреть правде в глаза. Все лучшие умы сбегают в майкрософт. Первым был Андерс Хейлсберг (надеюсь имя в комментариях не нуждается), недавно Алексей Ковязин перешел. Кто следующий?
>>время – деньги, а свое решение еще отлаживать надо будет
согласен
Я так понял, Krolm, что все остальные мои замечания к статье, кои вы оставили без внимания, имеют место быть.
Гм, 20мб – сарказм да? А я действительно не понял. Может тогда вся статья – большая шутка?
Согласен, время – деньги, кнопки кидать – быстрее и эффективнее, если знаешь, конечно, что делаешь. Дык, чем тогда Borland Builder C++ не мил? Почти то же, только язык другой.
>>»Delphi очень эффективный язык. Он очень высокого уровня»
это как? это теперь есть низкоуровневые языки, высокоуровневые и очень выскокоуровневые? ))
ни из статьи, ни из ваших комментов я так и не понял, что же такого «замечательного-занимательного» в Делфи и почему таки, он «лучше С++».
Если так и есть, обосновывайте свои высказывания фактами, если нет – не надо так провакоционно называть статьи. Тогда уж, «Мне больше нравится Делфи, потому что…». Правильнее поймут. А сводные таблички, со СВОИМ видением будущего – полная фигня. Откуда данные – не понятно.
Delphi, C++,.,.,.,.,.,.,.,..
Не раз говорилось – лучше тот язык, который в данном случае больше подходит. Delphi – БД, С++ – системный софт.
А хотите чушь – http://lurkmore.ru/Быдлокодер
kk, ты сам прекрасно понимаешь что между одной крайностью и другой всегда есть какие-то промежуточные значения. Правильно заметил and88, сейчас более логично сравнить Delphi и C# и на данный момент у меня уже есть опыт чтобы это сделать. На мой взгляд это приблизительно один уровень. Не даром C# проектировал создатель Delphi. НО, C# при своем огромном функционале еще очень сырой. Видно, что его разрабатывали очень большая группа разработчиков. Таким образом, одинаково названные поля в разных классах могут имет совершенно разную функциональность и назначение – ждешь одного значения, а получаешь другое. Очень часто не работают примеры с MSDN. Скопированный код зачастую просто не выдает результата. Иногда в подсказке к какой-нибудь процедуре можно прочитать что-то вроде «Если файл настроек для программы не найдет возникает исключение». Используешь функцию, файла настроек нет но и исключения никакого не возникает, при этом указатель на объект существует (не нулл) как будто все хорошо и единственный способ узнать что все плохо – обратиться к какому-нибудь полю объекта. Зачастую в одном и том же пространстве имен есть несколько классов реализующих один и тот же функционал. Тоже не понятно зачем.
Подводя итог от 2 месяцев разработки на C# – 90% времени уходит на поиск информации на тему почему «просто не работает». И зачастую найденная информация представляет собой код реализации того же самого «через жопу» но зато с нормальным результатом (пример – очистка куков на сервере – вместо функции удаления, нужно создать новый кук с датой, которая уже прошла).
kk, а ты писал на Delphi или C#?
Думаю что нет. Потому что если бы писал, то знал, что например в C# и Delphi вообще не нужно заботиться о разнице между экземпляром переменной и указателем на нее в куче, компилятор сам решит что больше подходит (впрочем есть и вариант указать все явно). В C# вообще не нужно заботиться об уничтожении экземпляров классов – GarbageCollector сам решит когда это надо сделать и сделает это правильно – никаких утечек памяти. В Delphi такого мощного механизма нет, но например для string все делается автоматически (кстати реализация string в Delphi намного лучше C#, В C# такую же функуиональность имеет лишь геморный класс StringBuilder). Поверь, очень часто то, что в Delphi делается 4 строчками, в C# – 2умя, на С++ требует 20 и еще при этом знания определенных тонкостей.
А как вы ответите на то, что delphi был включен в так называемый список «12 языков программирования, которые потрясли мир» ?
В этой статье delphi умер, когда вышел в свет VB 6, оказывается delphi – это «паскализированный VB». Короче говоря, согласно статье, delphi давно умер.
ссылка на статью – http://blog.progopedia.ru/?p=10
Одно знаю точно – грамотных программистов на Delphi раз два и обчелся. Да язык умирает постепенно. Там не хватает многих технологий. И хотя .NET вдохнул в Делфи некоторую жизнь – скрещивание нельзя назвать удачным. Уж слишком разные платформы. VB и Delphi считаю несравнимыми, описал в комментах к указанной выше статье.
Уважаемые друзья, коллеги, программисты. Не стоит спорить по поводу того, какой язык круче, проще или «самый крутой», это глупо. Каждый сам решает поставленные перед ним задачи своим собственным путём.
Но одно я знаю точно – Delphi не умер. В октябре 2009 планируется выход Delphi 2009 и нового Delphi for PHP! Вот тогда и разберёмся кто из нас холоп.
Программирую на Borland Delphi 6,7,2010, Builder C++ 6,2010, Visual C# 2008, PHP.
Считаю статью немного неправельной.
Почему стоит изучать С++ а не Паскаль, если стоит выбор между ними:
1. С++ стандарт, и поэтому несоставит труда разобраться в Java, PHP, C#.
2. Зная С++ можно выбирать между Visual C++ и Builder C++ взависимости от поставленной задачи (ненадо знать 2 языка).
3. На мой взгляд неудобно обьявлять в паскале в начале функции переменные.
4. Работал с разными технологическими языками где синтаксис С++, а вот Паскаль невстречался.
Да, а ещё TheBat на дельфи, а ещё Total commader на дельфи.. (по крайней мере изначально были на нем написаны), а ещё… по статистике 60% софта под win32 написаны на Visual Basic и он что-то не спешит умирать
(хотя, пора бы уже, ИМХО
)
Вопрос сугубо в том, что появляется куча всяких языков и их всё больше и больше! Про всяких там Python, Ruby и C# в моё время ещё и мысле небыло…
С другой стороны, ещё компиляторы фортран и ада выпускаются, значит их тоже кто-то использует?
Язык не может умереть на ровном месте! Тем более, если выпустят кросс платформенный Delphi (Win-Mac-Lin) – я думаю он ещё доолго после этого будет жить!
На счёт перспективности… Вполне нормальная реакция Microsoft на Linux – выпустить RAD, выпустить платформу, пересодить на неё как можно больше народу! И тогда все будут дальше «кушать» windows, особенно корпоративные клиенты, а значит и обычным программерам не отвязаться от винды! Это вполне логично, на мой взгляд.
Вообще, я думаю чем меньше всяких языков-заточек тем меньше проблем. Не 1 десяток лет люди пользовали Си и С++, тот же паскаль и бейсик и проблем не знали! Я думаю, что Си хватило бы и для Web-разработок, и для Системных и для 90% остальных!
P.S. DELPHI НЕ УМИРАЕТ! Он просто постепенно тонет в куче дерьма в виде разнообразных языков, в создании которых небыло никакой реальной необходимости!
————————————————–
А ещё Microsoft выпустила Small Basic (или как там его) для обучения программированию людей вообще с ним не знакомых и даже детей! Как Вы думаете, зачем?..
Появление платформы .net не более чем шаг к тому, что новые «программисты» будут приучаться к тому, что за них уже всё сделали! Т.е. думать мозгами уже почти не нужно… А если нет компонента – всё, паника… КРИЗИС! И это хреново…
Лично я вообще не понимаю нахрена нам виндовс 7? Для 95% рабочих процессов вполне хватает ХР, и если отбросить тот факт, что на крутых компьютерах под вин7 круче идут игры – из всех его мнимых достоинств останется только пожирание системных ресурсов и «рюшки»!
P.P.S. Пользуюсь лицензионной XP Vista и Линукс (Vista с машиной в комплекте шла). После часа шаманства с линуксом = те же рюшки что и в Vista/Win7, только не 1,5Гб «отъеденой» оперативки, а 200-300Мб, никаких тормозов и стабильная работа всей системы.
P.P.P.S. Вот вам моя политика!
Автор не является специалистом. У него просто должность.
Самое поганое в его статье это две строчки в таблице:
- скорость разработки приложения зависит от разработчика, а не от языка, настоящий специалист (не как автор), никогда о скорости разработки приложения не подумает.
- необходимость в будущем!!!!!!!!! Да вы что. Уважаемый автор не знает, что все приложения и операционные системы написаны под Си?????????
VB уже почти вымер. C# – просто один из языков, как одна из ветвей Cи, Java только, но он чисто специфичный и не учавствует в сравнении.
На этой статье у многих людей появится заблуждение.
Pascal хорош только тем, что содержит операторы более близко совпадающие с алгоритмом записи на бумаге, близким к повседневным словам, поэтому он хорош для школы, где ещё дети учатся.
Статья – бред! Да, С++ сложнее в изучении, но проще в использовании, т.к. язык гибкий, многофункциональный, в то время как в делфи многое приходится делать через Ж. Лично работал в обоих языках, и после перехода с делфи на С++ я понял, что С++ намного лучше.
«Вывод: автор абсолютно некомпетентен в данном вопросе.»
Вставлю свои 5 копеек.
Дело не в Delphi или С++, а в мастерстве его применения.
Очень хороший пример – популяный Total Commander. Автор до сих пор собирает его на Delphi 2(!) и при том, что использует таки тонкости и нюансы программирования, что не всякий и на С++ или ассемблере это сделает.
народ не спорьте каждому свое но мне лично delphi ближе
это теперь есть низкоуровневые языки, высокоуровневые и очень выскокоуровневые? ))
дорогой KK, языки программирования с самого начала низкоуровневые, низкоуровневые и т.д. и чем ниже уровень языка, тем ближе он к машинному коду, идеальный низкоуровневый язык – это я пишу сделай это и так и выходит, человеческим языком.
как можно быть разработчиком, о чем-то рассуждать и не иметь об этом понятия – в голове не укладывается
Честно говоря муть какая то. ты Вольф хоть сам понял что написал? может ты асм ещё для веб разработок будешь использовать? каждый язык имеет область использования, то что много ПО было написано на делфе это не говорит о том что это крутой язык, это просто означает что каждый может на нем писать всякие х-ки, и в этом случае количество спецов увеличивается в тысячи раз по сравнению с программистами на с++, у автора логики походу вообще нет, по вашему чем меньше сложность языка тем меньше спецов? думай че говоришь прежде чем такое писать. я не говорю что с++ лучший язык на свете, но спецов(реальных спецов, а не таких как данный автор) реально мало.
Вывод: статья не о чем, читать такой это глупость и трата времени. возьми рельные стат данные и глянь где с и с++ и где паскаль и дельфи, сразу станет ясным какой язык когда скончается. МОЕ ИМХО делфи нужен чисто для поддержки старого но нужного ПО. для новых разработок это мусор.
Вечер добрый, а я – нет!
Статья неплохая, автору – респект, но когда я читал комментарии я смеялся.
Смешными являются большинство критикующих комментов. Видимо господа комментаторы – ярые сишники и просто не могут трезво сравнить эти два языка.
Приведу факты (я подчеркиваю именно ФАКТЫ (источники wikipedia и google)):
Споры на счет понятности и читабельности:
Факт 1: «язык Паскаль был создан как язык для обучения»
Факт 2: «язык Паскаль создавался для обучения начинающих программистов хорошему стилю программирования»
Факт 3: «синтаксис Паскаля автор постарался сделать интуитивно понятным даже при первом знакомстве с языком»
Факт 4: «Delphi — результат развития языка Паскаль»
Факт 5: «Язык Delphi значительно расширяет возможности Паскаля, при этом оставляя практически неизменным великолепный синтаксис и логику Паскаля»
Факт 6: «Си был создан для использования в операционной системе UNIX. Для разработки ОС типа UNIX и написания драйверов»
Факт 7: «Си не разрабатывался для новичков»
Факт 8: «Иногда Си называют «универсальным ассемблером» или «ассемблером высокого уровня». Си часто называют языком среднего уровня или даже низкого уровня»
Факт 9: «Си (как и ОС UNIX, с которой он долгое время был связан) создавался программистами и для программистов, круг которых был бы ненамного шире круга разработчиков языка.»
Факт 10: «При создании C++ стремились сохранить совместимость с языком Си. C++ имеет синтаксис, основанный на синтаксисе Си. Поэтому синтаксис и логика С++ такие же как и у Си»
Итак, исходя из ФАКТОВ, подытожим: Все споры насчет простоты, понятности и читабельности – НАДУМАНЫ! Delphi (Паскаль) создавался для обучения, поэтому его синтаксис и логика безупречны. Си++ (Си) создавался для программистов профессионалов, для его разработчиков, поэтому никакой работы по созданию удобства, простоты и понятности проделано не было.
Так что – по понятности, логике и читабельности Delphi лучше Си++.
Поэтому, следующие итоги подведенные автором в таблице характеристика ВЕРНЫ и КРИТИКЕ НЕ ПОДЛЕЖАТ, это:
1) «Сложность обучения» (Си сложнее);
2) «Количество специалистов-профессионалов» (у Си их больше);
3) «Восприятие кода» (Delphi лучше);
6) «Скорость разработки решения» (в Delphi быстрее);
P.S.: Уважаемые господа комментаторы – думайте, перед тем как критиковать, иначе вы смешны! Выглядит так, будто вы даже не знаете историю языков программирования.
Вечер добрый, а я – нет!
Продолжу, далее по комментариям…
Привожу цитаты из комментариев господ «kk» и «and85» соответственно: «…Дело 2ух кликов – вот, уже началось. Программисты начали кликами сложность измерять….» и «…делфийстов обзывают «кнопко-кидателями», и по умолчанию на делфиста все остальные реагируют негативно….».
Я опять обращаю ваше внимание на историю языков программирования: с момента появления первого ассемблера процесс программирования постоянно упрощается, и постоянно некоторые программисты начинают кричать что «программисты отупляются».
Но история даёт нам урок – чем проще программировать, тем быстрее можно создать новую программу, а скорость в мире IT играет ключевую роль. Поэтому неудивительно, что уже никто не пишет в машинных кодах и на чистом языке ассемблера, скорость победила, и будет побеждать и в будущем.
Прочтите историю языков программирования (могу посоветовать книгу «Библия Delphi» Михаила Фленова) и вы узнаете как «это было».
Поэтому за «программированием 2-мя кликами» и «кнопко-кидательством» стоит будущее.
Те программисты, которые не смогут этого понять проиграют и пропадут в забытье, а те, кто использует новые языки и среды всегда будут впереди!
Сделайте свой выбор!
Я его уже сделал, и поэтому перешел на Delphi.
1. Непонятно, почему утверждается, что программы Delphi менее скоростные, чем программы C++. Кто-нибудь проводил такое сравнение? Есть какие-то данные по этому поводу? Я таких не встречал, может, кто-то другой ими располагает?
В обоих случаях работает нативный машинный код, без всякой интерпретации. Компиляторы от Borland (впоследствии Inprise, CodeGear, Embarcadero) всегда отличались весьма высоким качеством, еще со времен DOS. Так почему же и на основании чего утверждается, что программы Delphi менее скоростные, чем программы C++ ? Непонятно. Скорее следует ожидать, что по скорости они как раз вполне сравнимы.
2. Непонятно, почему считается, что для разработки системного софта C подходит лучше, чем Delphi. Вероятнее всего, так утверждают те, кто слабо знает Delphi. А между тем в Delphi есть и полноценная адресная арифметика, да и вообще в Delphi есть абсолютно все, что есть и в C (только некоторые вещи сделаны удобнее – например, работа со строками). И если не использовать VCL (а в системном софте она и не нужна), то программа Delphi будет примерно того же размера, что и аналогичная программа C.
Я много раз и вполне успешно писал на Delphi и полноценные системные службы, и различные системные утилиты (например, для обслуживания точек восстановления системы) – и на этом основании утверждаю, что для разработки системного софта Delphi подходит ничуть не хуже, чем C. В этом смысле они примерно одинаковы, за единственным исключением – драйверы, но как часто Вы пишете драйверы? Подавляющее большинство (99,999…%) программистов за всю свою жизнь не написали ни одного и даже такой необходимости у них ни разу не возникало.
3. Непонятно, почему считается, что программисты Delphi менее квалифицированы, чем программисты C. Коллеги, уверяю вас, что и чайников, и грамотных спецов хватает везде (причем вторых намного меньше, чем первых, и тоже везде). И разве не очевидно, что если один человек более грамотен, нежели другой, то ни C, ни Delphi к этому никакого отношения не имеют? Чайник наделает ошибок на любом языке, но нужно иметь в виду, что Pascal в силу его более строгого синтаксиса страхует от ошибок лучше, чем C. Вот пример.
int add(int x, y) {
return x+y;
}
int func() {
int i = 1;
return add(i, i++);
}
Результат, возвращаемый функцией func, может быть либо 2, либо 3. Он зависит от компилятора – а точнее, от порядка вычисления им фактических параметров при вызове функции add. Неплохая мина замедленного действия, не так ли? И очень труднообнаруживаемая, кстати. Но попробуйте сделать аналогичную плюху на Паскале – это просто не получится, потому что уже сам его синтаксис не допускает никаких неоднозначностей.
Юрий Зотов, John спасибо за информацию от Вас. Кое-что действительно не знал/не задумывался. Сам я уже полностью перешел на C# и даже выполнил пару успешных аналитических проектов + запустил 5 сайтов на ASP.NET MVC. Сейчас по опыту конечно можно сказать что шарп далеко ушел от Delphi. Наверное он со временем все таки загнется. Тем более .NET вобрал в себя все самое лучшее от делфи. Не даром его проектировал один из сотрудников борланда. Единственная причина по кот .NET хороша – обилие классов на все случаи жизни. Вот если бы столько классов было в стандартной поставке Delphi и все это компилировалось в нативный код – было бы очень интересно, я думаю реанимация прошла бы успешно. Причина – в защите ПО. ПО на .NET практически невозможно защитить. С++ по прежнему от меня далек и надеюсь с ним больше никогда не придется встретиться. Системный софт это конечно хорошо, но это далеко не весь рынок. А большая часть последнего требует .NET уже. Хотя часто приходят предложения из коммерческих организаций и банков доработать какой-то софт на делфи.
ИМХО, – мое личное мнение С++ больше ориентирован на низкоуровневую структуру (драйвера, оси). Ведь не даром почти весь unix на нем написан. А Делфи – это больше для создания приложений пользовательской среды (более высокий уровень)
Я вообще любитель. Начинал с турбо паскаля , потом объектн. паскаль – делфи. Затем, для веб разработок изучил разный синтаксис языков: ПХП, питон, руби…
Пришел к C#. (Что так вызывает восторг ПХП, не понял и не проникся. Рассыпуха функций. Среду для разработки попробовал)
Среда разработки (VisualStudio) хорошая, лучше Делфевой. И сам синтаксис C# простой. В Паскале всегда бесило передача параметра по ссылке, как то Procedure Proc1(var i:integer);
Все таки Си диез в этом плане логичней: void Proc1(ref int i){ … }, а вызываешь, тоже указываешь то, что функция вызывается с параметром по ссылке:
int var=0;
Proc1(ref var);//
делегаты организованы интересно, подписка на одни события несколькими объектами, логично…
Короче, я тут агитацией не собираюсь заниматься: какая баба красивее, каждому свое.
Если синтаксис языка нравится, среда разработки хорошая, подходит именно тебе, тот язык и берешь. Но… начинающим, которые не знают что выбрать , посоветовал бы с С… Синтаксис прочих языков похож именно на этот, базовый.
Но и на паскале , можно городить все что хочешь
Опыт разработки Visual Basic 6 – 2 года, Delphi 7 – 3 года, C++ Builder 6 – 5 лет, WPF и Visual Studio C# 1 год. Работаю в сфере автоматизации технологических процессов.
Считаю паскаль нафиг ненужен – причины:
1. Чтобы работать с базами и быстро формы клепать выберу C++ Builder потому что переменные буду обьявлять где хочу (мне синтаксис намного сильней нравиться С++).
2. Многие технологические языки имеют схожий синтаксис с Basic (пример скада InTouch) и C++ (пример скада Mais2000), примеров кучу можно привести.
3. Знания с++ пригодяться при освоении Java, PHP, C# (меняем -> на .)
4. сорсы для Linux на С и С++
5. в MacOSX среда разработки XCode использует С++
6. если приспичит можно писать и на VIsual C++
Распространенней языка С++ можно только наверно найти LabView и Basic