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 раз сказанного мною ранее вот ) Еще раз с Днем варенья 
Бог сумел сотворить мир всего за 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 полным ничтожеством и языком для обезьян во всех отношениях. Не скажу что сообщения друг другу сильно противоречат, но всё-же 
Сообщение отредактировал Ghost - Вторник, 10.03.2009, 10:31 |
|
| |
eXceed |
Дата: Вторник, 10.03.2009, 10:47 | Сообщение # 6 |
Профессор
Группа: СуперАктив
Сообщений: 5753
Награды: 0
Статус: Offline
| Ага, быдлокодеры
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 
|
|
| |
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. Языка Ассемблера", можно пойти и дальше... Самое главное: "Языки разные нужны, языки разные важны" 
|
|
| |
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) Но это компенсируется динамической идентификацией типов. На всякий существует инструмент динамического и статического каста. Вот в том то и суть Пока на C придумывают новые "динамические" и другие там с к крутыми названиями маневры, на Delphi без выделок можно написать приложение Я никак и ничего против С не имею, и его логика мне симпатизирует, после того же php когда пересаживаюсь на D начинаю немного фтупливать и наоборот. Опять же, для Баз Данных фиг я сяду на С и могу с уверенностью сказать, что в С вы быстрее проект не напишете! В пользу Delphi - без сомнения, стабильность приложения, хорошая система отладки кода! ну да, нет такой мощной динамики, но а спрашивается, нужна ли она? Если бы разработчики ставили целью ввести мощные синтаксические конструкции - они бы ввели их, но, видать, они следуют иному плану. А что мы? Мы посмотрим на их труды, а там определимся что нужно. Помнится, Павел, мы с тобой долго говорили о недоязыке PHP. Да, это аппендикс настоящих языков, но без него что бы мы делали? И на этих языках нужно уметь грамотно и безопасно программировать, хоть и команд там по польцам пересчитать. А почему, скажи, тогда ломают крупнейшие ресурсы одних и под натиском кучи мозгов не могут повалить других? РУКИ! РУКИ! РУКИ! И все тут.
Бог сумел сотворить мир всего за 6 дней только потому, что ему не нужно было решать проблемы совместимости с предыдущей версией. ... Автомат Калашникова - это средство для превращения стэка в очередь...
|
|
| |
|