3 ms·
I always found languages which require you to always remember to manually call destructors to be quite hard, be they C or Go or JavaScript, when the system has
by mort96 4y ago
I always found languages which require you to always remember to manually call destructors to be quite hard, be they C or Go or JavaScript, when the system has lots of moving parts and performance is a concern. A single mistake and you're leaking.
- asp_hornet 4y agoGo doesn’t require you to call a destructor
- morelisp 4y agoClose, e.g., is a destructor in this context. Defer helps but some true lexical scoping might be nicer.
- andsoitis 4y ago> remember to manually call destructors to be quite hard, be they C or Go or JavaScript I thought JacaScript doesn’t have destructors (in the memory/resource management sense) or finalizers…
- mort96 4y agoFile handle destructor: https://nodejs.org/api/fs.html#filehandleclose https://nodejs.org/api/fs.html#filehandleclose WebSocket's destructor: https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/c... HTTP server's destructor: https://nodejs.org/api/http.html#serverclosecallback https://nodejs.org/api/http.html#serverclosecallback Etc etc etc. You're right that JS/C/Go don't have language features called destructors, but they have a whole bunch of types with ad-hoc destructor functions which you have to remember to call if you want to avoid leaking resources.
- bakkoting 4y agoThere's a proposal for syntax to help with this in JS, incidentally: https://github.com/tc39/proposal-explicit-resource-management https://github.com/tc39/proposal-explicit-resource-managemen...