Почему Си - хорошо, а Си++ - плохо

Для любителей обсудить что круче Linux или Win32, Java или C#.

Модератор: Duncon

Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

04 апр 2017, 08:20

iprog писал(а):Его появление было настоящей революцией, потому что он позволил отвязать программы от конкретной процессорной архитектуры,
Это позволил сделать ещё фортран, созданный раньше. Вообще фортран - исторически второй язык программирования после языка ассемблера.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

04 апр 2017, 08:21

iprog писал(а):Нет смысла придумывать что-то ещё.
Опять ложь.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

04 апр 2017, 08:22

iprog писал(а):Изначально создатели языка Си и системы Unix предполагали, что возникнут другие языки, более удобные для программистов (каждый язык со своей специализацией). Для каждого такого языка, на Си будет написан транслятор (не компилятор), который транслирует исходник с этого языка опять же на Си, а не в исполняемый код.
Трансляторы бывают двух видов: компиляторы и интерпретаторы. Интерпретировать можно только в натив. Ни как не на c. Просто потому, что интерпретация - это трансляция в процессе исполнения, в куски исполняемого кода самого же транслятора.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

04 апр 2017, 08:25

iprog писал(а): И уже этот промежуточный Си-текст транслируется Си-компилятором в бинарный исполняемый файл.
А получить текст на промежуточном языке можно только компиляцией.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

04 апр 2017, 08:31

iprog писал(а): он прилепил дополнительные фичи (большей частью совершенно идиотские - вроде перегрузки стандартных операторов)
Ни одной идиотской фичи он не добавил. Наоборот, убрал идиотские фичи, например, монструозный ввод-вывод со строками форматирования. Сохранив переносимость и не навязав ни одной лишней операции. Даже конструктор может быть пустым, тогда при оптимизации кода он просто выбрасывается за ненадобностью. В результате процессор по-прежнему не делает ничего, что не было предусмотрено программой, просто часть исходного текста может быть инкапсулирована в членах. Ну а если тебе вдруг надо выполнить кучу дополнительных действий, то они прописываются один раз и потом многократно применяются. Про декомпозицию слышал?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

04 апр 2017, 08:41

iprog писал(а):в язык введены неявные скрытые механизмы, которые не работают одинаково на разных платформах
. Наоборот, добавлена возможность исключения единственного неявного механизма, который был в голом c - соглашения о вызовах. На c++ соглашение о вызовах было ровно одно и потому оно было невявным. На c++ можно явно указать соглашение о вызовах для каждой функции.
iprog писал(а):портируемые программы писать невозможно
так вот почему они на нём пишутся. Это оказывается невозможно. Почему только они тогда на языке ассемблера не пишутся? Это ведь тоже не возможно.
iprog писал(а): и в то же время язык неудобен для высокоуровневого программирования, как и Си.
Как раз очень удобен.
iprog писал(а):Компиляторы Си++ намного сложнее, чем компилятор Си, и есть не везде.
Попробуйте найти компилятор голого c для спектрума, или для телефона. А c++ есть везде, где он нужен.
iprog писал(а):В основном Си++ используют, потому что под него написаны библиотеки классов (как правило привязанные к определённой платформе и операционной системе).
Опять ложь. Во-первых библиотеку классов c++ не возможно привязать к платформе. А во-вторых есть много софта на c++ на голом API.
iprog писал(а):Теряюсь в догадках, кому понадобилось раскручивать такое скотоложество (другого слова не подберу). Деньги в это вбуханы чудовищные - помню по той рекламной кампании, которая сопровождала продвижение Си++.
Ну как теряешься, когда тебе и понадобилось?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

04 апр 2017, 08:43

somewhere писал(а):Тем более, в прилжениях Windows, где 80% кода сводится к общению с функциями WinAPI
Если 0,08% кода сводится к вызову API, то без программы легко можно обойтись.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Ответить