From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: "Siraphob (Ben) Phipathananunth" Newsgroups: gmane.emacs.devel Subject: Re: update intro to Emacs Lisp programming Date: Sun, 20 May 2018 17:49:50 +0700 Message-ID: <7eb9a17a-47e0-245c-8a33-6960d6ed4b7a@disroot.org> References: <80DB6796-41FE-4090-B1DD-BF5AE3F4D0CF@scratch.space> <83zi16ofny.fsf@gnu.org> <6A8BB190-FA64-4697-AFDA-EFBEB4886230@scratch.space> <90addb33-6797-b203-4a67-a2a6c201bd81@cs.ucla.edu> <97CEED22-57CE-4715-9239-1557F38AD994@gmail.com> <376AD40E-4EEC-4DC6-ADDA-4E594EAFE1DE@gmail.com> <87bmddvvj8.fsf@mbork.pl> <87in7juhc6.fsf@mbork.pl> <5C62F3FC-7B77-43E5-A907-4060DA0E0219@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1526813283 955 195.159.176.226 (20 May 2018 10:48:03 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 20 May 2018 10:48:03 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun May 20 12:47:59 2018 Return-path: Envelope-to: ged-emacs-devel@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 1fKLsc-00008O-Or for ged-emacs-devel@m.gmane.org; Sun, 20 May 2018 12:47:59 +0200 Original-Received: from localhost ([::1]:46007 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fKLuj-00088G-Oi for ged-emacs-devel@m.gmane.org; Sun, 20 May 2018 06:50:09 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44275) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fKLuc-00087y-Hm for emacs-devel@gnu.org; Sun, 20 May 2018 06:50:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fKLuZ-000173-BP for emacs-devel@gnu.org; Sun, 20 May 2018 06:50:02 -0400 Original-Received: from knopi.disroot.org ([178.21.23.139]:41816) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fKLuY-00015q-VQ for emacs-devel@gnu.org; Sun, 20 May 2018 06:49:59 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id E2D982E99A for ; Sun, 20 May 2018 12:49:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1526813395; bh=ysJ3tXhw2DH9W7BvhMhgxrsCml+YT+LM4+t6+qE1p3I=; h=Subject:To:References:From:Date:In-Reply-To; b=ZAQ9ePAzFjke2u8XKIT0RcGB+T9HuI+tSxdYTHIowODQzPfpZNaPG2skbv/RoYodR OedsILy3PhYOpYII+ipwa6UwEyxt3qzQ+rkik5IA7sWho8q+D04wqCZ4jyap72REKT SIUiOAQqn7RhQT6orMCMEy6/NZ+wNzxGDvzyXLukrpDUal3Htb7bUyVh9JvMf50ULQ rSiUn6x1dOFn1V6cW2iOPgRtfTy+BLt8i2aANY4eIDGYSjnwgZwSMJWPPs80LpPZef B/7ai+E0TMCszJf7CKzVFDQMNmdzUO2EEmoo7pQYt37iM6kHLZZTIPul0byQqZ3q3P 9F2XnLOqFDvyw== X-Virus-Scanned: Debian amavisd-new at disroot.org Original-Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TF3_Nu-8o9y8 for ; Sun, 20 May 2018 12:49:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1526813394; bh=ysJ3tXhw2DH9W7BvhMhgxrsCml+YT+LM4+t6+qE1p3I=; h=Subject:To:References:From:Date:In-Reply-To; b=FOI4r77fhEf3deQ0nEGtVE9Ri8LnE60jKoLHapTnPHwGWezmgZ700a5oSUdviWXcB Si46lazkONvguL1mUbHhmHKxiWbRxu6WJMwUiFLOd+bcIkID0uAl46VB6f5GcoVI56 +l4vxX5FWO0NVqpAMxiOArqMt07vfPpeBq30vNRKuKv3+dfarO8j2TqMYaVaNgUyej ov3zzMsGOiKlZ2ydUGUFwgNShLDHRWB6hCFz0KoRBxuf1YLEnII13i1YPBVD3aC+sH VihRnK5+D2pgy4fNSpAtYm6siKsdJXrp+V/LFcISd4yhflMgNCZGgMEj9G9d7Apw2P UBULYvhmsZYOw== In-Reply-To: <5C62F3FC-7B77-43E5-A907-4060DA0E0219@gmail.com> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 178.21.23.139 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:225469 Archived-At: Richard Stallman wrote: > This book is intentionally addressed to people who don't know how to > program. That is its purpose. We recommend people start learning to > program using this book. I support this purpose. Since Emacs is a prime example of the benefits of using free software (view source, share, modify, contribute), it is even better introducing this idea to newcomers to programming so that they may see the value of free software. This project feels similar to when the SICP book (Structure and Interpretation of Computer Programs, a course at MIT that taught Scheme), was overhauled and brought to a more modern form. The overhauled SICP book is available in Texinfo format (which works inside Emacs). http://www.neilvandyke.org/sicp-texi/ Alternatively, it was also converted to PDF HTML5 formats, which allows for convenient viewing. https://github.com/sarabander/sicp-pdf As Richard said, it would be ideal to have the Introduction to Emacs Lisp serve as an introduction to programming. SICP's first chapter does this job well, however it is quite mathematically oriented and some of the exercises are difficult for new people. Some of the exercises in SICP are easily ported to Emacs Lisp, and we can omit sections that focus on Scheme specifically, such as the metacircular evaluator, register machines etc. SICP also lacks "fun" exercises, so we might adapt some from various sources, for instance, the book "Land of Lisp". Some fun exercises could be creating a number guessing game, a dunnet-like text adventure, and more. Small enough to be doable, while giving instant feedback. Some of the exercises could be directly related to customizing Emacs, such as writing a mode to color text randomly as one types. Jean-Christophe Helary wrote: > 4) there is a need to add a lot more exercices so that the learner can explore a lot more from what has been explained, possibly exercices that relate to "modern" computing domains For some of the more "modern" exercises it would be helpful to adapt some ideas sources such as Practical Common Lisp. For instance, using record types in Emacs Lisp to create a database of CDs or books. Incidentally the book attempts to teach a bit of Emacs' keybindings, modes, and file navigation as well, but in a very limited fashion. Richard Stallman wrote: > We still need free books to learn programming from. > This book is the one we have. > It needs to be checked to see what changes are needed > to correspond to the current Emacs, Many programming books fail to properly address the barrier of using code editing tools, and even worse, sometimes recommend non-free programs, whereas this need not happen with the Introduction to Emacs Lisp, since customizing the editor goes with learning the language. We ultimately should provide the book as a standalone document, and an interactive tutorial in Emacs. Jean-Christophe Helary wrote: > 1) What Richard requested and that is relatively urgent: the Emacs Lisp Introduction should be first checked for factual errors (an expert is needed there), I agree with this. A larger rewrite will be necessary at some point to make the Introduction to Emacs Lisp more suitable for learning programming, but for now, mistakes (in the code, prose or otherwise) should be fixed swiftly. -- Siraphob (Ben) Phipathananunth