From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Panicz Maciej Godek Newsgroups: gmane.lisp.guile.user Subject: Re: [ANN] An impudent introduction to Guile Date: Mon, 8 Feb 2016 20:58:41 +0100 Message-ID: References: <0MfmrK-1aduFO2FHA-00NEPX@mail.gmx.com> <56B71452.9080807@openmailbox.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: ger.gmane.org 1454961554 17831 80.91.229.3 (8 Feb 2016 19:59:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 8 Feb 2016 19:59:14 +0000 (UTC) Cc: guile-user@gnu.org To: Lawrence Bottorff Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Mon Feb 08 20:59:13 2016 Return-path: Envelope-to: guile-user@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 1aSrxo-0004h4-K6 for guile-user@m.gmane.org; Mon, 08 Feb 2016 20:59:12 +0100 Original-Received: from localhost ([::1]:48325 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSrxn-0002cH-W4 for guile-user@m.gmane.org; Mon, 08 Feb 2016 14:59:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40268) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSrxM-00029h-Dh for guile-user@gnu.org; Mon, 08 Feb 2016 14:58:45 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aSrxK-0003yf-Sx for guile-user@gnu.org; Mon, 08 Feb 2016 14:58:44 -0500 Original-Received: from mail-wm0-x236.google.com ([2a00:1450:400c:c09::236]:36346) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aSrxK-0003yV-J0 for guile-user@gnu.org; Mon, 08 Feb 2016 14:58:42 -0500 Original-Received: by mail-wm0-x236.google.com with SMTP id p63so129771082wmp.1 for ; Mon, 08 Feb 2016 11:58:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=OkT5I5zjTSPSyACs18ctJZVq5zy/zVIZH0cpAsuETLQ=; b=mmh5iebaO89h3LYFBdf8dLN9b8MaOSheM1Utu8HqW2XaHFyXK3m1T0tTLvt3/AAh/L YcIenu83jnmBWcNz5CxDwJNdmzVOxgezFisIcKZ1bciuJ2FDvgQyKxLSv+fmxkcWSYgb iCvThU5QNC79X26S4yA3AcoUzWoLKz7Wqvw6ahJgFVpj/bpMGW1J4l3+8CGTbyVPIB14 JRNVqeGit9XDv/xHbxbLbY6DjdMEHrPmOEJrki2vPhG2RB/TZ01ZdVClDFZqUyRQ6ho8 mTEJCZ1dU9aY8HqMbLeQsvdxbkydaOkSgwsIWqx2/h8SkX1MRI1Cc/VJl/mXk0nxWaRy 844g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=OkT5I5zjTSPSyACs18ctJZVq5zy/zVIZH0cpAsuETLQ=; b=XcUNf/FXwz0ZYBu40s4GCOzeFwX+XKP5LweB/qKfyTenGww3r7JD36Fkksr7OQdxIh 0JmZniJmjFhCVyCqHK5VBCpkcNXZ22KBqqPnTI/8fz/MGlPUkTZsd3yGZuHwBdxn3rCQ GbquG7sXmjKUE8dAICUhFmovzH1Xq2iOksQdTETkd99PR+CVnOu/GeDr0QXUFAFRRO75 Vq4AiqAXC33hmobpN7n7AmuB0uzTm1ydtj31E46njUyt9OvF4W+a1SaSbxbp28GVdP7S RC+xpOTiW06AgCqIfhlST6CFNjRAqEetUMIXAz/1O9H7y6mlpJsxISvmf+PofYF0RBw4 DMDQ== X-Gm-Message-State: AG10YOR5nJaOeMCURl5IbbgSagn1OT9Bx4hzmAOWfgJ3SbH/FQtodYRqc1Kzo9FiskHGD3Qx+aV0drXFojbZhA== X-Received: by 10.194.23.70 with SMTP id k6mr29085615wjf.54.1454961521575; Mon, 08 Feb 2016 11:58:41 -0800 (PST) Original-Received: by 10.195.11.201 with HTTP; Mon, 8 Feb 2016 11:58:41 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::236 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:12377 Archived-At: 2016-02-07 22:51 GMT+01:00, Lawrence Bottorff : > I've got this fork going where I've > done some editing (grammar, style, spelling, etc.) on the book (up to > "Reporting bugs." Let me know what you think. I'm really impressed! Thanks! :) However, I do have some remarks: 1. if possible, it would be nice if you could keep the lines up to 80 columns each (60 columns is preferable). I do editing in Emacs in terminal on a very tiny display and I often split the screen in two halves for comparatory editing. The only exception are links that are more than 80 columns long. 2. in the line 161, you expanded the sentence "The first chapter introduces all the elementary notions needed for programming" with the adverbial "in Scheme". My original intent was that -- although the syntactic guise of the programs expressed is obviously Scheme -- the presented notions (of definition, reduction and substitution) are required to do programming in general. 3. I'm not quite convinced whether \texttt{equivalence-classes} should be replaced with \textit{equivalence-classes}. If we actually decide to do so, I think it would be better to replace it as \textit{equivalence classes}. However, although the italics are actually used to refer to new notions, and typewriter font to refer to notions/functions defined in Scheme, that use case is closer to mentioning, than defining -- and I thought it would fall into memory easier if the reader could see that "this is actually a Scheme function indeed". (This won't be obvious during the first reading, so I think it would be best to put the decision off for now) 4. I don't think that we need to add (line 192) that we mean "the phenomena in the +real+ world". We could also mean the phenomena in the world of ideas, or some fictional world. Either way, this is unobvious from the philosophical point of view ;] 5. I think you got the "reading programs isn't like reading novels" (196) opposite to my intention, which was that the programs have a higher level of generality (which is rather unfamiliar) -- novels are more concrete and less general. (I wonder whether we should switch to private correspondence, or doesn't anyone mind having such updates here?) > In general, I think Scheme desperately needs an "O'Reilly"-style book. Sometimes I wonder. On one hand, our community could benefit if Guile was more fashionable. I think that in practice, our situation is similar to that of Erlang. Garret Smith (the author of "Erlang The Movie II: the sequel", the best movie on the whole Internet) said that "github is the Erlang's package manager" -- which is much more tedious than, say, pip or ruby gems. And while some implementations of Scheme provide nice solutions with this regard (most notably Chicken's eggs), I think that -- similarly to Erlangers -- we mostly need to rely on the fact that even if they are complex, well written functional programs are easy to understand and compose. (This is also why I thought writing a booklet is better than just publishing those libraries, because creating them was really effortless. Also, I think that the kind of software literacy that Scheme promotes is much more important and far-reaching than even the most complete set of libraries imaginable) I think that the problem of Scheme is that it is best characterized not by what it allows to do, but what it doesn't forbid to do, and comprehending this "negative" characteristic requires much more imagination. > Question: What should we say when someone asks, "Why should I fool with a > new programming language when there's Matlab/Mathematica/etc.?" The way I see it, this is a field where there's constant change -- there was Octave, but then R emerged, and now Julia is gaining popularity. Certailny, the language itself (Scheme, that is) has been good enough for at least two decades. What I think is needed is a set of accessible tools that would provide immediate benefits from the Lisp's syntax. For instance, Emacs is a really great environment for lispers, but it is accessible only to those that already know Emacs. The dr Racket envrionment is way more accessible, but while it's good for education, I don't think I would want to use it for editing. I think that LightTable is a very nice tool, but is focused on Clojure, which is targetted to the JVM platform. > I think this is a great project. I myself have recently started something > similar which shamelessly puts coding (in Scheme) together with high school > math. Two things I want to avoid is 1) having other "blub" languages fill > this yawning gap (read Python), and 2) helping cushion the computer science > wall where hot-shot high-school coders go to college, major in comp-sci . . > . and then hit the comp-sci wall, i.e., discrete math, theory, no more cool > coding tricks, etc. Honestly, I think that Python is a very good tool for many practical applications. I often use it at work, where I wouldn't be able to convince anyone to use a language with "all those weird parentheses". On the other hand, I don't think that I would want to build anything complex or serious in Python, because of its inherent limitations. I believe is that we could make this cognitive revolution only through the minds of children, that weren't spoiled by the idea that the infix notation is natural. Actually I do have an idea for a game that could teach children programming (and that uses Guile), but it's been almost a year since I made any greater contributions. The idea is that the players can control their humanoid avatars in 3d environment, and they can progress from fully manual control, through automating some tasks using scripts, to completely autonomous bots. If you're interested, you can have a look at the presentation that I made a year ago: http://link.as/the-pose-editor-videotutorial Sorry for so many words ;] and thanks again! Panicz