C++ vs. Delphi
|
|
eXceed | Дата: Понедельник, 09.03.2009, 00:41 | Сообщение # 1 |
Генералиссимус
Группа: Гости
Сообщений: 5466
Статус: Offline
| C++ vs. Delphi тред иди! Я считаю Delphi полным ничтожеством и языком для обезьян во всех отношениях. Кто против этого мнения? Не забываем обосновывать. Следующим постом распишу подробно свое мнение.
bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
|
|
| |
vitalyu | Дата: Понедельник, 09.03.2009, 00:46 | Сообщение # 2 |
Генерал-полковник
Группа: Гости
Сообщений: 852
Статус: Offline
| ыыыыыы. я не буду ничего говорить, потому что МНЕ ВСЕ РАВНО НА ЧЕМ ПИСАТЬ! А НАПИСАТЬ МОЖНО НА ЧЕМ УГОДНО ЧТО УГОДНО, БУДЬ ТО ВИЗУАЛ ВАСИК! А ваще, если хочет мазохизма - ASM ASM ASM ASM!!! И даже на нем в принципе писать то не сложно, знай себе MSDN или MAN! Вот все что хочу сказать, потому что за свою жизнь столько нахоливарился, что если что-то и скажу, то это уже будет повтор 1000 раз сказанного мною ранее вот ) Еще раз с Днем варенья
Бог сумел сотворить мир всего за 6 дней только потому, что ему не нужно было решать проблемы совместимости с предыдущей версией. ... Автомат Калашникова - это средство для превращения стэка в очередь...
|
|
| |
eXceed | Дата: Понедельник, 09.03.2009, 11:26 | Сообщение # 3 |
Генералиссимус
Группа: Гости
Сообщений: 5466
Статус: Offline
| Извиняюсь за довольно "резкий" пост свой выше. Очевидные минусы Delphi: 1. Не оптимизирующий компилятор. 2. Слишком тяжелый VCL. 3. Нет нормальной поддержки ООП(множественное наследование, не применимость большенства паттернов) 4. Примерно 40% WinAPI нет в заголовках. 5. "Бедный" на конструкции язык. 6. Нет возможностей перегружать бинарные операторы. Ну и еще тонна более сложных минусов. Все это мешает программировать действительно эффективно. vitalyu Ну ты у нас отдельный случай. У тебя просто здоровый по[beep]м =) Ну ты понял.
bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
|
|
| |
Max-off | Дата: Понедельник, 09.03.2009, 18:23 | Сообщение # 4 |
Лейтенант
Группа: Проверенные
Сообщений: 67
Статус: Offline
| Здесь довольно интересный топик об ЯП
|
|
| |
Ghost | Дата: Вторник, 10.03.2009, 10:31 | Сообщение # 5 |
Генералиссимус
Группа: Модераторы
Сообщений: 2963
Статус: Offline
| http://bda-expert.ru/forum/26-162-1925-16-1214086550: 22.06.2008: Quote (eXceed) Не гони ересь! Delphi тоже язык и дельфины тоже кодеры. 09.03.2009: Quote (eXceed) Я считаю Delphi полным ничтожеством и языком для обезьян во всех отношениях. Не скажу что сообщения друг другу сильно противоречат, но всё-же
Сообщение отредактировал Ghost - Вторник, 10.03.2009, 10:31 |
|
| |
eXceed | Дата: Вторник, 10.03.2009, 10:47 | Сообщение # 6 |
Генералиссимус
Группа: Гости
Сообщений: 5466
Статус: Offline
| Ага, быдлокодеры
bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
|
|
| |
vitalyu | Дата: Вторник, 10.03.2009, 18:25 | Сообщение # 7 |
Генерал-полковник
Группа: Гости
Сообщений: 852
Статус: Offline
| Вопрос не в том, какой язык, а что ТЫ можешь сделать на нем??? Все что мне было необходимо сделать - я делал. Если чего не хватало - осваивал новые горы и двигался дальше. Еще раз говорю, что у каждого разраба свои подходы и своя философия. Можешь не можешь .. Можно строить нифегенные алгоритмические конструкции с использованием новейших синтаксических завязок и при этом не получать на выходе хорошего продукта, а можно дедовским набором команд сделать вполне качественное ПО. Ну, вот, к примеру, начнем мы впаривать всем студентам VS вместо Delphi. Что, они от этого лучше писать будут? и будут ли вообще? Кому надо - тот оценит обстановку и выберет лучшее. VS и Delphi делают ставки на разные цели, поэтому и сравнивать нет смысла. Быдлокодеры - это не те, кто прогают на языках, отличных от "святого C", а те, кто на "святом C" прогают подобие программ с кривыми, как их руки, алгоритмами!
Бог сумел сотворить мир всего за 6 дней только потому, что ему не нужно было решать проблемы совместимости с предыдущей версией. ... Автомат Калашникова - это средство для превращения стэка в очередь...
|
|
| |
eXceed | Дата: Вторник, 10.03.2009, 20:09 | Сообщение # 8 |
Генералиссимус
Группа: Гости
Сообщений: 5466
Статус: Offline
| vitalyu Быдлокодеры прогают на быдлоязыках и пишут быдлокод. Я к тому, что C/C++ позволяет постоянно развиваться в плане программирования. А 90% дельфятников остались на примитивном уровне VCL и не двигаются дальше. Я про тебя конкретно не говорю. Ты нормальный программер использующий различные инструменты для достижения цели. Речь идет по большей части о "кнопкошлепстве".
bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
|
|
| |
Max-off | Дата: Вторник, 10.03.2009, 23:06 | Сообщение # 9 |
Лейтенант
Группа: Проверенные
Сообщений: 67
Статус: Offline
| Господа, к чему дискуссия? С++ так же является быдлоязыком. Vitalyu прав, главное не начем человек пишет, а как он пишет и что он пишет.
|
|
| |
eXceed | Дата: Вторник, 10.03.2009, 23:29 | Сообщение # 10 |
Генералиссимус
Группа: Гости
Сообщений: 5466
Статус: Offline
| Max-off Обсуждение задумывалось как обсуждение преимуществ и недостатков, а не быдлоязычности.
bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
|
|
| |
saginsa | Дата: Вторник, 10.03.2009, 23:40 | Сообщение # 11 |
Генерал-полковник
Группа: Модераторы
Сообщений: 864
Статус: Offline
| Quote (eXceed) Обсуждение задумывалось как обсуждение преимуществ и недостатков, а не быдлоязычности. Я думаю то, что вы eXceed, хотите услышать знаете только вы сами. Также имхо мало кто может использовать все ресурсы Delphi в связи с их большим разнообразием. Так что я не думаю, что мы вправе обсуждать этот большой, и если даже не великий, то популярный язык.
"Я планировала, но не думала ..."
|
|
| |
EVILdoer | Дата: Среда, 11.03.2009, 00:14 | Сообщение # 12 |
[D]onatello
Группа: Гости
Сообщений: 628
Статус: Offline
| Есть точка зрения, что люди, начавшие программировать с (q)basic'а являются ущербными code-инвалидами и потеряны для программирования навсегда. Мне кажется, что eXceed ведёт примерно к этому... Сам я считаю, что ЯП - это лишь инструмент в прямых руках программиста. И вот тому яркое доказательство: http://bolknote.ru/99.html
|
|
| |
Max-off | Дата: Среда, 11.03.2009, 00:15 | Сообщение # 13 |
Лейтенант
Группа: Проверенные
Сообщений: 67
Статус: Offline
| Quote (eXceed) Max-off Обсуждение задумывалось как обсуждение преимуществ и недостатков, а не быдлоязычности. eXceed, какой самолет лучше ту-204 или СУ - 34? Это из той же оперы, пока не выберем предметную область спорить нельзя.
|
|
| |
eXceed | Дата: Среда, 11.03.2009, 01:55 | Сообщение # 14 |
Генералиссимус
Группа: Гости
Сообщений: 5466
Статус: Offline
| Видимо вы не можете по теме ничего сказать? Я как раз вправе обсуждать такие вещи, т.к. довольно глубоко знаю и дельфи и С++.
bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
|
|
| |
Ghost | Дата: Среда, 11.03.2009, 09:24 | Сообщение # 15 |
Генералиссимус
Группа: Модераторы
Сообщений: 2963
Статус: Offline
| Недостатки С++ хорошо описаны в Википедии: Quote Отчасти недостатки C++ унаследованы от языка-предка — Си, — и вызваны изначально заданным требованием возможно большей совместимости с Си. Это такие недостатки, как: Синтаксис, провоцирующий ошибки: - Операция присваивания обозначается как = , а операция сравнения как ==. Их легко спутать, при этом операция присваивания возвращает значение, поэтому присваивание на месте выражения является синтаксически корректным, а в конструкциях цикла и ветвления появление числа на месте логического значения также допустимо, так что ошибочная конструкция оказывается синтаксически правильной. . Типичный пример подобной ошибки: if (x=0) { операторы } Здесь в условном операторе по ошибке написано присваивание вместо сравнения. В результате вместо того, чтобы сравнить текущее значение x с нулём, программа присвоит x нулевое значение, а потом интерпретирует его как значение условия в операторе if. Так как нуль соответствует логическому значению «ложь» (false), блок операторов в условной конструкции не выполнится никогда. Ошибки такого рода трудно выявлять, впрочем, в последнее время компиляторы выдают предупреждение, когда обнаруживают потенциально ошибочный код. - Операции присваивания (=), инкрементации (++), декрементации (--) и другие возвращают значение. В сочетании с обилием операций это позволяет, хотя и не обязывает, программиста создавать трудночитаемые выражения. Наличие этих операций в Си было вызвано желанием получить инструмент ручной оптимизации кода, но в настоящее время оптимизирующие компиляторы обычно генерируют оптимальный код и на традиционных выражениях. С другой стороны, один из основных принципов языков C и C++ — позволять программисту писать в любом стиле, а не навязывать «хороший» стиль. - Макросы (#define) являются мощным, но опасным средством. Они сохранены в C++ несмотря на то, что необходимость в них, благодаря шаблонам и встроенным функциям, не так уж велика. В унаследованных стандартных С-библиотеках много потенциально опасных макросов. - Некоторые преобразования типов неинтуитивны. В частности, операция над беззнаковым и знаковым числами выдаёт беззнаковый результат. - Необходимость записывать break в каждой ветви оператора switch и возможность последовательного выполнения нескольких ветвей при его отсутствии провоцирует ошибки из-за пропуска break. Эта же особенность позволяет делать сомнительные «трюки», базирующиеся на избирательном неприменении break и затрудняющие понимание кода. - Препроцессор, унаследованный от С, очень примитивен. Это приводит с одной стороны к тому, что с его помощью нельзя (или тяжело) осуществлять некоторые задачи метапрограммирования, а с другой, вследствие своей примитивности, он часто приводит к ошибкам и требует много действий по обходу потенциальных проблем. Некоторые языки программирования (например, Scheme и Nemerle) имеют намного более мощные и более безопасные системы метапрограммирования (также называемые макросами, но мало напоминающие макросы С/С++). - Плохая поддержка модульности (по сути, в классическом Си модульность на уровне языка отсутствует, её обеспечение переложено на компоновщик). Подключение интерфейса внешнего модуля через препроцессорную вставку заголовочного файла (#include) серьёзно замедляет компиляцию при подключении большого количества модулей (потому что результирующий файл, который обрабатывается компилятором, оказывается очень велик). Эта схема без изменений скопированна в C++. Для устранения этого недостатка, многие компиляторы реализуют механизм прекомпиляции заголовочных файлов Precompiled Headers. К собственным недостаткам C++ можно отнести: - Сложность и избыточность, из-за которых C++ трудно изучать, а построение компилятора сопряжено с большим количеством проблем. В частности: В языке практически полностью сохранён набор конструкций Си, к которому добавлены новые средства. Во многих случаях новые средства и механизмы позволяют делать то же самое, что и старые, но в языке сохраняются оба варианта. - Поддержка множественного наследования реализации в ООП-подсистеме языка вызывает целый ряд логических проблем, а также создаёт дополнительные трудности в реализации компилятора. Шаблоны в своём исходном виде приводят к порождению кода очень большого объёма, а введённая позже в язык возможность частичной спецификации шаблонов трудно реализуема и не поддерживается многими существующими компиляторами. Недостаток информации о типах данных во время компиляции (CTTI). - Метапрограммирование на основе шаблонов C++ сложно и при этом ограничено в возможностях. Оно состоит в реализации средствами шаблонов C++ интерпретатора примитивного функционального языка программирования выполняющегося во время компиляции. Сама по себе данная возможность весьма привлекательна, но такой код весьма трудно воспринимать и отлаживать. Языки Lisp/Scheme, Nemerle и некоторые другие имеют более мощные и одновременно более простые для восприятия подсистемы метапрограммирования. Кроме того, в языке D реализована сравнимая по мощности, но значительно более простая в применении подсистема шаблонного метапрограммирования. - Хотя декларируется, что С++ мультипарадигменный язык, реально в языке отсутствует поддержка функционального программирования. Отчасти, данный пробел устраняется различными библиотеками (Loki, Boost) использующими средства метапрограммирования для расширения языка функциональными конструкциями (например, поддержкой лямбд/анонимных методов), но качество подобных решений значительно уступает качеству встроенных в функциональные языки решений. Такие возможности функциональных языков как сопоставление с образцом вообще крайне сложно эмулировать средствами метапрограммирования. - Некоторые считают недостатком языка C++ отсутствие встроенной системы сборки мусора. С другой стороны, в C++ есть достаточно средств, позволяющих почти исключить использование опасных указателей, нет принципиальных проблем и в реализации и использовании сборки мусора (на уровне библиотек, а не языка). Отсутствие встроенной сборки мусора позволяет пользователю самому выбрать стратегию управления ресурсами.
Сообщение отредактировал Ghost - Среда, 11.03.2009, 09:28 |
|
| |