Факультет ИСиТ Пятница, 22.09.2023, 07:11
Приветствую Вас Гость | RSS
[ Персональный раздел · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Факультет ИСиТ СыктГУ - Форум » Компьютеры / Интернет / Информационные системы и технологии » Программирование » C++ vs. Delphi (И вновь начинается бой..)
C++ vs. Delphi
eXceed Дата: Понедельник, 09.03.2009, 00:41 | Сообщение # 1
Профессор
Группа: СуперАктив
Сообщений: 5753
Награды: 0
Статус: Offline
C++ vs. Delphi тред иди!

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

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


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

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


Бог сумел сотворить мир всего за 6 дней только потому, что ему не нужно было решать проблемы совместимости с предыдущей версией.
...
Автомат Калашникова - это средство для превращения стэка в очередь...
 
eXceed Дата: Понедельник, 09.03.2009, 11:26 | Сообщение # 3
Профессор
Группа: СуперАктив
Сообщений: 5753
Награды: 0
Статус: 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
Награды: 0
Статус: Offline
Здесь довольно интересный топик об ЯП
 
Ghost Дата: Вторник, 10.03.2009, 10:31 | Сообщение # 5
Профессор
Группа: Модераторы
Сообщений: 2963
Награды: 0
Статус: 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
Профессор
Группа: СуперАктив
Сообщений: 5753
Награды: 0
Статус: Offline
Ага, быдлокодеры wink

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

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


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

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

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

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


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

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


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

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


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

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


 
Max-off Дата: Среда, 11.03.2009, 00:15 | Сообщение # 13
Студент
Группа: Актив
Сообщений: 67
Награды: 0
Статус: Offline
Quote (eXceed)
Max-off

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

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

 
eXceed Дата: Среда, 11.03.2009, 01:55 | Сообщение # 14
Профессор
Группа: СуперАктив
Сообщений: 5753
Награды: 0
Статус: Offline
Видимо вы не можете по теме ничего сказать?

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


bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
 
Ghost Дата: Среда, 11.03.2009, 09:24 | Сообщение # 15
Профессор
Группа: Модераторы
Сообщений: 2963
Награды: 0
Статус: 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
 
eXceed Дата: Среда, 11.03.2009, 12:15 | Сообщение # 16
Профессор
Группа: СуперАктив
Сообщений: 5753
Награды: 0
Статус: Offline
Хочу заметить, что для компенсации минусов используется мощь ООП. Конечно это рождает еще минусы =)

Синтаксис: Очень прост. Выучи его просто.

Операторы присваивания: = - присваивание; == - сравнение. Чего не понятного? А где логика в := ?

Опасность макросов преувеличена. Видишь ли. Вам дали в руки ламборджини крайней модели. Если водитель грамотный, то он ее не раздолбает. А если идиот, то он получит премию Дарвина после первого поворота.

Насчет преобразования согласен. Но это компенсируется динамической идентификацией типов. На всякий существует инструмент динамического и статического каста.

И так далее по тексту.

Все "обвинения" высосаны из пальца. С++ мощный инструмент для знающих что делать и как делать.


bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
 
EVILdoer Дата: Среда, 11.03.2009, 16:18 | Сообщение # 17
[D]onatello
Группа: СуперАктив
Сообщений: 628
Награды: 0
Статус: Offline
Может тогда начть ещё т.н. тред иди "Язык Ассемблера vs. C++",
или "машинные коды vs. Языка Ассемблера",
можно пойти и дальше... smile

Самое главное: "Языки разные нужны, языки разные важны" biggrin


 
Ghost Дата: Среда, 11.03.2009, 16:41 | Сообщение # 18
Профессор
Группа: Модераторы
Сообщений: 2963
Награды: 0
Статус: Offline
Знание С++ - это конечно необходимость. Ещё обожаю C# и Lisp Scheme. Pascal никогда особо не любил.
 
eXceed Дата: Среда, 11.03.2009, 16:52 | Сообщение # 19
Профессор
Группа: СуперАктив
Сообщений: 5753
Награды: 0
Статус: Offline
Max-off

Сделайте меня это развидеть.

EVILdoer

Не совсем корректно сравнивать ASM с C++, т.к. языки разного уровня и задач.

Здесь мы говорим о языках общего назначения.


bda-expert.ru — это система форумов, где можно общаться быстро и свободно, где любая точка зрения имеет право на жизнь.
 
vitalyu Дата: Среда, 11.03.2009, 21:25 | Сообщение # 20
Преподаватель
Группа: СуперАктив
Сообщений: 852
Награды: 0
Статус: Offline
Quote (eXceed)
Но это компенсируется динамической идентификацией типов. На всякий существует инструмент динамического и статического каста.

Вот в том то и суть smile Пока на C придумывают новые "динамические" и другие там с к крутыми названиями маневры, на Delphi без выделок можно написать приложение smile
Я никак и ничего против С не имею, и его логика мне симпатизирует, после того же php когда пересаживаюсь на D начинаю немного фтупливать и наоборот. Опять же, для Баз Данных фиг я сяду на С и могу с уверенностью сказать, что в С вы быстрее проект не напишете! В пользу Delphi - без сомнения, стабильность приложения, хорошая система отладки кода! ну да, нет такой мощной динамики, но а спрашивается, нужна ли она? Если бы разработчики ставили целью ввести мощные синтаксические конструкции - они бы ввели их, но, видать, они следуют иному плану. А что мы? Мы посмотрим на их труды, а там определимся что нужно.
Помнится, Павел, мы с тобой долго говорили о недоязыке PHP. Да, это аппендикс настоящих языков, но без него что бы мы делали? И на этих языках нужно уметь грамотно и безопасно программировать, хоть и команд там по польцам пересчитать. А почему, скажи, тогда ломают крупнейшие ресурсы одних и под натиском кучи мозгов не могут повалить других? РУКИ! РУКИ! РУКИ! И все тут.


Бог сумел сотворить мир всего за 6 дней только потому, что ему не нужно было решать проблемы совместимости с предыдущей версией.
...
Автомат Калашникова - это средство для превращения стэка в очередь...
 
Факультет ИСиТ СыктГУ - Форум » Компьютеры / Интернет / Информационные системы и технологии » Программирование » C++ vs. Delphi (И вновь начинается бой..)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:



Copyright bda-expert.ru © 2008-2023Хостинг от uCoz