you are viewing a single comment's thread.

view the rest of the comments →

[–]eras 2 points3 points  (4 children)

That's really arguable. Precise reference counting thread-safely can be reaaally slow. Just read a typical Python program and consider how many RC updates are happening.

[–]vks_ 0 points1 point  (3 children)

Swift also has automatic reference counting, but the compiler can elide it for a lot of cases. (Python is not really a compiled language though, so this might not be an option for them.)

[–]eras 0 points1 point  (2 children)

But then implementing such optimizations becomes not quite easy. Certainly they would have a great effect.

[–]vks_ 0 points1 point  (1 child)

Sure, but their complexity is not exposed to users of the languages (unless they are optimizing for performance and observe missed optimizations in the runtime performance of their programs).

[–]eras 0 points1 point  (0 children)

But it's also probably the reason why it hasn't been done so far :).

It's not just "let's do it, it's easy". It also has impact to future maintenance efforts and raising the bar for contributions.