From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Rusi Newsgroups: gmane.emacs.help Subject: Re: In defense of Customize [was: Trying to right-align my window on startup] Date: Thu, 30 Jan 2014 08:15:34 -0800 (PST) Message-ID: References: <3cec217d-8adb-4e6c-b239-eff0c8b520c9@googlegroups.com> <6hrwqhkjfv6.fsf@sap.com> <6hr38k5rd3n.fsf@sap.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: ger.gmane.org 1391098816 409 80.91.229.3 (30 Jan 2014 16:20:16 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 30 Jan 2014 16:20:16 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Jan 30 17:20:24 2014 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1W8uLk-0007Kb-SF for geh-help-gnu-emacs@m.gmane.org; Thu, 30 Jan 2014 17:20:20 +0100 Original-Received: from localhost ([::1]:51075 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W8uLk-0006Ur-D2 for geh-help-gnu-emacs@m.gmane.org; Thu, 30 Jan 2014 11:20:20 -0500 X-Received: by 10.236.132.231 with SMTP id o67mr5061957yhi.15.1391098535149; Thu, 30 Jan 2014 08:15:35 -0800 (PST) X-Received: by 10.50.47.83 with SMTP id b19mr415394ign.8.1391098534907; Thu, 30 Jan 2014 08:15:34 -0800 (PST) Original-Path: usenet.stanford.edu!k15no10563286qaq.0!news-out.google.com!vg8ni1igb.0!nntp.google.com!c10no6999773igq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=59.95.53.137; posting-account=mBpa7woAAAAGLEWUUKpmbxm-Quu5D8ui Original-NNTP-Posting-Host: 59.95.53.137 User-Agent: G2/1.0 Injection-Date: Thu, 30 Jan 2014 16:15:34 +0000 Original-Xref: usenet.stanford.edu gnu.emacs.help:203542 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 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.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:95812 Archived-At: On Thursday, January 30, 2014 6:53:07 PM UTC+5:30, Stefan Monnier wrote: > FWIW, I agree to a large extent with Christoph's criticism. > I'd be happy to see improvement in this area. > I think a good way to improve this area is to work on making it easier > to write Elisp customizations. E.g. provide new functions/macros to make > the most common kinds of customization easier. > I guess that would mean things like "function to change a key-binding in > major mode foo" where that function takes care of delaying the > key-binding until that time where the major mode's map is > actually defined. Part of the difficulty is to make these things "clean > and robust". Some stray thoughts: 1. emacs is an OS 2. elisp is an imperative language Well 1 is not true in a literal sense but its close enough Now one of the issues in OS management is startup/daemons. Even good old init had a way of ordering the startup scripts by prefixing numbers. But this was far from enough and so people are coming up with more declarative approaches like ubuntu's upstart See this, particularly the use-cases https://wiki.ubuntu.com/ReplacementInit The idea is that once some events are identified, the start/stop of services is setup based on invariants of events rather than by explicit micro-sequencing. Brings me to the next point -- elisp is too sequential/imperative Of late many of my elisp problems have this flavour: I share some parts of my init with some co-workers and things fall apart because of some require missing or some wrong misplaced loaddefs etc. I believe that customize as it exists cannot solve this because the level at which it is written is too high. As a result the imperative underbelly of lisp keeps showing through