Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Except if you're embedding a runtime you invert the simplicity of a GC.

As soon as GC'd pointers start passing across an FFI boundary you either need to:

1. Pin them and track yourself, which then loses a lot of your advantage of having a GC since you've got non-deterministic seg-faults based on when GC runs and pulls objects out from underneath you. C# lets you do this, but it's really painful to get right.

2. Prevent any GC objects being passed(which is what Go does). This means that there's a lot of things you can't do(esp with respect to callbacks and future events) that require a ton of gymnastics to do something that's trivial in C.



I absolutely agree with this. I didn't mean to convey otherwise.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: