Тема: "java" Vs. "c"
Показать сообщение отдельно
Старый 26.10.2003, 02:19     # 33
rg_software
Newbie
 
Регистрация: 14.10.2003
Сообщения: 25

rg_software Путь к славе только начался
Ну знаете

Цитата:
Небезосновательно:
quote:
--------------------------------------------------------------------------------
В Java не включены некоторые редко используемые, плохо понимаемые и усложняющие работу возможности С++, которые приносят больше проблем, чем преимуществ. Пришлось отказаться от

- перегрузки операторов (но перегрузка методов в Java осталась),
- множественного наследования,
- автоматического расширяющего приведения типов.
Слова "редко используемые", "плохо понимаемые", "усложняющие работу" я бы использовал с гораздо большей осторожностью! Это следует читать: "плохо понимаемые, редко используемые, усложняющие работу авторов приведённого тезиса", и никак не иначе. Перегрузка операторов, множественное наследование и приведение типов (в большинстве своём) прекрасно используется и отлично понимается программистами на С++. Не буду ссылаться на личный опыт (хотя есть возможность), но даже стандартная библиотека С++ весьма интенсивно использует приведённые возможности. Кроме, разве что множественного наследования.
Более того, если некто не способен применять эти средства выражения своих мыслей, язык не принуждает к их использованию. Вы можете писать программы на С++ без применения средств, которые вы плохо понимаете. Зато те, кто понимает, может извлечь из этого весьма заметную выгоду.

Иными словами, ваша цитата - не более, чем частное мнение некоего человека.

разумеется, под словом "вы" я понимаю автора цитируемого тезиса

Цитата:
Добавилась автоматическая сборка мусора, упрощающая процесс программирования, но несколько усложняющая систему в целом. В С и С++ управление памятью вызывало всегда массу проблем, теперь же об этом не придется много заботиться.
Теперь это вызвало другие проблемы. Во-первых, на Java невозможно писать приложения, скорость выполнения которых не должна меняться (я уже об этом говорил). Во-вторых, утечки памяти в Java всё равно происходят, но диагностика их затруднена (см. книгу Б.Тейта "Горькая чашка Java").

Цитата:
Относительно того, что С++ не полностью ООП язык, говорили уже сто раз. И как Java, так и C# все-таки более ООП языки нежели С++.
Если С++ позволяет использовать ОО стиль, но не заставляет вас делать это принудительно, следует ли, что С++ - не полностью ОО-язык?
Вы МОЖЕТЕ написать на С++ НЕ-ОО программу, но это ваш личный выбор, а не ограничения языка.

Цитата:
Ну если использовать три значения - 0%, 50% и 100%, то тут все верно, С++ действительно уступает в портируемости.
Да, но портируемость Java сродни переносимости эмулятора. Велком в 80-е! Давайте писать для Yamaha MSX или ZX Spectrum! На любой платформе, где есть эмуляторы этих машин (а они есть), программы окажутся 100% переносимыми.

Цитата:
В основном, пользователи ощущают, что приложения взаимодействуют быстро, несмотря на то, что они являются интерпретируемыми.
Для одной лишь поддержки приемлимой скорости выполнения любого Java приложения, написанного для JRE 1.4 требуется хотя бы процессор класса Pentium II и 128 (если не больше) мегабайт памяти. Заметьте, чтобы ваша программа "Hello, world" хотя бы загружалась и запускалась с нормальной скоростью. Мой личный опыт говорит, что тормозит это дело просто дико
rg_software вне форума