From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: 10 problems with Elisp, part 10 Date: Wed, 07 Aug 2024 22:01:19 -0400 Message-ID: References: <87sevj9b50.fsf@jeremybryant.net> <871q33rj7v.fsf@dataswamp.org> <86ed73qhly.fsf@gnu.org> <87frrjoryg.fsf_-_@dataswamp.org> <86wmkuq60j.fsf@gnu.org> <87a5hqq4v3.fsf@dataswamp.org> <87mslqes7m.fsf@web.de> <874j7ypvr4.fsf@dataswamp.org> <87mslqceby.fsf@web.de> <86bk25q33b.fsf@gnu.org> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26954"; mail-complaints-to="usenet@ciao.gmane.io" Cc: arne_bab@web.de, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Aug 08 04:02:24 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 1sbsTv-0006qg-H9 for ged-emacs-devel@m.gmane-mx.org; Thu, 08 Aug 2024 04:02:23 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sbsSy-00072j-26; Wed, 07 Aug 2024 22:01:24 -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 1sbsSv-00072V-VR for emacs-devel@gnu.org; Wed, 07 Aug 2024 22:01:21 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sbsSv-0001mw-2Y; Wed, 07 Aug 2024 22:01:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=EXbQTG+ObTTeeSl3TU/jIRIHomuErXCgiZ1MVP2ZNqc=; b=IL8lesKBpWVW 2c9Wvzpozz1cMaskgAhpy30mjGazbODk/xASy9dPNZ9MsVrMWWoi4O1j9AxIURj+DPZl/4ck6xKZS 9H2ZUxrMF/4lGSxSOkO8b9XIWoWxmTrkNOencDm2dSb61HVazVbu+s9beqnNGbDo3At4ttB5o2DrF DsOzHvHqGD9Cj1jDKO5jN94gCd3cvDnQoY1uy8UNcqVaw4sEU7xU8l+MtYDHYHSO9bIfzxEKm7Ym2 yfTgicCxvRfmGDRae7sKRBWP5DF/VSAW7lvzJnk1EvcTlFZutbngn8EOkatL4hPye0KGfsN9il04w 02nPZAhbZpzi4+WckZj/OQ==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1sbsSt-0000lI-Ka; Wed, 07 Aug 2024 22:01:20 -0400 In-Reply-To: <86bk25q33b.fsf@gnu.org> (message from Eli Zaretskii on Tue, 06 Aug 2024 14:54:00 +0300) 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:322522 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > My point is that the buffer as abstraction is already pretty good. > Indeed. As is looking-at and beginning-of-line, btw. I dont know of an editor which doesn't have a concept of buffers or the buffer. However, the GNU Emacs approach, where you move poimt and then call fuctions which operate at poit, is not the only possible way. Shortly before writing GNU Emacs, I maintained Zwei, the second Emacs-like editor for the MIT Lisp Machine. In Zwei, every function to operate on text required specifying a start and end position as arguments -- one or wo of them. Point and the mark existed for users, but the main calling covention for functions to operate on text was that you stored positions in Lisp varianles and set point or the mark only for the user's benefit. After working with that for a douple of years, I was convinced that that was clunky, and using point and mark was a better Lisp calling interface. In addition, this made it possible to call a function from Lisp just like the way a user would invoke the same command for editing. It was usually convenient to have just one function to call, convenient from Lisp code and as a user command. In Zwei one usually needed two different functions for each operation on text, one to be the keyboard command and one to operate on a position and return a position. In GNU Emacs, there is just one and it works in both ways. I designed `interactive' to make it easier to do that. When people criticize this functiob/command calling convention, it is not clear to me what other alternative they would prefer. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)