From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: What makes elisp fun ? Date: Mon, 22 May 2017 23:36:52 +0200 Message-ID: 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 1495489068 9953 195.159.176.226 (22 May 2017 21:37:48 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 22 May 2017 21:37:48 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon May 22 23:37:44 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 1dCv1M-0002TP-Ey for geh-help-gnu-emacs@m.gmane.org; Mon, 22 May 2017 23:37:44 +0200 Original-Received: from localhost ([::1]:45031 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dCv1R-00038X-Rs for geh-help-gnu-emacs@m.gmane.org; Mon, 22 May 2017 17:37:49 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43571) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dCv0l-00036l-5X for help-gnu-emacs@gnu.org; Mon, 22 May 2017 17:37:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dCv0g-0000mr-8j for help-gnu-emacs@gnu.org; Mon, 22 May 2017 17:37:07 -0400 Original-Received: from [195.159.176.226] (port=59971 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dCv0g-0000mh-27 for help-gnu-emacs@gnu.org; Mon, 22 May 2017 17:37:02 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1dCv0Y-0001Q9-5d for help-gnu-emacs@gnu.org; Mon, 22 May 2017 23:36:54 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 154 Original-X-Complaints-To: usenet@blaine.gmane.org Mail-Copies-To: never Cancel-Lock: sha1:M5TYKncfuntH8sE0JUeQJkvmnOc= 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:113126 Archived-At: Jean-Christophe Helary wrote: > 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. Most books on programming aren't that fun. Either the book tries to teach programming in general, and the particular langauge is just the way to do that. Those books are very tedious to read for the dirty old pros... On the other end of the spectrum, books are just references (or close to it) that lists the whole language. Those books are not exactly for reading and they can be of dubious value even to experience programmers which are new to the particular language, because even tho they understand the syntax and purpose of the functions etc., there is no mention how to get the tool-chain going for the development process. The best books on computers IMHO are about *culture*, e.g. this one on UNIX: @book{quarter-century-of-unix, title = {A Quarter Century of UNIX}, author = {Peter Salus}, publisher = {Addison-Wesley}, year = 1994, ISBN = 0201547775, } > 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 Experienced Emacs user are super productive using Emacs for whatever they do. However, this often mean that they just do more things, so the number of computer hours isn't reduced. On the contrary, most often... > 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 Perhaps it is a difficult to convey in a book chapter or web site document. > 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. Macros (N.B. not keyboard macros in Emacs) is one feature - Lisp, the programmable programming language. But it isn't the only one. As for me, the syntax is one thing with parenthesis and no semi-colons at the end of statements. Also I like the tradition of long and elaborate names which describe function and variables, compared to the cryptic names people (even I) use with C and C++. Not being explicit about types with variables and function arguments is another very relaxing thing. Not caring about namespaces. No pointers or explicit memory management. Obviously I'm not an OO guy, and I know there are Lispy implementations, but I do use it with C++ and not having classes, objects, constructors, or any of that is a bliss. Also the freedom of Lisp where everything is data, and data is everything. You can send a function as an argument to a function, and have that function execute the argument function with the other function's definition as data! It is just insane how easy it is to do compared to 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. Macros are difficult to maintain and debug compared to regular Lisp. Sometimes they are very useful tho but I wouldn't base my entire game on them. > 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 ? The best thing in terms of Emacs is that you can just write a couple of lines and evaluate the form (defun or whatever) and then have it instantly up and running. No compilation phase in between to get you off your workflow. You are inside Emacs all the while when you make it work better, for you. I mentioned LaTeX compilation in another post (and the UNIX book reference above is Biblatex). I don't know if you are familiar with the LaTeX workflow? If so, the Elisp/Emacs workflow is exactly like that, only the other way around :) BTW, here are two good books on Lisp. The first one is very good what I can remember: @book{land-of-lisp, title = {Land of Lisp}, author = {Conrad Barski}, publisher = {No Starch}, year = 2010, ISBN = 1593272812, } @book{lispcraft, author = {Robert Wilensky}, ISBN = 0393954420, publisher = {Norton}, title = {LISPcraft}, year = 1984 } -- underground experts united http://user.it.uu.se/~embe8573