From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: [External] : Re: Shrinking the C core Date: Sun, 10 Sep 2023 20:40:20 -0400 Message-ID: References: <87ledwx7sh.fsf@yahoo.com> <877cpfybhf.fsf@yahoo.com> <873503y66i.fsf@yahoo.com> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8455"; mail-complaints-to="usenet@ciao.gmane.io" Cc: arthur.miller@live.com, acm@muc.de, luangruo@yahoo.com, emacs-devel@gnu.org To: Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Sep 11 02:41:19 2023 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 1qfUzO-000235-HN for ged-emacs-devel@m.gmane-mx.org; Mon, 11 Sep 2023 02:41:18 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfUyV-0000Nh-P5; Sun, 10 Sep 2023 20:40:23 -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 1qfUyU-0000NH-Bg for emacs-devel@gnu.org; Sun, 10 Sep 2023 20:40:22 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfUyS-00024d-OZ; Sun, 10 Sep 2023 20:40:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=Yfv7j3MmhMi5Z++QyaW63ioggo83oHDFJANiRqIW5tA=; b=jP9tuFsLW1pJ Nt8R/O7tzTGiixHP3kEMxWfzib77EGTBIo4Tq9RQErod5x9/t56OjbJRwSSNEyX/R1Kn9qbLG2Eho kYgJ1WGPwvy/S3jzeYk59k2/g3M7tYqbVoihav3TlcoGJ9a5o1ZBDxE/TjUAQuo/ZFXypTc9zRIpw Wi1xwuUEZqfL+77cmSU24tO0/lOHO5EyP2QySHR/wOk9OANlkqNOhrA4VTQ66tTT9YcWgoHkVCOsF 0tOmXnjvMxreTUGuubuUFupcPh001eODhghtqDz3P0KhbemAgJ/Qw3hLLr+eXoBbVr2GRwzR4PI2f nim3D+m9Z3a+85aJm+gOmw==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1qfUyS-0006Wx-9e; Sun, 10 Sep 2023 20:40:20 -0400 In-Reply-To: (message from Drew Adams on Fri, 8 Sep 2023 15:38:58 +0000) 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:310447 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] I implemented Common Lisp for the Lisp Machine in 1983. That included the generic sequence functions with their many keyword arguments. In 1984 I wrote Emacs Lisp and decided to omit all that. I have no regrets. Their absence makes Emacs Lisp easier to use. Keyword arguments are fine for an unusual, heavyweight operation such as creating a frame. The sort of function whose doc you need to look up again each time you use it. When something is as cumbersome as that, the question of how to pass the arguments is a pile of minor details that you'll see when you look it up. But it's a pain in the neck to make simple everyday functions such as `append' and `length' that cumbersome just for the sake of following a general system. Part of this system is that the default argument values follow the system, rather than following the traditional Lisp functions -- so getting the traditional behavior requires actually specifying the keyword arguments to override defaults, almost every time. Switching to Common Lisp would cause those painful incompatibilities. It is unacceptable. Defining the CL functions with a name prefix is ok, because the traditional Lisp functions are still available compatibly and we don't have to use the CL functions. This is what we have now. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)