From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jordan Ellis Coppard Newsgroups: gmane.emacs.devel Subject: Emacs graphical frontends / responsiveness Date: Mon, 21 Oct 2024 03:46:05 +0900 Message-ID: <6cadfc93-3fc5-4fcf-b0a6-f54774c36f43@wz.ht> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24626"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Oct 20 20:48:42 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 1t2ayn-0006Fi-Vi for ged-emacs-devel@m.gmane-mx.org; Sun, 20 Oct 2024 20:48:42 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t2ay3-0000O2-32; Sun, 20 Oct 2024 14:47:55 -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 1t2awe-0008WA-Tw for emacs-devel@gnu.org; Sun, 20 Oct 2024 14:46:29 -0400 Original-Received: from out-172.mta1.migadu.com ([2001:41d0:203:375::ac]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t2awc-0004wE-J2 for emacs-devel@gnu.org; Sun, 20 Oct 2024 14:46:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wz.ht; s=key1; t=1729449970; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/gZiq1Imt+cv24N/8ZprwYELqlH+dQG0Q48DzeovIII=; b=Qc7U67vwD6MFBWaGAB2IGPOMfRUMUMs9ETiw6/OpUBjWrqzSi5hIcYda9RMnC/9h5899bt iT6tO/aS1tpL6HczzhsLLZFqkAUyKgIAI9n671cgh5cXZm1E4oefKs4Teqkgd8QlsL0Xmy gnZLoj4FVy4gnBMZJP/Iusd5fahOgTA= Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. X-Migadu-Flow: FLOW_OUT Received-SPF: pass client-ip=2001:41d0:203:375::ac; envelope-from=jc+o.emacs@wz.ht; helo=out-172.mta1.migadu.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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sun, 20 Oct 2024 14:47:53 -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:324690 Archived-At: Hello friends, I've been using Emacs as properly as I can for the past year-ish (read: all-in instead of bailing out constantly) after circling around the edge of the pool for a few years. Overall I think I like it, although I am still less productive than I would be in say an IDE from JetBrains or Helix (a TUI editor). I'm sure I can close that gap as I tinker with Emacs more and more. One thing that bothers me without fail is how slow, visually, Emacs is. I can often times type faster than the GUI can keep up, with noticeable hitching and delays from when I have typed a character to the point where I see it in a buffer and so forth. This is probably one of the biggest things ruining my experience because no matter how focused I am on the task at hand seeing this behaviour always rips me out of focus. That's also why I feel less productive with Emacs. I run a fairly lean Emacs configuration, however even basic behaviour under `emacs -Q` is slow. Take `show-paren-mode` with `show-paren-delay` set to 0; Helix, VS Code, Neovim are able to instantly highlight matched brackets as I move my cursor around. With Emacs there is a noticeable delay (yes even with a delay of 0 and in `emacs -Q`). Often times I can type faster than the minibuffer input area can handle when filtering completion candidates e.g. `C-h o`. I don't want my editor (or whatever specific title you'd like to apply) to EVER not immediately respond to input unless it's crashed. I don't want my editor running locally only accessing local resources to feel like an ssh connection with 200 ms of latency when nothing else, nor any other editor I've tried, does. I understand if I provide some input that I may be asking it to do heavy lifting and that eventually it will get back to me with the result (that's fine), but blocking everything else while that happens is frustrating as I have described above. I recently saw in this mailing list Yuan benchmark character insertion into a buffer (with syntax highlighting) at around ~30 ms (if I recall correctly). That's an update rate of 33 times a second, with presumably (for benchmarking's sake) nothing else going on; thus one would assume even lower update rates if you use a few features here and there built-in or otherwise. Emacs struggling to update display in under 16 ms was... shocking to see. I also recently read this post: https://gist.github.com/ghosty141/c93f21d6cd476417d4a9814eb71dd46e -- which left me feeling quite sad (if it is accurate) regarding the internals surrounding the GUI and so how apparently needlessly difficult in today's age it would/will be to improve (over how it currently is). I understand the historical legacy. So I ask: is it possible that Emacs' GUI be decoupled from the lisp core such that updates can happen as fast as possible (less perceived delay), and that the (what I gather from the above post) rube goldberg display internals be remade from scratch, or more likely, a new frontend (from scratch) as an alternative? I don't ask as a "please do this for me". I'll get involved but if the answer ahead of time is a "no it's never going to happen even with a completely working patch in future" then I think it'd best for me to abandon Emacs. I have ADHD and the visual hitching and lack of responsiveness to input drives me insane. I fear it's something I'll never be able to get over and in a world of less configurable vs. visually hitching and slow I would rather take the former. I realise this email has been fairly critical so far. I have said all of this without malice, I just feel it prudent to describe how important this is (at least to me) by not mincing words. Besides the criticisms: Emacs, so far, is amazing. I can make it do whatever I want, however I want, and mould it to be uniquely my own which is something I cannot do with anything else. The effort from scores of people over ~40 years as well as the continued effort shows. I can't imagine so much effort or such an enduring project. But as I've said this behaviour (of Emacs) ruins it for me and I don't think I'll ever be able to get over it so at this juncture I'd rather help contribute and improve Emacs for myself and others and I hope that's something this email can be the genesis of. Regards, Jordan