From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.help Subject: Re: What makes elisp fun ? Date: Fri, 26 May 2017 21:58:37 +0800 Message-ID: <8760gng1o2.fsf@ericabrahamsen.net> References: <96BC1171-45DA-4415-B2E8-3DD4B51AB78A@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1495807225 6039 195.159.176.226 (26 May 2017 14:00:25 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 26 May 2017 14:00:25 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri May 26 16:00:21 2017 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dEFmu-0001MX-73 for geh-help-gnu-emacs@m.gmane.org; Fri, 26 May 2017 16:00:20 +0200 Original-Received: from localhost ([::1]:36943 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dEFmw-00050o-Gl for geh-help-gnu-emacs@m.gmane.org; Fri, 26 May 2017 10:00:22 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53353) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dEFmA-0004ya-RB for help-gnu-emacs@gnu.org; Fri, 26 May 2017 09:59:35 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dEFm7-0007ir-Ob for help-gnu-emacs@gnu.org; Fri, 26 May 2017 09:59:34 -0400 Original-Received: from [195.159.176.226] (port=57676 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dEFm7-0007fz-Ho for help-gnu-emacs@gnu.org; Fri, 26 May 2017 09:59:31 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1dEFly-00009X-B0 for help-gnu-emacs@gnu.org; Fri, 26 May 2017 15:59:22 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 54 Original-X-Complaints-To: usenet@blaine.gmane.org Cancel-Lock: sha1:Nh3rt+dd9qdgsUd7OBc/iKyOg9c= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.help:113179 Archived-At: Jean-Christophe Helary writes: > Chassell's introduction really does not manage to make the reader > enthusiastic about programming in elisp. Maybe it's because it was > written when people really had to learn *everything* about programming > concepts since the internet was not so widely spread at the time. > > There are countless people on the web who are super excited about > Emacs and modes and how all that allows them to be so much better at > what they do, but most of the things I read about elisp are "elisp is > what you have to go through to write your .emacs file"... I have yet > to find just *one* document about elisp that shows some real > enthusiasm about the language, its features and how it enables users > to do amazing things (because it also is a Lisp). > > I've read (or started reading) a number of books on Lisp and they > pretty much all put the emphasis on how simple the syntax is, and on > how macros are the defining difference between lisp and all the other > languages. > > On that note, the macro chapter in the reference does not really > manage to show users how Lisp macros are so different from any other > kind of macro system. When you read Graham's Ansi Common Lisp, you get > right away (p.11) that macros are *the* defining difference between > Lisp and other languages. On Lisp, or more recently Let Over Lambda > and even Practical Common Lisp show you right away how important > macros are. > > I understand that macros are not exactly for beginners... But still > the way they are introduced for other Lisps really conveys the idea > that Lisp is a very special language. And really, that message does > not come through in the Introduction to Emacs Lisp or even in the > Reference. > > So, besides for the fact that elisp is the Emacs extension language, what makes you enthusiastic about it and want to program in it? What makes elisp fun for you ? This is a trick question: the reason elisp is fun is because it's the Emacs extension language. Others have mentioned the "coding playground" aspect of Emacs. As you write code, you have this enormous sandbox to play in, a sandbox where there's room for anything to happen, and there's a spot to put your drink down, to boot. To that I'll add: the built-in help and debugging facilities. I am continually annoyed that other languages don't have edebug. *Why* don't they have edebug? Edebug was an essential factor in my progress from a novice programmer to... wherever I'm at now. Watching the little cursor go basically taught my brain how code flows. Now I know you're supposed to do it with printf statements and gdb, but in elisp it's still comforting to run through my functions with edebug before I go on to next steps. Eric