From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Damien Mattei Newsgroups: gmane.lisp.guile.devel Subject: Re: The Guile junk drawer and a C plea Date: Sat, 29 Jun 2024 10:33:34 +0200 Message-ID: References: <20240629002027.13853-1-richard@freakingpenguin.com> <87msn4qiad.fsf@web.de> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000e312f0061c033882" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38727"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Mikael Djurfeldt , "Thompson, David" , Richard Sent , guile-devel To: "Dr. Arne Babenhauserheide" Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sat Jun 29 10:34:13 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 1sNTXA-0009pK-Cx for guile-devel@m.gmane-mx.org; Sat, 29 Jun 2024 10:34:12 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sNTWn-0001zX-Oj; Sat, 29 Jun 2024 04:33:49 -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 1sNTWm-0001yt-Bp for guile-devel@gnu.org; Sat, 29 Jun 2024 04:33:48 -0400 Original-Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sNTWk-0002TY-Bd for guile-devel@gnu.org; Sat, 29 Jun 2024 04:33:48 -0400 Original-Received: by mail-qk1-x734.google.com with SMTP id af79cd13be357-79c05313eb5so119752185a.1 for ; Sat, 29 Jun 2024 01:33:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719650025; x=1720254825; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=uaf6Ee6LYJTHgBQGrjinyhAS/ca6XSPXRjWo4YoHTvM=; b=UN/8SCs3/eaMkxgdmWFfD2pBze/jp1k8epxpEbJgBMc1hU9OnO5d+bvtYSK76F6qGS C6Ujo/Fg4skGudQ31d0g2705GDrdhHHpsYaAynVdDtxcel2GrelTl2+RjqvkalVPlrMz RkD1DRBZA4ByKfX0HsjWIe8FjzYPTPg65kiTWOmbzoV1ca5l+apM29PX14a9dwaG9bHl 8VCf1SZgXqg10NzlcV+66Dl6Eo3Ks5SrfSTXT2o2ztlEiqG/dEHfaE81LX0HEdvQdiec IMHO2YXGhcCABg/wRvBvgoR/tsWdyd1RiRVIjVnFIn0CrkDsPXxbMqSvAS1n3+rQ2kLl Huqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719650025; x=1720254825; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uaf6Ee6LYJTHgBQGrjinyhAS/ca6XSPXRjWo4YoHTvM=; b=vxmdHKQfIXGXDFjPYuX9dU56mi1T0p7zNH80wwQOVwC+ewAVssWRkhqToxPIQWqZH4 RzRtphz5uXv6UDbOt29fR+auY7PBN2tY6xMmwBg4CEvu0FDLHJ5hIEHk7/eDoQR2EnWp BMjU/8Py4EJII/kU1RM5A+TyWrZGptuepDpoQVH4QILHwMHWJzicbAixbFmSqko4cKcU LQr9iLXBOvc0xOP9Fep2twLgZw3ciLOiYbJqeFu463oYM94WwdVgM2wiXbWicRlRy4hn w5EWcPMSifKlfUf7EJm/AkMzCfaZjjrmVQOQ54F2W/x+q7+CKePv9pDHBvjhqo2Obd01 wpzg== X-Forwarded-Encrypted: i=1; AJvYcCUoOC2bx+HYxAhzic3kj2qDPsZhtqNRO8Gni2Jezd0aIIk02AdBVCa/ref0LLK0fJyuh4nBhhPWi4IKnhSHPhEUOqxT X-Gm-Message-State: AOJu0Yx1Al/v/zg8LU+tUhqDsM66Hl9HKYd9dUKBXxgQW2yR19yiIiKi uXTYz3Gqm2l+FEMCkoiVRnry9DnxBUZmFTrfbxXJQoMLGNqFO/Q1yv0SwHL/kAeBhhUoO16iebN WdWeF4oOdi0SQlAYkeeqI6OC6r7E= X-Google-Smtp-Source: AGHT+IGsRAZzUQhvDm5SsyYNxDVXvPhfPnAjB2AefeosTcIrWGOxrx1eh7HaMOzYODx2aLGzIyT12jB1eXl4E9Lzyi0= X-Received: by 2002:a05:620a:40ca:b0:79d:7ae0:ffd2 with SMTP id af79cd13be357-79d7ba771e5mr68397185a.49.1719650025145; Sat, 29 Jun 2024 01:33:45 -0700 (PDT) In-Reply-To: <87msn4qiad.fsf@web.de> Received-SPF: pass client-ip=2607:f8b0:4864:20::734; envelope-from=damien.mattei@gmail.com; helo=mail-qk1-x734.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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:22499 Archived-At: --000000000000e312f0061c033882 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable just my 2 cents... about moving code from C to Scheme, it seems to be the Racket choice , they had Racket written in C and now they have a new version based on Chez Scheme that is mainly written in Scheme, they move a lot of code from C to Scheme as far as i know... About breaking backward compatibility , i understand it could be a disaster... but if Python made this choice is to go forward in better language, if you never move something you can not advance and create better things. It is my critic of Scheme: have too little change in 40 years, even if in Scheme+ i try to be 100% compatible with Scheme. By the way i do not understand why a 100% written scheme program would no more work with a different (internal) scheme implementation but i do not know Lilypond design. regards, Damien On Sat, Jun 29, 2024 at 10:13=E2=80=AFAM Dr. Arne Babenhauserheide wrote: > Mikael Djurfeldt writes: > > > design a new module hierarchy, introduce aliases for module bindings, > > and still supply the old module hierarchy during a few years for > > backward compatibility. > > Please do not do this. It is a recipe for disaster. > > Do you remember when Lilypond broke with Guile 2.0? > How long it took to get it working with modern Guile again? > This plan would cause the same =E2=80=94 but much, much worse. > > Lilypond is the one tool using Guile =E2=80=94 the single tool =E2=80=94 = which actually > reigns supreme in its domain. Nothing else comes even close in quality. > > The tools broken by breaking things =E2=80=9Cwith sufficient warning=E2= =80=9D are > usually the most advanced ones. Specialized tools. The ones which rule > in their domain. That people depend on. > > There=E2=80=99s something many useful things have in common: they work an= d need > little changes. > > When the infrastructure these tools use intentionally breaks the tools > and requires constant upkeep just to keep working, this makes the > infrastructure volatile and unreliable. > > Such large changes promise to make the system better, but they leave > it in a state of eternal semi-brokenness, because before the first > breakage is fully resolved, the next part gets rewritten and it causes > more breakage. And so the next breakage comes. Because doing such > =E2=80=9Clet=E2=80=99s just change it all=E2=80=9D steps changes the cult= ure. > > Python tools had just kept working for years and years before Python 3. > After the release of Python 3, they broke every few years. The culture > had changed to one that accepts being volatile. > > Making Guile volatile would make it a dumb idea to depend on it for > infrastructure. And I very much want to use Guile for my infrastructure. > > I reduced my reliance on Python after having to spend time again and > again when my existing tools broke. Guile is becoming the replacement > for it. Please don=E2=80=99t plan to break it. > > Please let us be a reliable foundation for infrastructure. > > Best wishes, > Arne > > PS: If this argument doesn=E2=80=99t suffice for you, before you discard = it, > please have a look at > https://www.draketo.de/software/volatile-infrastructure > -- > Unpolitisch sein > hei=C3=9Ft politisch sein, > ohne es zu merken. > draketo.de > --000000000000e312f0061c033882 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
jus= t my 2 cents...

