From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Attila Lendvai Newsgroups: gmane.lisp.guile.devel Subject: RE: The Guile junk drawer and a C plea Date: Sat, 20 Jul 2024 09:34:22 +0000 Message-ID: References: <20240629002027.13853-1-richard@freakingpenguin.com> <87h6co21qv.fsf@laura> <87r0bsxpoe.fsf@web.de> <4d9d9c2e-0830-4267-b8e5-1a50cb815508@msavoritias.me> <87a5ifyd0g.fsf@web.de> <20240719104617.pLmG2C00D4SnA1G01LmG1n@andre.telenet-ops.be> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30919"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Greg Troxel , "Dr. Arne Babenhauserheide" , MSavoritias , "guile-devel@gnu.org" To: Maxime Devos Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sat Jul 20 11:35:01 2024 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sV6UX-0007r0-3J for guile-devel@m.gmane-mx.org; Sat, 20 Jul 2024 11:35:01 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sV6UD-0006oY-KS; Sat, 20 Jul 2024 05:34:41 -0400 Original-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 1sV6U7-0006Qh-C4 for guile-devel@gnu.org; Sat, 20 Jul 2024 05:34:36 -0400 Original-Received: from mail-40136.proton.ch ([185.70.40.136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sV6U4-0008Eq-M3 for guile-devel@gnu.org; Sat, 20 Jul 2024 05:34:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lendvai.name; s=protonmail2; t=1721468067; x=1721727267; bh=+wGPvWjD4niKg1dtkoeyYFHRwFVgyy5yTb3ufrw0ijE=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=kNdDAdB+IkaOJ8sPNjDCTJ/uFE4Wtg7/NLOl2aJslOZS9jIOcRAoKMCPk/siS0sSZ 0DniI7lbmo7f2o4e/+kDGx36d/wwVBj9tGUPztd2TYpsbweP0a7UNjmF058wgU2d8g tYf83mbWOIRpjoTe134/Wc7oa91h2euEJBYlH01JA6rLaIQWEVzZ2Ej1/B9LU+Ttjl 9w6nnfU5GnpZzbkqTlysvgkVMM+O0ilCXrA1VHEPcXVR7+6IL/ixNSR7yUyP8X6oqG nToPeb+vqKYZO16/HUuuWCbH2MXTopt8Q4dvko9herLNiYfQZ2LIygznvEvrfU3XiJ yRi2jf8xgENzw== In-Reply-To: <20240719104617.pLmG2C00D4SnA1G01LmG1n@andre.telenet-ops.be> Feedback-ID: 28384833:user:proton X-Pm-Message-ID: f3b9ef196a47efca9e33e4f1e44b10489fc23da7 Received-SPF: pass client-ip=185.70.40.136; envelope-from=attila@lendvai.name; helo=mail-40136.proton.ch X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:22589 Archived-At: > >If there were more concern about compatibility -- all 2.0 programs will >=20 > >compile an work with 3.0 -- then we would not need to keep the old >=20 > >versions. >=20 > One of these changes is how #:autoload works. One of the options to prese= rve compatibility yet introduce the new behaviour, could have been to defin= e =E2=80=98define-module2=E2=80=99 (to be used instead of the (deprecated) = =E2=80=98define-module=E2=80=99) with the new semantics. Since their implem= entations would share almost all code, there wouldn=E2=80=99t be serious im= plementation costs(*). The only significant downside I see here is that = =E2=80=98define-module2=E2=80=99 is a rather uncool name, but that=E2=80= =99s a non-issue. i'd argue with the statement that an aesthetic glitch is a non-issue. the short version: see the Broken Window phenomenon, and the Turing Tarpit. the longer version: you do not see how many potential contributors end up never touching the co= debase because of stuff like `define-module2`. i know how i operate, and i'= ve seen great coders exhibit similar behavior. i also participated in a few= discussions about how and why we got our impressions and made our decision= s. there are various signs of disorder; a few major ones that quickly come to = mind: - a messy filesystem structure - badly chosen names for abstractions - a lot of work for M-x whitespace-cleanup - inconsystent code formatting - lack of code comments next to kludges. kludges are ok, but uncommented kludges are a big red sign. - no attention for failing as early and as loudly as possible. - a lot of DWIM stuff, where e.g. some names are unnecessarily generated, which makes navigating (grep'ping) the codebase hopeless. IOW, unnecessary hindrance for code discoverability. these things give a quick impression about how much effort and annoyance it= would be to delve into the codebase, and how quickly the invested effor wo= uld yield a bugfix, or a new feature, or answers to questions. and people d= ecide based on this impression. and there's practically zero feedback about= the number of people deciding *not* to contribute based on such impression= s. in my understanding of how these things work, this is very much *not* a non= -issue. and this is the reason i spoke up in this thread, not to argue for indiscri= minate cleanups. retaining an ice-9 compatibility falls into the kludge cat= egory, i.e. it's ok if it's clearly marked as a kludge, and if it incurrs l= ittle extra maintenance costs. --=20 =E2=80=A2 attila lendvai =E2=80=A2 PGP: 963F 5D5F 45C7 DFCD 0A39 -- =E2=80=9CHe alone is great and happy who fills his own station of independe= nce, and has neither to command nor to obey.=E2=80=9D =09=E2=80=94 Johann Wolfgang von Goethe (1749=E2=80=931832), 'With the Iron= Hand' (1773), Act I