4 ms·
The power of a software is in composing things via powerful abstractions. When you write a useful library in a PL with GC, you automatically make it unavailable
by oleganza 6y ago
The power of a software is in composing things via powerful abstractions. When you write a useful library in a PL with GC, you automatically make it unavailable in all applications that can't use GC. What's worse, other libraries that could've built something around yours have to choose whether to limit their applicability to applications with GC or find another way.
But if you have a clever language that navigates this tradeoff and lets you build powerful zero-cost abstractions (C++, Rust, Zig), then it attracts significantly more talent that compounds.
- pjmlp 6y agoThere are many ways to compose software and libraries, it doesn't need to be static linking all the time. Everyone praises UNIX for pipes in the shell and forgets about OS composition APIs.
- StefanKarpinski 6y agoThat’s a fair point. Something we’re very interested in is exposing libraries written in Julia without the full runtime, ditching the JIT or the GC if you don’t need them. It would be easy to write a libm replacement in Julia, for example, without using either of those. Regarding talent, it depends on the kind of talent you’re talking about. Yes, systems programmers like Rust. On the other hand, needing to deal with a strict borrow checker excludes a very large number of people with numerical computing, data science and machine learning expertise (not all, but definitely most). So it cuts both ways.