about mov= ing code from C to Scheme, it seems to be the Racket choice , they had Rack= et written in C and now they have a new version based on Chez Scheme that i= s mainly written in Scheme, they move a lot of code from C to Scheme as far= as i know...
<= br>
About break= ing backward compatibility , i understand it could be a disaster... but if = Python made this choice is to go forward in better language, if you never m= ove something you can not advance and create better things. It is my critic= of Scheme: have too little change in 40 years, even if in Scheme+ i try to= be 100% compatible with Scheme. By the way i do not understand why a 100% = written scheme program would no more work with a different (internal) schem= e implementation but i do not know Lilypond design.

regards,
Damien

<= div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jun 29, 2024 at 10:13=E2=80=AF= AM Dr. Arne Babenhauserheide <arne_ba= b@web.de> wrote:
Mikael Djurfeldt <mikael@djurfeldt.com> writes:

> design a new module hierarchy, introduce aliases for module bindings,<= br> > and still supply the old module hierarchy during a few years for
> backward compatibility.

Please do not do this. It is a recipe for disaster.

Do you remember when Lilypond broke with Guile 2.0?
How long it took to get it working with modern Guile again?
This plan would cause the same =E2=80=94 but much, much worse.

Lilypond is the one tool using Guile =E2=80=94 the single tool =E2=80=94 wh= ich actually
reigns supreme in its domain. Nothing else comes even close in quality.

The tools broken by breaking things =E2=80=9Cwith sufficient warning=E2=80= =9D are
usually the most advanced ones. Specialized tools. The ones which rule
in their domain. That people depend on.

There=E2=80=99s something many useful things have in common: they work and = need
little changes.

When the infrastructure these tools use intentionally breaks the tools
and requires constant upkeep just to keep working, this makes the
infrastructure volatile and unreliable.

Such large changes promise to make the system better, but they leave
it in a state of eternal semi-brokenness, because before the first
breakage is fully resolved, the next part gets rewritten and it causes
more breakage. And so the next breakage comes. Because doing such
=E2=80=9Clet=E2=80=99s just change it all=E2=80=9D steps changes the cultur= e.

Python tools had just kept working for years and years before Python 3.
After the release of Python 3, they broke every few years. The culture
had changed to one that accepts being volatile.

Making Guile volatile would make it a dumb idea to depend on it for
infrastructure. And I very much want to use Guile for my infrastructure.
I reduced my reliance on Python after having to spend time again and
again when my existing tools broke. Guile is becoming the replacement
for it. Please don=E2=80=99t plan to break it.

Please let us be a reliable foundation for infrastructure.

Best wishes,
Arne

PS: If this argument doesn=E2=80=99t suffice for you, before you discard it= ,
=C2=A0 =C2=A0 please have a look at
=C2=A0 =C2=A0 https://www.draketo.de/software= /volatile-infrastructure
--
Unpolitisch sein
hei=C3=9Ft politisch sein,
ohne es zu merken.
draketo.= de
--000000000000e312f0061c033882--