From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: Questions about throw-on-input Date: Thu, 14 May 2020 09:56:13 -0700 (PDT) Message-ID: <4506133a-5e63-4ae7-9b5d-830359e8b673@default> References: <8920fe6a-8fe4-addd-c29e-2213850bf974@web.de> <83k11f7v4q.fsf@gnu.org> 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="55234"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Alexander Miller , Emacs developers , yyoncho , Stefan Monnier To: Philipp Stephani , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu May 14 18:59:11 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 1jZHCQ-000EG2-Sk for ged-emacs-devel@m.gmane-mx.org; Thu, 14 May 2020 18:59:10 +0200 Original-Received: from localhost ([::1]:49310 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jZHCP-0006D0-Vx for ged-emacs-devel@m.gmane-mx.org; Thu, 14 May 2020 12:59:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36596) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jZHBe-0004uj-Sl for emacs-devel@gnu.org; Thu, 14 May 2020 12:58:23 -0400 Original-Received: from userp2120.oracle.com ([156.151.31.85]:50480) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jZHBd-0007lP-79; Thu, 14 May 2020 12:58:22 -0400 Original-Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 04EGvCM3177597; Thu, 14 May 2020 16:58:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=UUoNYEeZYiCLCgHqt4G2G+KQ2JOFnKc+RQIIdbiGb0o=; b=gTWgfhkce85/2M7K4i1cIK2hO0f+vZpyTY4Un+NM0jFEpnpAHCfxpj2YOZbxCndxuDml GzPCCypbhB5McN604Ly8HlsIbZo2aEWD5xIDMiDVhQa73AB4b4yJlSo/lsGlEd6Aaz6D 9VnrbJ5dbFr5QRLNcehJSA/uA/CVswS50voNOEW+2lElev50w0YoD15PoZQpCBJF/5Ew T69EtbyYO4WuQ1POjzYnq+ViVYjsOaGRq4Iy+dJBDmWtu+d5uDRpi9niN80IpHY6Fk95 ERLCuxzXjzEZuoqL/AR7FuuWubAdecEHNEUqnA/5BmgRRGWHIjAuLBDKzhmoV4zZEhhr Hg== Original-Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 3100xwus1g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 14 May 2020 16:58:17 +0000 Original-Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 04EGqheX146405; Thu, 14 May 2020 16:56:17 GMT Original-Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userp3020.oracle.com with ESMTP id 3100ypp6d1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 May 2020 16:56:17 +0000 Original-Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 04EGuEQR002406; Thu, 14 May 2020 16:56:14 GMT In-Reply-To: X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4993.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9621 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2005140149 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9621 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 cotscore=-2147483648 bulkscore=0 phishscore=0 adultscore=0 mlxlogscore=999 lowpriorityscore=0 impostorscore=0 spamscore=0 malwarescore=0 priorityscore=1501 mlxscore=0 suspectscore=0 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2005140150 Received-SPF: pass client-ip=156.151.31.85; envelope-from=drew.adams@oracle.com; helo=userp2120.oracle.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/14 11:31:55 X-ACL-Warn: Detected OS = Linux 3.1-3.10 [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN 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:250263 Archived-At: > > Your ideal world seems to be based on an editor design that is very > > different from what Emacs is. The absolute majority of objects which > > an average Lisp program manipulates are globally visible -- buffers, > > windows, frames, global variables, the obarray, etc., and doing that > > in non-blocking ways is not really trivial. >=20 > And that's what I'd call one of the biggest problems in current > Emacs's design. Much of the development in programming practices over > the last few decades has been moving away from global mutable state, > in order to increase robustness and predictability, and also to make > concurrency without subprocesses possible. Ah, but Emacs and Emacs Lisp are not just about programming and writing Elisp libraries. Certainly, a purely functional (or purely logic/relational) language has advantages (many, many!) from a programming point of view. But Emacs Lisp, and in particular the global thingies you decry, and in particular dynamic binding, are very useful for Emacs _users_, for easy customization/extension. Again, I point to the rationale: https://www.gnu.org/software/emacs/emacs-paper.html#SEC17 https://www.gnu.org/software/emacs/emacs-paper.html#SEC18 Emacs Lisp is not Haskell, and it's not Scheme. You may say, "Alas", but until you or someone else comes up with a reasonably useful "editor" on the order of Emacs and Elisp, but which uses only pure Lisp (no side effects) or Haskell, I remain skeptical. The argument for the presence of such dynamic, and sometimes global, thingies is not an argument against lexical etc. or an argument in favor of abusing or exaggerating the use of global etc. thingies. It's just to point out that they have their place, in a context such as Emacs. They're not just things to be purged in some blanket cleanup campaign.