LINUX.ORG.RU

Через год Java одержит окончательную победу над C, С++ и Visual Basic, показывают результаты последних исследований


0

0

На конференции IBM Solution вице-президент аналитической компании Evans Data Дженел Гарвин представила сенсационные данные. Результаты недавних исследований позволяют с большой долей уверенности предсказать, что в следующем году в США численность разработчиков, использующих Java, превысит численность тех, кто пользуется C, C++ или Visual Basic.

>>> Подробности

anonymous

Проверено:

Ответ на: комментарий от AC

> Зато, когда вам понадобится еще какое-нибудь представление, вы не
> будете переколбашивать ваш класс, который реализует два интерфейса,
> чтобы реализовать третий
Ну, я же не мазохист. Ясен пень, что даже в случае, когда Фича (пусть
будет именоваться так, для краткости :) имеется, вся осмысленная
имплементация будет скрыта в private методах (ну в крайнем случае
protected). А методы интерфейсов -- либо открыты, либо скрыты так, чтобы
их можно было вызывать только приведением к интерфейсу. И получится
ровно настолько же красиво, только без Nкратного увеличения количества
объектов. И настолько же понятно (потому что перед каждым методом
взятом из какого-либо интерфейса стоит название этого интерфейса).

По поводу занимаемой памяти -- я только что написал пару тестов на
Java.
В одном создается 10000 экземпляров класса, имплеметирующего два
интерфейса, в каждом из которых по одному методу. В другом создается
по 10000 экземпляров не реализующего интерфейсы класса и пары адаптеров.
Атрибутов у классов нет ни в одном ни в другом тесте. Ссылки из
адаптеров на класс-имплементацию во втором тесте тоже не хранятся (но
передаются в конструкторе). Тесты были запущены на PIII-550,
JDK 1.3.0 от blackdown, java машине было отведено 128M памяти на кучу
(-Xms128m -Xmx128m). Результаты:
первый тест: время прохождения=32-33ms изменение кучи=248256байт
второй тест: время прохождения=86-105ms изменение кучи=738216байт

Понятно, что в реальной жизни результаты будут отличаться. В
иплементирующем классе появятся атрибуты, а в адаптерах -- нет.
И разрыв между тестами в потребляемой памяти (но, скорее всего, не во
времени) сократится.

> Резюме -- множественное наследование реализации полезно,
> множественное наследование "одноименных" интерфейсов -- нет:)
Мне такой вывод не очевиден, но я предлагаю на этом дискуссию
прекратить (хотя бы потому, что в ближайшую неделю, скорее всего,
я физически не смогу ее продолжать, потому как буду в Риме, а через
неделю этот thread будет напрочь задушен всякой лажей типа
"m$ сделал линукс там-то, а линукс сделал m$ сям-то" :) Вашу точку
зрения я примерно понял :)

BarD
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.