From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: "Why is emacs so square?" Date: Sun, 19 Apr 2020 15:55:13 +0800 Message-ID: <87k12bewpq.fsf@yahoo.com> References: <863691n4xl.wl-me@enzu.ru> <86blno9yle.wl-me@enzu.ru> <87d0845msg.fsf@yahoo.com> <87h7xgjasw.fsf@yahoo.com> <0B01B576-3DC7-4FAE-8010-C9B5CB6BA024@icloud.com> <87d084htcf.fsf@yahoo.com> <149F5B4D-F219-409C-A994-096C777259EC@icloud.com> <87v9lweynz.fsf@yahoo.com> <74B639DD-3775-4BE7-B0B2-300B5CE62E14@icloud.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="68255"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: ndame , Ahmed Khanzada , Stefan Kangas , Joseph Garvin , Richard Stallman , Emacs developers , Eli Zaretskii , Drew Adams To: =?utf-8?B?7KGw7ISx67mI?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Apr 19 09:58:04 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 1jQ4q3-000Hfa-RX for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Apr 2020 09:58:03 +0200 Original-Received: from localhost ([::1]:38884 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQ4q2-0008Er-Ud for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Apr 2020 03:58:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44208) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQ4pQ-0007OS-Du for emacs-devel@gnu.org; Sun, 19 Apr 2020 03:57:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQ4pP-0000PE-UN for emacs-devel@gnu.org; Sun, 19 Apr 2020 03:57:24 -0400 Original-Received: from sonic302-47.consmr.mail.ne1.yahoo.com ([66.163.186.173]:44947) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jQ4pO-0000Ly-R8 for emacs-devel@gnu.org; Sun, 19 Apr 2020 03:57:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1587283041; bh=iN2Pqae1BDmrKya3PymPhu4qnhMN/Ifo+FWorlQzgnc=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject; b=iAQamwYIsP2yu9qMVrzfczPoo76zOarEU+utYbUu+ofoCrukHCwqnfeIGcOMcj3OwWLPl/7Rsax/0qOiKABDA3qP1d9BAsSCQyv/6xrNRKsTNByG0rNuRxkJb6WqRY0U3YX5hnZ080jH+U6etaKq0RGsVgxIqjduis0hGaF13Lq3go9wrkidTVpi30FRnldVwTNDJW+FKHgHie4p95wDNy6MRFRulK/cPMp5i9nCvuoDQUFMX9H9PMIi+2RlA1U+DEhSuBYa8dBXbE1hKXniLZDDbXjFGs5qZFgbBjLMkNuMGp+B3yDnhBHYurFU3efyxclRkcK5Z9aC8kCv98C/Dw== X-YMail-OSG: N_6BpMEVRDvd.miR6A7lED5GPdAEx7ojsA-- Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ne1.yahoo.com with HTTP; Sun, 19 Apr 2020 07:57:21 +0000 Original-Received: by smtp421.mail.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 0b40280cadd87dd7a0fc6752ddc5efe7; Sun, 19 Apr 2020 07:55:18 +0000 (UTC) In-Reply-To: <74B639DD-3775-4BE7-B0B2-300B5CE62E14@icloud.com> (=?utf-8?B?IuyhsOyEseu5iCIncw==?= message of "Sun, 19 Apr 2020 16:45:28 +0900") X-Mailer: WebService/1.1.15651 hermes Apache-HttpAsyncClient/4.1.4 (Java/11.0.6) Received-SPF: pass client-ip=66.163.186.173; envelope-from=luangruo@yahoo.com; helo=sonic302-47.consmr.mail.ne1.yahoo.com X-detected-operating-system: by eggs.gnu.org: Linux 3.1-3.10 X-Received-From: 66.163.186.173 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:247293 Archived-At: =EC=A1=B0=EC=84=B1=EB=B9=88 writes: > (FYI, I count buffer-local vars as a property of the runtime, text > properties are definitely an Emacs API, and `record_unwind_protect_excurs= ion` > or other primitives, subrs like `self-insert-command` written in C are all > Emacs APIs. The language are things like if-expressions, macros, > symbols, etc=E2=80=A6) Here's the problem: primitives like buffer-local variables, text properties, and record_unwind_protect_excursion, and self-insert-command all depend on Emacs concepts such as "buffers", "windows", "frames" and on and on. All of these are implemented as language primitives (and in many cases, 'properties of the runtime', et cetera). The Lisp interpreter itself intermingles with "editor" code in a highly haphazard and ad-hoc way, with many "APIs" being implemented as core language constructs. My view is: if the language still makes sense when X construct is removed, X construct is considered outside the language. If it doesn't, X is part of the language. > I spread Emacs to my friends. Unless ones who already know Common Lisp, > almost everyone feels that Emacs Lisp is a big hoop. You're not spreading it right, then :) The Eintr teaches Emacs Lisp to non-programmers very well. It also teaches them how to extend the editor, in a straight-forward and easy-to-understand way. > First class extensibility is probably one of the big reason to use Emacs,= but > that=E2=80=99s orthogonal to Emacs Lisp. And I can=E2=80=99t say that the= onboarding > experience > is really about Emacs Lisp - users don=E2=80=99t try to add keybindings o= r custom > functions on the first day of use. The reason Emacs extensiblity is so first-class is because functionality for extending Emacs are implemented as primitives in the editor, and are not "APIs" grafted on top of other languages, such as VS Code or whatever.