From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id uAHKK50jamXtOwEAG6o9tA:P1 (envelope-from ) for ; Fri, 01 Dec 2023 19:19:09 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id uAHKK50jamXtOwEAG6o9tA (envelope-from ) for ; Fri, 01 Dec 2023 19:19:09 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 7783133671 for ; Fri, 1 Dec 2023 19:19:09 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=DihSbila; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1701454749; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=hnfccH/6fJ9Cum3jlE2P/rQMSsMo473g4tdvkIQUF5c=; b=Llb9zelrhhlhprIab7uhevsApIyELFnOlqrnFLTL1cN/qVEOGmGuqmv9UEe00r0V+jTPS4 eP7/Wd0xyFFvvQNhxBLvSqsYg4xVXjaUot8M8TMrOd7yrW8V9vGibHJOdivIoy1Fq17e1x GVM4aj8dKX56IKSK9mBGC41+iU56OIh+TJ6pmSQ2xU055t7rhOzki9Iu3e2UtxM9DgCBDt 3WR9yErBgUdPIIXCeLuT/SW0EIU2reFG8WEpfyCgpQmBuyDcRnc3Ftzh0jEDi2K9Ofso9F 4/lY7/bmNGKjNjUCLg3NaltMJFF07GQTpT6gS31dbiMR47cCUOuVVv+c5erJHg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=DihSbila; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net ARC-Seal: i=1; s=key1; d=yhetil.org; t=1701454749; a=rsa-sha256; cv=none; b=sCqaSy6zOSiFQa6BeXKtOPjU6ynvJOC74t7YzLW5duAA1/c5QiDE9xca7a1nsQMkvHFA8/ 4LTr4xKG5CtbsdhbZuS+xKWJbi0t98RwMtFe5VTXpz/orkg1WTXTHW7oxoOD05u+LQb/oB HPUBDZo1V2v5KXQNh+OvJ7Ark5chcNP6l6B7H5czC1W8W41RDgoSU/7n1S0ZO42hVUI8b7 yxO1bhpQDqBQczOC2QOkeaxyWHgJEQr5hd6XomtwE5Ij7F5f30DIFVPAU0m+6+CbT6v1PA 1OX5B3KP52AYat4CIhrfLa8jgzRuXpnXMAD+nZWrIksosgixsZm0Ws+hHlTSHw== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r985v-0001kC-TM; Fri, 01 Dec 2023 13:18:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r985u-0001k2-Q4 for guix-devel@gnu.org; Fri, 01 Dec 2023 13:18:30 -0500 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r985p-0007D4-Sz for guix-devel@gnu.org; Fri, 01 Dec 2023 13:18:30 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 29D6A240028 for ; Fri, 1 Dec 2023 19:18:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1701454702; bh=hnfccH/6fJ9Cum3jlE2P/rQMSsMo473g4tdvkIQUF5c=; h=Message-ID:Date:MIME-Version:Subject:To:From: Content-Transfer-Encoding:From; b=DihSbilaw3BEHYUUisIrDmBHZZtsS3IfxppRgJsk+BmoyYi65T76y0NOyS/IIo73o VTtcJxAd1szY9vXQN7m+ROXHmDLofUQkJ//ktFy7eqH+7Kw331EDu0LfxwkDDC4O9u xFg/trh5fXFoRUT/njcKIuF0opNAUbrEqspFAYpXo1HRw/kOaYnr8OBXtTb6n4ZeiG zabLi/FHKKt7X3VGVfw6D6fcndqSidEFUaVGJ9v2en2TENpSNU6ikw0fmy9YP0ih8a j+eORZViK9EXfha1GYtMdod7U+27MYqdpLFGO/OPBJy8/P3khAP9nvG0KPrw8tMI4Y J6yiEnqNChVig== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4ShhBj3WQ0z6tvt for ; Fri, 1 Dec 2023 19:18:21 +0100 (CET) Message-ID: <0e2b70a2-b21f-171a-dde5-31baf3d73fb3@posteo.net> Date: Fri, 1 Dec 2023 18:18:20 +0000 MIME-Version: 1.0 Subject: Re: Syntactic Diabetes (was Re: A friendlier API for operating-system declarations) Content-Language: en-US To: guix-devel@gnu.org References: <87wn377rst.fsf@rdklein.fr> <877cm6reum.fsf@rdklein.fr> <52c2337b277721108e5e7cdd6ea32e37e3c20628.camel@gmail.com> <8734wsqwrh.fsf@rdklein.fr> <33976deaf13ce785edefa6ac1b3610054dd4a031.camel@gmail.com> <87v89op6f2.fsf@rdklein.fr> <87ttp4jfiy.fsf@lease-up.com> <4H69vnQJrUA5WrVPVfQknwCz2ymq8NFyOnp0cCuqZiUVpSAwp6QAhonzbnSpsuRZJcZUX4dmV-U-qhV7CXNH5UOaGV8IEaL2fY8qXmPnmns=@lendvai.name> From: Michal Atlas In-Reply-To: <4H69vnQJrUA5WrVPVfQknwCz2ymq8NFyOnp0cCuqZiUVpSAwp6QAhonzbnSpsuRZJcZUX4dmV-U-qhV7CXNH5UOaGV8IEaL2fY8qXmPnmns=@lendvai.name> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=185.67.36.65; envelope-from=michal_atlas+gnu@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -6.85 X-Spam-Score: -6.85 X-Migadu-Queue-Id: 7783133671 X-Migadu-Scanner: mx12.migadu.com X-TUID: vLFpP4xmNsUq Hello, > just FTR, i don't think that the guix codebase is too bad in this regard. It's not bad for the slightly initiated, which does still take time, and I think that front would perhaps benefit from some attention. My main take away from this was that what I liked mostly about the BeaverLabs syntax was how short and simple minimalist systems became and that larger intentions could be represented by short invocations. The thing is services already allow that. There's os/git a beautiful function in BeaverLabs, which calls a set of other beaverlabs functions but it could equivalently be a service which extends other services. Perhaps this implies that what is wished for is a set of convenience services that combine sets of higher-level features, and making the operating-system record itself friendlier to specifying very little. I did mention observations about the functional approach here, but after a while of using it, I myself in the end failed to see its merits apart from the slightly shorter service declaration which I personally recovered by a trivial (&s #NAME# #BODY# ...) => (service #NAME#-service-type (#NAME#-configuration #BODY# ...)) replacement, without the need for all the extra effort. I agree with the points made by others about grepability and approachability. Perhaps though BeaverLabs service syntax could deserve a mention as an alternative syntax somewhere in the cookbook or as an appendix in the manual/blogpost to show how malleable guix is. Cheers