From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Dr. Arne Babenhauserheide" Newsgroups: gmane.emacs.devel Subject: Iterative Tinkering depends on API stability Date: Wed, 15 May 2024 07:34:20 +0200 Message-ID: <871q63tz8j.fsf@web.de> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24999"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.12.4; emacs 30.0.50 To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed May 15 07:35:29 2024 Return-path: Envelope-to: ged-emacs-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 1s77IX-0006Ii-2p for ged-emacs-devel@m.gmane-mx.org; Wed, 15 May 2024 07:35:29 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s77He-0005SR-ND; Wed, 15 May 2024 01:34:34 -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 1s77HW-0005SB-Tl for emacs-devel@gnu.org; Wed, 15 May 2024 01:34:27 -0400 Original-Received: from mout.web.de ([212.227.15.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s77HT-0006j3-VU for emacs-devel@gnu.org; Wed, 15 May 2024 01:34:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1715751261; x=1716356061; i=arne_bab@web.de; bh=52g7UqD8UiApaSJeVMCcSUfQHG868BhQn7DPtYJxyPw=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-ID:MIME-Version: Content-Type:cc:content-transfer-encoding:content-type:date:from: message-id:mime-version:reply-to:subject:to; b=ZUztHZyQNpGHtlhUXtyuUfS6aGUrNXaAy2cUu+z4FUgWkME5ZVogW+l6fznlwaE0 dZkaz1X9iAmm3i4aGgaE/lmy7D+ZlNvi+0zCW26KNYWPxvMvz/PRqqlhf9RXE9ext PAebZgX8ozttdQMdhj1J/XmYeSGh1UAIYqxrK/rnEnCjuRQQ2U1V2m0Usl6a9ng7h 41fTsbqhnBcTYkhVAW+LuqIaYQm1EH5kwVEvbwpt/vaDg0KJRkaAwUzs4f3bxl5it VKbA9PBCSZpGDgDF50R7sO4BoA5eLj3GZUewqfuF/NEB8KIy2ilZtsfkdc5KJP39K +aLdiGowMkBZChaP/g== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Original-Received: from fluss ([80.136.28.187]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MkVsg-1sqvxb31Ru-00baNM; Wed, 15 May 2024 07:34:21 +0200 X-Provags-ID: V03:K1:sJlfR1s/Si67t7U0kwNdscEWBHGArfiRh0OaOj9S+vNbWR2wZfX 583aPXaBly2+YKKG5sGfnfCpqxijQ+kwA9i/QxxfNAb25/SWAr3683Wu5mzwedV2jfVjS3j 81J6oMofe+tOVCLLq3g/NY91KReZTHVvbiQiOrYcxm54WCS5t9qdgmeq1AP6xrzgB56rfIK s/eMfDh/IlKcR6QzkbhjA== UI-OutboundReport: notjunk:1;M01:P0:GjY1S9pMEjg=;Vx0upkmHTOaysCrR1kTmM3Cwwkl JqCM8bASvFpVBSwSx5lJ1jhteXPoSHOpJHhL5emOFWZyd0PWj3YQR4tFlQBMng0jE4M2HkMxA G4SGDK8GxxCmKy7xIPCvsdAFfOAfmmwhn2pR2FrxsSb3Yt5pNp7qkwyB0g2syg/mFmmvojKcr lpjWl41bVcKfMwv4dR2dqRlTz5F5usmtQbPmFoLg4y/Ji4Yv/7Bdoy7u76kz3aobzM3PstvxV yzY80ewvIcauViI/zXMfng2R2XTm6zJv1/cD1iVPFCylJ01GRLRnAWBdhDKTzRkK15bvgH0XN S0a/c7IqQcgjFBBWgdGQ5/aajRmcC4vB77jl1hBQg+q8/Az3tjMLLQqu657TyDVlFJyHhp/bq l9pd9XoEGSTEpinmaCEZXcsXxCB2IFRiQhQ6/IlYTHPDFL4oJ5+KwiGonT+KhHkQ0Pn5qON6F 4BZ+x97UWMAhn1hwa7QWnLts2teQau42p+TYwdXUQDNNfOFJCiM20NQ06Kz6WZHIVpQXlGbdQ qSGgdMXkRrh4yav9IogRkLu4paFsPYFlFtMm6ziebTmZXnCuZHQoHO5Of3ddkORdIZs+zv0wV 8aN0e8hidGksH4maSRomfYKCMxq4N46g4K5vEuyU8tpRnQe3IPTzYfWmmi4X6n+bObVyM0GjH EA/JC0I2RbgGphTvsjKPKgCjNJhpmo5G4k6YEWG7ht/J/N7zpsHPuTE7Ie0T99Dgxv0EgCU8y 8H4YLlfosrtWPM34USOOLB+FqB83S3kJDvadp55pHePIRFW26zDpIuKFysa5RpY6d60hImYr Received-SPF: pass client-ip=212.227.15.4; envelope-from=arne_bab@web.de; helo=mout.web.de 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:319244 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, Sacha Chua writes how she tinkers incrementally, finding time between tasks, asking =E2=80=9CWhat's the smallest step I can take? What can I fit = in 15-30 minutes?=E2=80=9D =E2=80=94 Choosing what to hack on: https://sachachua.com/blog/2024/01/choosing-what-to-hack-on/ This approach improves the work environment step by step to become better than any other. In a similar way, I now ended up using exwm, and while not perfect, it just works better for me than all other systems. But since this depends on doing small steps and moving forwards in little steps, there=E2=80=99s no time for large-scale maintenance. You defi= ne what=E2=80=99s the right step, and then you take it. If something breaks, that takes up at least a full improvement slot. Often just searching for a solution takes longer than you have. So this approach =E2=80=94 which can lead to the best personal work environ= ment possible =E2=80=94 depends critically on API stability. Even a deprecation = that affects multiple of your modifications can put a stop on tinkering for a long time, because fixing something that broke due to changes from someone else is a very different kind of working than letting your curiosity lead to even out a rough edge in your workflows. Someone would surely come in and quote xkcd 1172: https://xkcd.com/1172/ I consider that a harmful strip =E2=80=94 it has a point, but it got weapon= ized to brush away concerns about stability and muddies up the understanding that those with the most complex or most advanced setup are the ones most likely hit by API breakages. If you see 1172, remember that Lilypond had almost ended up ditching Guile because of breakage that hit them with the 2.0 release. The one Guile-using tool that is absolutely dominant in its domain (the most beautiful music scribe) had almost stopped using Guile. For Emacs, the impact is even bigger, because far more people tinker to optimize their setup. And recently I=E2=80=99ve seen more breakage in Emacs. For example my address completion in mu4e broke a week ago. I don=E2=80=99t= have time or energy to fix it. And mu4e started to send emails to myself if I answer my own message in a thread with someone else, because the R shortcut no longer sends wide replies (W shortcut). And there=E2=80=99s a r= isk that it will stay broken: storing each address I send emails to in mu4e automatically has been broken for years. It took me months before I got to fix my org-mode setup when it suddenly started indenting lines while typing. That actually affected me live while giving parts of a lecture interactively. So I want to plead to remember the risk of volatile software=C2=B9, volatile infrastructure=C2=B2, and soft trauma=C2=B3, when taking decisions about ba= ckwards compatibility. Breaking backwards compatibility has much wider-ranging implications than it seems while working on code, and it hits the most most advanced specialist tooling and the most enthusiastic tinkerers the worst. =C2=B9 Volatile Software =E2=80=94 do not be the tool which breaks itself o= r other tools on update. https://stevelosh.com/blog/2012/04/volatile-software/ =C2=B2 Volatile Infrastructure is worse than volatile applications. https://www.draketo.de/software/volatile-infrastructure =C2=B3 Software developers should avoid traumatic changes =E2=80=94 two kin= ds of trauma: everything needs work to get working again or to get idiomatic again. https://drewdevault.com/2019/11/26/Avoid-traumatic-changes.html Best wishes, Arne --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJEBAEBCAAuFiEE801qEjXQSQPNItXAE++NRSQDw+sFAmZESV0QHGFybmVfYmFi QHdlYi5kZQAKCRAT741FJAPD60viD/9UHI0tC5JqPI20EuwpIxYIto8JCmLLbPxG y62ewtKNgAa97FYfB8CGQpS7r65o9pYgMw+HJpFz58qh7j3DLqeXyHWhrcgenjhk 86v+G5Q8+VAgu8tXRhYAg1cRcFP8Aa1OuJ5AMGdNBcxu5iYkMZXpMjdhfoQo20ND pCDE5ofCri8MzAUUqr/x6TkH0wC2sG9nTAkoKAwwouW8BsFlrINb/mqTL7B5NIYT PwqUO99vaL/XqEzC9tZ2pDlXiwu5QPlcy2GYRSR8wZD6ri6/K/H5W/XDBdf1SXys ppztYubJr0ggvdEaHUxf0Wbk5IehaGbBw6QbTEMDuQOWmTRM+elelg1mY25X469Q OxjXIuDPzCAuvF9pP9gzOTWoKSm06a/tUj0LFHb3mf8oj2UgwtpCgcw0+gaIEoNr EjX3ESTjYz6qwjLIe5+CdLpa6mdEZvaMa6f+2W42/+rwrdUZ7JY9U73j2ohUIsMe R3k7M3wrVwslqDiuYSlxgX40GyrXBczWJsVXGHu24pt6eG/8lpvJYqb+KvOMuuq6 slo2aX9vkK4WjL9A1pzTHFgC7fY5FcMFJQFYnnP8YbK14foTHuXaVlLXKYpi9x/9 CiOw60Pv8u2Exmkr2j/3wMX0wmLg7TLgozNeu73dWbwOLtMIbnyPrLCUueXKLi3r X+KecDNjU4jEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAmZESV0QHGFy bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSPLJA/4nDnU6DIdlVBxrCaf3eqbXnnrI BZFZhJjAB/1AbVoTW82QIaZWI9hX8tARu5l/8IgA5yE53v5e3IlelqtF6Cpt3XCQ Vt6zATDxT5w/TE4+XNsbLlX5kjwwfUqpjldz9vVoS5X7N1Lc6Qr3QpCjllpRJGV3 1CR9pvWajFCnU0TsWg== =fbub -----END PGP SIGNATURE----- --=-=-=--