Date: Mon, 31 Dec 2018 08:02:23 -0700 From: Warner Losh <imp@bsdimp.com> To: Eric McCorkle <eric@metricspace.net> Cc: "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org> Subject: Re: Speculative: Rust for base system components Message-ID: <CANCZdfrMY73-7vK6F6q-iPdW7EOUP8CPThkyxwOoOWedyMu5Ag@mail.gmail.com> In-Reply-To: <ca76e5f7-6e59-bd67-144a-90ad66f0252e@metricspace.net> References: <ca76e5f7-6e59-bd67-144a-90ad66f0252e@metricspace.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Dec 30, 2018 at 10:41 PM Eric McCorkle <eric@metricspace.net> wrote: > Before I begin, I want to be clear that everything here is in the realm > of speculative, long-term discussion. My goal is to start a > conversation, not to propose anything concrete right now. > Today, this is a losing bid. The cost for rust is high (both in terms of people and added compile time), it's not well supported on all our architectures (and its robustness on the ones it does support has only been tested in limited scenarios), and there's 0 software it enables from day one. Plus, since it's a fast evolving language, we'll still need the ports to support those things that use it today since the likelihood of a version mismatch is high (and supporting 1 version would be a big stretch, multiple version is right out). So any sane cost / benefit analysis says: way more cost than benefit, forget about it. We simply don't have the man-power to maintain a high-cost, zero-benefit component in the tree. Lord knows we have a lot of non-zero-cost-with-almost-zero-benefit things in the tree today that we need to get rid of. In the future, when there are actual replacement things written, or there are new features written, that will shift the cost / benefit equation. And the circumstances about what makes up base will also have shifted, if we're lucky, and we'll be able to have a conversation. We imported perl and tcl on the speculative notion that people would build great things. That never really panned out, and they became a high-cost burden to keep modern for only minor benefit. And version skew in Perl was terrible by the end. Forth and Lua live in the tree because they have benefit (though Forth will be departing, most likely by 13, and definitely by 14). They are also small and easy to update to new versions. And we can't say, with certainty, that if a bunch of rust things show up we'll use them in base. We'll have to see what they provide to benefit the system. TBH, there's a stronger case for python than rust: there's actual python scripts in the tree today that we have to install a port to use. And there the benefit, while not zero, is small and the effort is large compared to just dragging it in as a port, so it hasn't been done. It's another fast evolving language that requires multiple versions as well... So write something that everybody wants, that must be in base, and that requires rust, and then we can have the conversation... Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfrMY73-7vK6F6q-iPdW7EOUP8CPThkyxwOoOWedyMu5Ag>