crypto5 wrote:
Только про локальное кеширование памяти потоками говорилось с самого начала а не "в результате выяснилось", ссылку на "аналогичный memory manager для С++" привел я значительно раньше вас в этом топике, ну и ссылка на мой взгляд доказывает что джава как раз двигается в правильном направлении, и С++ тут в роли догоняющего.
Интересно, а в гугле только Вы или другие в вашей команде тоже считают, что в Java "memory manager более продвинутый" безотносительно к применению языка? Сдается мне, что что-то в консерватории надо менять. Это я не исходя из топика, а по мотивам борьбы с андроидным NDK. Особенно в разрезе истории Андроида, когда в начале все считали, что dalvik - это наше все, и чуть не были кастрированы разработчиками игр и мультимедийных приложений. Мы, кстати, уже полгода кастрируем в изварщенной форме вашего главаря по Multimedia Framework Дейва Спаркса. Спасибо, что начиная с 2.2 хотя бы они перешли на полусвой stagefright, сильно недоделанный, но все-таки. Но глюки у него реально анекдотичные. Например, в симуляторе можно запускать сколько угодно меди плееров. Естественно, на железе это не поддерживается (пока), причем ограничение энфорсится в высокоуровневом коде, который написан каким-то студентом на Жабе. Рекомендую попробовать и посмотреть на ошибку, которую этот код выкидывает.
Топик мне нравится. Правильный топик. Наверное уже 100-й холивар Си++ vs Java за историю привета.
Причем ярые противники Си++ язык опонента знают только по беглому чтению книг и рассказам в курилках. Где-то слышали про страшный memory management, но не знают, как он работает. Ребята, вы поймите, что smart pointer'ы - это еще не memory manager. Писать с нуля reference counting при наличии готовых mature библиотек никому не придет в голову, если только на то не будет большой необходимости. Скажем, если вам нужен эффективный менджер для маленьких объектов, то сделать на Жабе его практически невоможно. Точнее, нельзя сделать универсальный менеджер. Точка. На Си++ вы можете реализовать свой аллокатор, и он будет работать одинаково эффективно везде. Это один частный пример. Про сборщик мусора мы как-то уже говорили тут несколько месяцев назад.
Сказки про страшных бородатых программистов, пишущих frameworks на Си, сильно преувеличены. Любая "продвинутость" memory manager'а Жабы определяется не удачной архитектурой языка, а наоборот, - это средство борьбы с его deficiencies. Пока memory manager не начнет понимать исходные тексты на уровне человека, никакая автоматика не будет на столько же эффективна и гранулярна, как низкоровневая имплементация того же самого человеком. Любую дурь можно придумать безотносительно к языку. Отстрелить ногу действительно проще на Си++, никто не спорит. Язык требует больше дисциплины и понимания основ. Поэтому учите основы, ребята...