avva: (Default)
[personal profile] avva
История создания Джавы и C#.

(только программистам будет интересна; спасибо [livejournal.com profile] hotgiraffe за ссылку).

Re: Еще к теме кривых stack frame

Date: 2002-06-18 04:47 am (UTC)
From: [identity profile] pargentum.livejournal.com
>инстинкта хватит.

Инстинкт и доказательство - две вещи несовместные. :)

>вот у Вас проблема с Жабой какая? native method медленно зовётся?

Нет, сложнее. Нативный метод размещает некоторые (весьма дорогостоящие) системные ресурсы, Notes C API handle, если это интересно. Из деструктора объекта эти ресурсы освобождаются. Деструктор не зовется, пока гарбаж коллектор не соизволит найти этот объект, в результате системные ресурсы накапливаются практически неограниченно.

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

>потому что нужная функциональность уже реализована не на Жабе, и проще позвать её

Ну, в данном случае можно сказать и "проще", но переписать Нотуса на Жабе - это, как бы, с одной стороны не более, чем "сложно", но для большинства контекстов это слишком слабое выражение.

>интерпретируемый язык

Который рассчитан на исполнение "виртуальной машиной", а не пентиумом. :) Согласитесь, что хотя можно и си в байткоды компилировать, но этого почему-то никто не делает. :) То есть классификация "инстинктивная", но в крайних случаях (как С и PHP) бесспорная. Наличие гарбаж коллектора - сильный довод в пользу отнесения языка к интерпретируемым.

Re: Еще к теме кривых stack frame

Date: 2002-06-18 05:02 am (UTC)
From: [identity profile] cmm.livejournal.com
есть ли какой-то способ красиво и уважительно сказать "у Вас полная катастрофа с терминологией, Вы смешиваете в Ваших рассуждениях прагматику с абстракциями, не исключено также что Вы просто издеваетесь. короче Вы неправы но я элементарно устал спорить."?

ну в общем, представьте что я это красиво и уважительно сказал. спасибо. :)

Пожалуйста

Date: 2002-06-18 05:14 am (UTC)
From: [identity profile] pargentum.livejournal.com
Будучи практиком, я не могу не думать о прагматике.

Программирование вообще дело такое, что в нем абстракции ценны ровно постольку, поскольку прагматичны. И наоборот. Поэтому в их смешивании греха не вижу. Элемент издевательства присутствует. Фраза про терминологию вообще-то обратима. :) Поэтому не вижу в ваших словах ничего такого уж несправедливого.

Re: Еще к теме кривых stack frame

Date: 2002-06-20 07:26 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
Пардон, а почему нельзя иметь метод close, и вызывать его в крыле finally оператора try {...} finally { rsrc.close(); } ?

Re: Еще к теме кривых stack frame

Date: 2002-06-20 11:58 pm (UTC)
From: [identity profile] pargentum.livejournal.com
В итоге к этому и пришли. Только... как бы это сказать помягче... если делать это по грамотному, то надо ведь после такого делать все методы объекта throwing ObjectIsClosed, правильно - а то мы сделаем close, а потом кто-нибудь метод возьмет и позовет?
Ведь если деструктор не отработал, значит кто-то может держать на нас живую ссылку, правильно?
Проблема висячих ссылок, только в профиль. И спрашивается, ради чего тогда мы выдумывали деструкторы и сборщик мусора?

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 04:14 am
Powered by Dreamwidth Studios