From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.devel Subject: Re: 10 problems with Elisp, part 10 (was: Re: Emacs website, Lisp, and other) Date: Tue, 06 Aug 2024 08:39:43 +0200 Message-ID: <87v80e5f4g.fsf@dataswamp.org> References: <87sevj9b50.fsf@jeremybryant.net> <871q33rj7v.fsf@dataswamp.org> <86ed73qhly.fsf@gnu.org> <87frrjoryg.fsf_-_@dataswamp.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3635"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:og/vBY4Owac005Sz+cI8W9OOJ4A= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Aug 06 13:00:00 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 1sbHv5-0000kM-Lr for ged-emacs-devel@m.gmane-mx.org; Tue, 06 Aug 2024 12:59:59 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sbHuA-0007ak-Re; Tue, 06 Aug 2024 06:59:03 -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 1sbDrQ-0000sM-5F for emacs-devel@gnu.org; Tue, 06 Aug 2024 02:39:56 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sbDrO-0005qn-AX for emacs-devel@gnu.org; Tue, 06 Aug 2024 02:39:55 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1sbDrM-0008we-3d for emacs-devel@gnu.org; Tue, 06 Aug 2024 08:39:52 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 06 Aug 2024 06:59:01 -0400 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:322429 Archived-At: > 10. Moving point around all the time. Whatever program, what > you do is, it feels like, not solving your problem > algorithmicly, you are just doing endless > > (goto (point-min)) > (progn (end-of-paragraph) (current-column)) > (pos-eol -1) It isn't even "end-of-paragraph", is is `end-of-paragraph-text'. This brings up another interesting aspect, namely if moving point around in a future buffer - if that is our whole business model and everyone tries really hard to convince themself it is what everybody does - which is completely wrong by the way - then answer me, how is is that we have so poor tools to do it? Just look above. There isn't even a way to go to the beginning of the buffer without combining not "goto" (should be `goto-char' of course) with `point-min'. `pos-eol' is the only one to my liking of those I just mentioned as they came up, then. It does say `current-column' but it doesn't matter because (end-of-paragraph-text) doesn't return point. Such, and many, many other examples are why Elisp is filled with constructs such as ( save-mark-and-excursion ( progn ( move the point somewhere ) (point) ) If anyone really believed in that idea, all such cases would have been streamlined into single functions ages ago instead of having programmers put together those meaningless towers all the time just to retrieve information from what is supposed to be one of our native methods to do just that. I can complete the list (9 more) but I don't know, maybe leave the whole thing at that? I don't want to be too negative. But the endless moving around point in a future buffer one envision while typing code - yeah, it is a crazy idea -- underground experts united https://dataswamp.org/~incal