From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: Too fine design granularity leads to numerous macro/function/command existed in Emacs. Date: Fri, 13 Aug 2021 10:25:30 +0300 Message-ID: <838s15dcwl.fsf@gnu.org> References: Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7358"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Fri Aug 13 09:26:33 2021 Return-path: Envelope-to: geh-help-gnu-emacs@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 1mERaK-0001fA-TX for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 13 Aug 2021 09:26:32 +0200 Original-Received: from localhost ([::1]:33084 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mERaJ-0003AJ-Ll for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 13 Aug 2021 03:26:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42396) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mERZZ-00039N-Kq for help-gnu-emacs@gnu.org; Fri, 13 Aug 2021 03:25:46 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:37668) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mERZZ-0000ce-9x for help-gnu-emacs@gnu.org; Fri, 13 Aug 2021 03:25:45 -0400 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2579 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mERZY-0002UV-Pu for help-gnu-emacs@gnu.org; Fri, 13 Aug 2021 03:25:45 -0400 In-Reply-To: (message from Hongyi Zhao on Fri, 13 Aug 2021 15:12:39 +0800) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:132491 Archived-At: > From: Hongyi Zhao > Date: Fri, 13 Aug 2021 15:12:39 +0800 > > It's well known that Emacs has already implemented numerous > macro/function/command in its current version. But it seems that this > is caused by, to a certain degree, the too fine granularity, i.e., > there are many functionally similar macro/function/command are > designed separately, for example, `directory-files' and > `directory-files-recursively'. The traditional Unix tool, `find', can > do all the jobs of the above two functions by adjusting its > `-maxdepth' and `-mindepth' arguments. > > So, I want to know why these macro/function/command in Emacs are > developed with such a fine granularity. They aren't. You provided just one example, and drew far-reaching conclusions from that single example. If you want to make such a general claim, please show more examples of what you consider to be "fine granularity". Specifically about the one example you provided: directory-files is a primitive, written in C, so it provides the basic functionality of fetching file names from a single directory. The directory-files-recursively function is written in Lisp, it builds on that primitive and provides extended functionality. This paradigm, of having primitives provide the basics and implement the rest in Lisp on top of those primitives, is central to Emacs design.