[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
C++ vs. Delphi
eXceedДата: Понедельник, 09.03.2009, 00:41 | Сообщение # 1
Генералиссимус
Группа: Гости
Сообщений: 5466
Репутация: 616
Статус: Offline
C++ vs. Delphi тред иди!

Я считаю Delphi полным ничтожеством и языком для обезьян во всех отношениях. Кто против этого мнения? Не забываем обосновывать.

Следующим постом распишу подробно свое мнение.


bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
 
vitalyuДата: Понедельник, 09.03.2009, 00:46 | Сообщение # 2
Генерал-полковник
Группа: Гости
Сообщений: 852
Репутация: 108
Статус: Offline
ыыыыыы. я не буду ничего говорить, потому что МНЕ ВСЕ РАВНО НА ЧЕМ ПИСАТЬ! А НАПИСАТЬ МОЖНО НА ЧЕМ УГОДНО ЧТО УГОДНО, БУДЬ ТО ВИЗУАЛ ВАСИК! А ваще, если хочет мазохизма - ASM ASM ASM ASM!!! И даже на нем в принципе писать то не сложно, знай себе MSDN или MAN! Вот все что хочу сказать, потому что за свою жизнь столько нахоливарился, что если что-то и скажу, то это уже будет повтор 1000 раз сказанного мною ранее smile вот )

Еще раз с Днем варенья biggrin


Бог сумел сотворить мир всего за 6 дней только потому, что ему не нужно было решать проблемы совместимости с предыдущей версией.
...
Автомат Калашникова - это средство для превращения стэка в очередь...
 
eXceedДата: Понедельник, 09.03.2009, 11:26 | Сообщение # 3
Генералиссимус
Группа: Гости
Сообщений: 5466
Репутация: 616
Статус: 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
Репутация: 8
Статус: Offline
Здесь довольно интересный топик об ЯП
 
GhostДата: Вторник, 10.03.2009, 10:31 | Сообщение # 5
Генералиссимус
Группа: Модераторы
Сообщений: 2963
Репутация: 251
Статус: Offline
http://bda-expert.ru/forum/26-162-1925-16-1214086550:
22.06.2008:
Quote (eXceed)
Не гони ересь! Delphi тоже язык и дельфины тоже кодеры.

09.03.2009:

Quote (eXceed)
Я считаю Delphi полным ничтожеством и языком для обезьян во всех отношениях.

Не скажу что сообщения друг другу сильно противоречат, но всё-же smile

Сообщение отредактировал Ghost - Вторник, 10.03.2009, 10:31
 
eXceedДата: Вторник, 10.03.2009, 10:47 | Сообщение # 6
Генералиссимус
Группа: Гости
Сообщений: 5466
Репутация: 616
Статус: Offline
Ага, быдлокодеры wink

bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
 
vitalyuДата: Вторник, 10.03.2009, 18:25 | Сообщение # 7
Генерал-полковник
Группа: Гости
Сообщений: 852
Репутация: 108
Статус: Offline
Вопрос не в том, какой язык, а что ТЫ можешь сделать на нем??? Все что мне было необходимо сделать - я делал. Если чего не хватало - осваивал новые горы и двигался дальше. Еще раз говорю, что у каждого разраба свои подходы и своя философия. Можешь не можешь .. Можно строить нифегенные алгоритмические конструкции с использованием новейших синтаксических завязок и при этом не получать на выходе хорошего продукта, а можно дедовским набором команд сделать вполне качественное ПО.
Ну, вот, к примеру, начнем мы впаривать всем студентам VS вместо Delphi. Что, они от этого лучше писать будут? и будут ли вообще? Кому надо - тот оценит обстановку и выберет лучшее. VS и Delphi делают ставки на разные цели, поэтому и сравнивать нет смысла.

Быдлокодеры - это не те, кто прогают на языках, отличных от "святого C", а те, кто на "святом C" прогают подобие программ с кривыми, как их руки, алгоритмами!


Бог сумел сотворить мир всего за 6 дней только потому, что ему не нужно было решать проблемы совместимости с предыдущей версией.
...
Автомат Калашникова - это средство для превращения стэка в очередь...
 
eXceedДата: Вторник, 10.03.2009, 20:09 | Сообщение # 8
Генералиссимус
Группа: Гости
Сообщений: 5466
Репутация: 616
Статус: Offline
vitalyu

Быдлокодеры прогают на быдлоязыках и пишут быдлокод.

Я к тому, что C/C++ позволяет постоянно развиваться в плане программирования. А 90% дельфятников остались на примитивном уровне VCL и не двигаются дальше.

Я про тебя конкретно не говорю. Ты нормальный программер использующий различные инструменты для достижения цели. Речь идет по большей части о "кнопкошлепстве".


bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
 
Max-offДата: Вторник, 10.03.2009, 23:06 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 67
Репутация: 8
Статус: Offline
Господа, к чему дискуссия? С++ так же является быдлоязыком. Vitalyu прав, главное не начем человек пишет, а как он пишет и что он пишет.
 
eXceedДата: Вторник, 10.03.2009, 23:29 | Сообщение # 10
Генералиссимус
Группа: Гости
Сообщений: 5466
Репутация: 616
Статус: Offline
Max-off

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


bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
 
saginsaДата: Вторник, 10.03.2009, 23:40 | Сообщение # 11
Генерал-полковник
Группа: Модераторы
Сообщений: 864
Репутация: 56
Статус: Offline
Quote (eXceed)
Обсуждение задумывалось как обсуждение преимуществ и недостатков, а не быдлоязычности.

Я думаю то, что вы eXceed, хотите услышать знаете только вы сами.
Также имхо мало кто может использовать все ресурсы Delphi в связи с их большим разнообразием. Так что я не думаю, что мы вправе обсуждать этот большой, и если даже не великий, то популярный язык.


"Я планировала, но не думала ..."
 
EVILdoerДата: Среда, 11.03.2009, 00:14 | Сообщение # 12
[D]onatello
Группа: Гости
Сообщений: 628
Репутация: 43
Статус: Offline
Есть точка зрения, что люди, начавшие программировать с (q)basic'а являются
ущербными code-инвалидами и потеряны для программирования навсегда.
Мне кажется, что eXceed ведёт примерно к этому...

Сам я считаю, что ЯП - это лишь инструмент в прямых руках программиста.
И вот тому яркое доказательство: http://bolknote.ru/99.html smile


 
Max-offДата: Среда, 11.03.2009, 00:15 | Сообщение # 13
Лейтенант
Группа: Проверенные
Сообщений: 67
Репутация: 8
Статус: Offline
Quote (eXceed)
Max-off

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

eXceed, какой самолет лучше ту-204 или СУ - 34? Это из той же оперы, пока не выберем предметную область спорить нельзя.

 
eXceedДата: Среда, 11.03.2009, 01:55 | Сообщение # 14
Генералиссимус
Группа: Гости
Сообщений: 5466
Репутация: 616
Статус: Offline
Видимо вы не можете по теме ничего сказать?

Я как раз вправе обсуждать такие вещи, т.к. довольно глубоко знаю и дельфи и С++.


bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
 
GhostДата: Среда, 11.03.2009, 09:24 | Сообщение # 15
Генералиссимус
Группа: Модераторы
Сообщений: 2963
Репутация: 251
Статус: 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
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

close