4 ms·
Is it correct to say Golang is bringing Limbo to the masses?
by krmboya 9mo ago
Is it correct to say Golang is bringing Limbo to the masses?
- pjmlp 9mo agoPartially, Go still doesn't support a few Limbo features. However the influence is quite clear, plus the Oberon-2 style methods and SYSTEM package.
- rcarmo 9mo agoNo, it's bringing Aleph to the masses. Limbo is a cousin, and Dis was certainly very interesting and something I wish had caught on.
- pjmlp 9mo agoAleph lacked GC, which Rob Pike considered the main reason for its implementation failure on Plan 9, and initially bounds checking was also missing. Two key design difference from Go and its two predecessors. Dis is an implementation detail, Go could offer the same dynamism with AOT toolchain, as proven by other languages with ahead of time toolchains available.
- 9rx 9mo agoThat might be Rust, actually. They have more in common with thoughts about type systems, built-in constructs, deterministic memory usage, etc. Limbo looks more like Go on the concurrency front, but that was inherited from Alef/Plan 9. That wasn't what Limbo brought to the table.
- pjmlp 9mo agoLimbo uses a garbage collector, though.
- 9rx 9mo agoSo does Rust. Rust is 'smarter' than Limbo, in that it can avoid using its GC in a lot of cases (but not all, hence why it still has GC to fall back on when necessary), but, I mean, that discovery was the reason for why Rust was created. Limbo was already there otherwise. Every new language needs to try to add something into the mix. Still, the thoughts were in common, even though the final solution didn't end up being exactly the same.
- maleldil 9mo agoAre you trying to say that Rc/Arc are GCs? I guess you're technically correct, but no one sees it that way.
- 9rx 9mo agoI would say that RC is GC, yes, as it is most definitely technically true. But it was pjmlp who suggested it originally (Limbo also uses reference counting), so we have clear evidence that others also see reference counting as being GC. We wouldn't have a discussion here otherwise.
- pjmlp 9mo agoWhile RC is a GC algorithm, chapter 5 from GC handbook, it doesn't count when it isn't part of the type system because then it becomes optional and not part of the regular use of the programming language. Additionally Limbo's GC is a bit more complicaticated than a plain add_ref()/release() pair of library calls. https://doc.cat-v.org/inferno/concurrent_gc/concurrent_gc.pdf https://doc.cat-v.org/inferno/concurrent_gc/concurrent_gc.pd...
- 9mo ago