juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2008-05-14 12:56 pm

dynamic vs static

Я не собираюсь вступать в эту нонешнюю дискуссию. Просто хочу заметить, что речь идёт о "гарвардской архитектуре" супротив "архитектуры фон Неймана".

В первой данные отделены от кода, и задача программиста состоит в том, чтобы состыковать, хоть и через посредников, данные и код, который их обрабатывает; вот и приходится катать всякие конфигурации, эксэмэли, ентити бинзы; всё для того, чтобы уберечь код от данных. Тогда код можно статически проверить и отлить в бронзе. Чтоб не сломался.

Во второй что данные, что код, без разницы; код - это вид данных, а данные могут на определённом уровне интерпретироваться как код, или строить код, который эти данные сынтепретирует (как, помню, была какая-то база, которая строила классы для доступа прямо при открытии таблицы: взял таблицу - вот и классы загрузились; естественно, что динамически.

Ну а так, наверное, стоит почитать, конечно: Егге устраивает разгром в столице статической типизации

[identity profile] itman.livejournal.com 2008-05-14 08:28 pm (UTC)(link)
Чего-то я не понял как Джава "make uses of multicores" while "c++ doesn't". Что это за интересное такое заявление?

[identity profile] ivan-gandhi.livejournal.com 2008-05-14 09:48 pm (UTC)(link)
А, это вот о чём. JVM справляется с этим без участия человека; thread запустил, а он уж куда-нибудь попадёт. И доступ к переменным организован, с самого начала, правильным образом.

[identity profile] itman.livejournal.com 2008-05-14 09:56 pm (UTC)(link)
Ну а плюсовый тред не туда попадет?
PS: а что такое правильный доступ к переменным?

[identity profile] ivan-gandhi.livejournal.com 2008-05-14 10:26 pm (UTC)(link)
Правильный доступ - это обеспечение синхронизации.

[identity profile] itman.livejournal.com 2008-05-14 11:51 pm (UTC)(link)
Я не очень понимаю, как все это сказывается на производительности. Средства синхронизации и треды в плюсах имеются, я верю, что JVM может выжимать какие-то проценты доппроизводительности из многоядерного процессора, но я не верю
а) Просто интерпретируемая Джава (без JIT) быстрее плюсов
б) Даже Джаве с JIT на самом деле довольно непросто догнать плюсы, потому как расходы на компиляцию на месте нужно компенсировать за счет множества обращений
в) Автоматическую сборку мусора пока еще не отменял
г) Ну, и наконец в Джаве нет (или уже есть)? inline кода и C++-like шаблонов.
По модулю всех этих утверждений, с трудом верится, что нонче Джава быстрее плюсов.

[identity profile] ex-zadoff59.livejournal.com 2008-05-14 11:01 pm (UTC)(link)
кури мутексы чтоли

[identity profile] ivan-gandhi.livejournal.com 2008-05-14 11:10 pm (UTC)(link)
Щас разбежался. Слишком мелкая вещь для джавного программиста.

[identity profile] relyef.livejournal.com 2008-05-15 12:44 am (UTC)(link)
Сейчас Вы скажете, что Java поддерживает threads affinity :)

[identity profile] ivan-gandhi.livejournal.com 2008-05-15 06:22 pm (UTC)(link)
Это язык врага, "thread affinity". Всё что у джавы в этом смысле есть - это threadlocal. Можем, если захочем.

[identity profile] relyef.livejournal.com 2008-05-15 06:25 pm (UTC)(link)
Вопрос на засыпку - io-completion API - это тоже "язык врага"?

[identity profile] relyef.livejournal.com 2008-05-15 10:12 pm (UTC)(link)
Что - ну? Да или нет?

[identity profile] mikkim08.livejournal.com 2008-05-16 10:32 am (UTC)(link)
Это асинхронный i/o. А "io-completion API" там где ?