Инстинкт и доказательство - две вещи несовместные. :)
>вот у Вас проблема с Жабой какая? native method медленно зовётся?
Нет, сложнее. Нативный метод размещает некоторые (весьма дорогостоящие) системные ресурсы, Notes C API handle, если это интересно. Из деструктора объекта эти ресурсы освобождаются. Деструктор не зовется, пока гарбаж коллектор не соизволит найти этот объект, в результате системные ресурсы накапливаются практически неограниченно.
Проблема именно в "экспрессивности", в самой семантике жабной виртуальной машины, а именно в том, что интервал от освобождения объекта (выхода из области видимости последней ссылки на) до вызова деструктора велик, зачастую недопустимо велик, а все средства его сокращения - палка об двух, а то и более концах.
>потому что нужная функциональность уже реализована не на Жабе, и проще позвать её
Ну, в данном случае можно сказать и "проще", но переписать Нотуса на Жабе - это, как бы, с одной стороны не более, чем "сложно", но для большинства контекстов это слишком слабое выражение.
>интерпретируемый язык
Который рассчитан на исполнение "виртуальной машиной", а не пентиумом. :) Согласитесь, что хотя можно и си в байткоды компилировать, но этого почему-то никто не делает. :) То есть классификация "инстинктивная", но в крайних случаях (как С и PHP) бесспорная. Наличие гарбаж коллектора - сильный довод в пользу отнесения языка к интерпретируемым.
есть ли какой-то способ красиво и уважительно сказать "у Вас полная катастрофа с терминологией, Вы смешиваете в Ваших рассуждениях прагматику с абстракциями, не исключено также что Вы просто издеваетесь. короче Вы неправы но я элементарно устал спорить."?
ну в общем, представьте что я это красиво и уважительно сказал. спасибо. :)
Будучи практиком, я не могу не думать о прагматике.
Программирование вообще дело такое, что в нем абстракции ценны ровно постольку, поскольку прагматичны. И наоборот. Поэтому в их смешивании греха не вижу. Элемент издевательства присутствует. Фраза про терминологию вообще-то обратима. :) Поэтому не вижу в ваших словах ничего такого уж несправедливого.
В итоге к этому и пришли. Только... как бы это сказать помягче... если делать это по грамотному, то надо ведь после такого делать все методы объекта throwing ObjectIsClosed, правильно - а то мы сделаем close, а потом кто-нибудь метод возьмет и позовет? Ведь если деструктор не отработал, значит кто-то может держать на нас живую ссылку, правильно? Проблема висячих ссылок, только в профиль. И спрашивается, ради чего тогда мы выдумывали деструкторы и сборщик мусора?
Re: Еще к теме кривых stack frame
Инстинкт и доказательство - две вещи несовместные. :)
>вот у Вас проблема с Жабой какая? native method медленно зовётся?
Нет, сложнее. Нативный метод размещает некоторые (весьма дорогостоящие) системные ресурсы, Notes C API handle, если это интересно. Из деструктора объекта эти ресурсы освобождаются. Деструктор не зовется, пока гарбаж коллектор не соизволит найти этот объект, в результате системные ресурсы накапливаются практически неограниченно.
Проблема именно в "экспрессивности", в самой семантике жабной виртуальной машины, а именно в том, что интервал от освобождения объекта (выхода из области видимости последней ссылки на) до вызова деструктора велик, зачастую недопустимо велик, а все средства его сокращения - палка об двух, а то и более концах.
>потому что нужная функциональность уже реализована не на Жабе, и проще позвать её
Ну, в данном случае можно сказать и "проще", но переписать Нотуса на Жабе - это, как бы, с одной стороны не более, чем "сложно", но для большинства контекстов это слишком слабое выражение.
>интерпретируемый язык
Который рассчитан на исполнение "виртуальной машиной", а не пентиумом. :) Согласитесь, что хотя можно и си в байткоды компилировать, но этого почему-то никто не делает. :) То есть классификация "инстинктивная", но в крайних случаях (как С и PHP) бесспорная. Наличие гарбаж коллектора - сильный довод в пользу отнесения языка к интерпретируемым.
Re: Еще к теме кривых stack frame
Date: 2002-06-18 05:02 am (UTC)ну в общем, представьте что я это красиво и уважительно сказал. спасибо. :)
Пожалуйста
Программирование вообще дело такое, что в нем абстракции ценны ровно постольку, поскольку прагматичны. И наоборот. Поэтому в их смешивании греха не вижу. Элемент издевательства присутствует. Фраза про терминологию вообще-то обратима. :) Поэтому не вижу в ваших словах ничего такого уж несправедливого.
Re: Еще к теме кривых stack frame
Date: 2002-06-20 07:26 pm (UTC)Re: Еще к теме кривых stack frame
Ведь если деструктор не отработал, значит кто-то может держать на нас живую ссылку, правильно?
Проблема висячих ссылок, только в профиль. И спрашивается, ради чего тогда мы выдумывали деструкторы и сборщик мусора?