Ну знаете
Цитата:
Небезосновательно:
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" хотя бы загружалась и запускалась с нормальной скоростью. Мой личный опыт говорит, что тормозит это дело просто дико