From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mario Lang Newsgroups: gmane.emacs.devel Subject: Emacs is very special regarding UIs Date: Tue, 08 Sep 2020 17:35:17 +0200 Message-ID: <87eenc1du2.fsf@blind.guru> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33402"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Sep 08 17:36:03 2020 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 1kFff8-0008be-Ht for ged-emacs-devel@m.gmane-mx.org; Tue, 08 Sep 2020 17:36:02 +0200 Original-Received: from localhost ([::1]:39702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kFff7-0003bT-KJ for ged-emacs-devel@m.gmane-mx.org; Tue, 08 Sep 2020 11:36:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kFfea-0003A0-PT for emacs-devel@gnu.org; Tue, 08 Sep 2020 11:35:28 -0400 Original-Received: from familiekainz.at ([37.187.20.171]:56450 helo=ns3035380.ip-37-187-20.eu) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kFfeW-00016D-CF for emacs-devel@gnu.org; Tue, 08 Sep 2020 11:35:26 -0400 Original-Received: by ns3035380.ip-37-187-20.eu (Postfix, from userid 110) id E96BE1B7C; Tue, 8 Sep 2020 15:35:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=blind.guru; s=mail; t=1599579319; bh=SoZXYVXTp/+v///YT8t8PNeatPmkAYawAZhI1+3IUeA=; h=From:To:Subject:Date:From; b=MpvvpCmJ6tKprhxC0uGjaMy1Stlyqk5jip2P0XTnoPSfukXWwAyB35MPnIxUdBLe6 p9RAG7q5T+uSFIvibrupG+c+Bl7y9Ozx109tiJWdcZIcGSx9eaySfSjXu69vcBsls8 UqlTARntdznZ/POLs5tnJmS9481x04N974LTZNak= Original-Received: from x1.blind.guru (84-115-55-45.cable.dynamic.surfer.at [84.115.55.45]) by ns3035380.ip-37-187-20.eu (Postfix) with ESMTPSA id 587531B4E for ; Tue, 8 Sep 2020 15:35:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=blind.guru; s=mail; t=1599579318; bh=SoZXYVXTp/+v///YT8t8PNeatPmkAYawAZhI1+3IUeA=; h=From:To:Subject:Date:From; b=Ggv4q6ZQHLIff5ujpn/UZRy+XxHmUyMDOqyMLHZpgjeE31FiLuiG7jEu/f22rGkrY Ax6oI86wiMW76nrJS1LcMe1nHSqB+rIlJDJEJb4E+tDn3smP8uZ/Qd/eY5QV/Me7gN ZMl1ZmtVM9wnd1jJCofJLsRf90HqhGFOz5zk2wnE= Original-Received: by x1.blind.guru (Postfix, from userid 1000) id 86EF2E80CCB; Tue, 8 Sep 2020 17:35:17 +0200 (CEST) Received-SPF: pass client-ip=37.187.20.171; envelope-from=mlang@blind.guru; helo=ns3035380.ip-37-187-20.eu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/08 11:35:22 X-ACL-Warn: Detected OS = Linux 3.11 and newer 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_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.23 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" Xref: news.gmane.io gmane.emacs.devel:254751 Archived-At: Hi. To me, there is one thing that Emacs implements that no other program I know of manages to do. I seldomly hear this property mentioned by anyone else, so even if it scratches OT-ness, I wanted to get this out to people to ponder over, or even be proud of. Emacs is the only serious program I know which manages to be truely user interface independent, in addition to being platform-independent. Emacs works with graphical toolkits on all major platforms, but also offers a almost-feature-complete text interface. With Emacspeak, it even has a (non-mainline) audio interface (speech synthesis as a UI). And I am not really talking about Emacs as just an editor. I am seeing Emacs as a platform to write "apps" in Emacs Lisp. These "apps" (we usually call 'em special modes or just interactive functio= ns), if constructed according to established Emacs Lisp APIs, will be useable across all major platforms *and* user interface modalities! To give a concrete example to highlight what I mean, consider chess.el. John Wiegley originally wrote chess.el with different types of board styles. A graphical board which makes use of bitmaps, and actually two text mode board for use with emacs -nw. He did that because as an Emacs Lisp developer, one naturally thinks about how to best support emacs -nw more or less automatically. At the time, I was looking for a text mode user interface to play chess against engines and online. I was able to make use of all of johnw's hard work in a way quite different to how I suppose he is usually running Emacs. We didn't need to "port" anything over to a text interface. Everything was already there any basically working as expected. I was able to start contributing right away. No digital divide! Due to the way how you usually render special modes (text properties or overlays for metadata) it is usually pretty simple for Raman to come up with a few functions to also provide a very nicely tailor made audio interface for modes he stumbles across. This is something extremely special in the world of accessible software. I would be surprised if someone could name another "UI platform" that manages to pull this of in a similar way. The scriptability of Emacs combined with its insistence on keeping some sort of compatibility between graphical and text mode interfaces is something no one else does. As a blind user, I can write a special mode which does something specific, say, implement an IRC client. Almost all my work can instantaneously be used by sighted people using their graphical toolkit. True, a face change here and there can improve things, but 95% of the code can be reused between totally different user interface *modalities*. This is amazing. Thanks for being so stubborn during the period of transition to graphical toolkits and insist on keeping a compatible text mode interface. This has led to a truely unique outcome. I feel like me being a non-native speaker of English is a bit of a hinderence to explaining how very special that "feature" of Emacs is. To most of you, I guess it will not feel so important, since you likely dont know how it feels to constantly fight UI problems. Having discovered Emacs, and settled on learning how to extend it, was one of the most important things in my computer life. --=20 CYa, =E2=A1=8D=E2=A0=81=E2=A0=97=E2=A0=8A=E2=A0=95