From owner-freebsd-hackers@freebsd.org Mon Dec 31 13:31:45 2018 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 682251434866 for ; Mon, 31 Dec 2018 13:31:45 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from mail.bitblocks.com (ns1.bitblocks.com [173.228.5.8]) by mx1.freebsd.org (Postfix) with ESMTP id 63C476C2A5 for ; Mon, 31 Dec 2018 13:31:44 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from bitblocks.com (localhost [127.0.0.1]) by mail.bitblocks.com (Postfix) with ESMTP id 0711E156E410; Mon, 31 Dec 2018 05:31:22 -0800 (PST) From: Bakul Shah To: Eric McCorkle cc: "freebsd-hackers@freebsd.org" Subject: Re: Speculative: Rust for base system components In-reply-to: Your message of "Sun, 30 Dec 2018 21:18:33 -0500." References: Comments: In-reply-to Eric McCorkle message dated "Sun, 30 Dec 2018 21:18:33 -0500." MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <96353.1546263082.1@bitblocks.com> Date: Mon, 31 Dec 2018 05:31:22 -0800 Message-Id: <20181231133130.0711E156E410@mail.bitblocks.com> X-Rspamd-Queue-Id: 63C476C2A5 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of bakul@bitblocks.com designates 173.228.5.8 as permitted sender) smtp.mailfrom=bakul@bitblocks.com X-Spamd-Result: default: False [-1.80 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-0.96)[-0.963,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:173.228.5.8/29]; NEURAL_HAM_LONG(-0.92)[-0.917,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[bitblocks.com]; NEURAL_SPAM_SHORT(0.45)[0.451,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[mail.bitblocks.com]; RCPT_COUNT_TWO(0.00)[2]; IP_SCORE(-0.16)[asn: 46375(-0.72), country: US(-0.08)]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:46375, ipnet:173.228.0.0/20, country:US]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Dec 2018 13:31:45 -0000 On Sun, 30 Dec 2018 21:18:33 -0500 Eric McCorkle wrote: > > Go is not really a "systems language" in the sense that C or Rust are. > It isn't a replacement for C so much as a replacement for python. > > What's more, it is almost universally disliked by people with a > background in programming languages (I am one of those). There's a > couple of reasons for this. First, it omits a number of features that > modern languages *really* should include, parameterized types (generics) > being one of the most glaring. Beyond that, it completely ignores > anything produced by modern PL research (unlike Rust, which benefits > from that work). Second, one of its main design parameters was "it > should compile fast". This as a design constraint basically guarantees > that you can't do anything interesting in compilation, which rules out > both advanced type systems as well as serious optimization. > > Unlike Rust, which offers substantial security and stability benefits > through its type system, Go would do little more than just change the > syntax of a bunch of code. Moreover, it's likely that there would be > performance consequences, given the design constraint of fast compilation You haven't used Go at all, have you? No one is suggesting Go be included in the base system but please stop spreading FUD. While this is not the place to discuss Go, it is perfectly usable for writing typical "systems" programs. Though I wouldn't recommend it for writing kernel code.