From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lawrence Bottorff Newsgroups: gmane.lisp.guile.user Subject: Re: [ANN] An impudent introduction to Guile Date: Tue, 9 Feb 2016 18:41:42 +0000 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: multipart/alternative; boundary=089e01182ddc3007cb052b5aab8a X-Trace: ger.gmane.org 1455043322 32235 80.91.229.3 (9 Feb 2016 18:42:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 9 Feb 2016 18:42:02 +0000 (UTC) Cc: guile-user@gnu.org To: Panicz Maciej Godek Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue Feb 09 19:41:58 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 1aTDEc-0003Zz-6V for guile-user@m.gmane.org; Tue, 09 Feb 2016 19:41:58 +0100 Original-Received: from localhost ([::1]:59447 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTDEb-0003iN-FW for guile-user@m.gmane.org; Tue, 09 Feb 2016 13:41:57 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56399) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTDEQ-0003iC-VX for guile-user@gnu.org; Tue, 09 Feb 2016 13:41:49 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTDEO-0001Wu-CQ for guile-user@gnu.org; Tue, 09 Feb 2016 13:41:46 -0500 Original-Received: from mail-lb0-x233.google.com ([2a00:1450:4010:c04::233]:34973) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTDEN-0001Wg-U3 for guile-user@gnu.org; Tue, 09 Feb 2016 13:41:44 -0500 Original-Received: by mail-lb0-x233.google.com with SMTP id bc4so105359513lbc.2 for ; Tue, 09 Feb 2016 10:41:43 -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=XPU+ziSf+HN6yDMsAfuv63eRjilnXaC6TU8frocSUHU=; b=Y7qJ5GEUi11vL023bIk4bXZjL0/Ug/Ah3jiQljZ8PV/X9tz7mer3eAPTvd7AbMJOBy qGkf3bTDbP2atI+/g+OPn0rKmus8ird28zZHto8q/qRcOzopl3FoMrA68pmgyQzbx+IV PuAWjdVVshJCCmSl8bnL8JxLY/Pm+MHjGOPQ4N9EOuedAq0zaeduoga0hz9F6OywgNpI syawF15KlTcLtT/f4y+9XgT1OcFtINOlrTgIu40zak1rBM7DefY+GaVhzaXjr1FfPvKZ HYmB4vq9W0Z27Tro20wQI2EmJRXjVRyK12t07nif5lUq9GntI66n7UrxQqEXaZUmPhzT ePfg== 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=XPU+ziSf+HN6yDMsAfuv63eRjilnXaC6TU8frocSUHU=; b=DsBALFrvuTN8D2t6t9ONvi1CnbnUrFQ/bHjb4vTh7FIUEKIGOcSZ0KhiPVsUh5UTzh rTf/Skl4ayIM9b5VnfOlsJEmt8uGBvdBDizp5IYUcSexTTu7USi9dIEfqmY/wX7JeSfZ Jb4eW1uTE8V6Mcz8ZQIJXCAIVCaxvM49ezz+C4voOdzUzRrt/rsf+q2CiCKF4pRj7bwd idM9sIpwzwzrZhdoePIEI5Wab/d50WyrGNPe74W+M4thV2cf0+rdGv+FuDeK9EFAZDYO UEVTL5+4Wkzl/VIJPO8jt3WYMBCYwtv9b7KHWhGpvor/hY3+6nTgEdEy4XswoPJhnc/L GWcw== X-Gm-Message-State: AG10YOQ7sSB2lFvzQV54XsDYfc1ssEu1vxk7BSW7PtI8L9FmV8XeeaKeG3Np2MtmGvu5CYG71xL/bF3SKjAKKQ== X-Received: by 10.112.138.66 with SMTP id qo2mr14282816lbb.35.1455043302654; Tue, 09 Feb 2016 10:41:42 -0800 (PST) Original-Received: by 10.25.29.13 with HTTP; Tue, 9 Feb 2016 10:41:42 -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:4010:c04::233 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:12381 Archived-At: --089e01182ddc3007cb052b5aab8a Content-Type: text/plain; charset=UTF-8 Good, good. On Mon, Feb 8, 2016 at 7:58 PM, Panicz Maciej Godek wrote: > 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. > corrected > > 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) > good . . . it's just that it bleeds into the margin (on your original pdf) . . . any way to correct that? > > 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 ;] > I didn't change this? But looking at it I'd say ". . . Internalizing a definition is not always a pleasant task, because it requires the intellectual effort of focusing and remembering." (*the *instead of *an*) > > 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. > Changed it to ". . . Because of their familiar narrative specificity, we typically absorb stories almost effortlessly." > > (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 > --089e01182ddc3007cb052b5aab8a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Good, good.

On Mon, Feb 8, 2016 at 7:58 PM, Panicz Maciej Godek <godek.maciek@gmail.com> wrote:
2016-02-0= 7 22:51 GMT+01:00, Lawrence Bottorff <borgauf@gmail.com>:
> I've got this <https://github.com/borgauf/pamphlet> 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 th= e
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<= br> 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)
<= div>
=C2=A0

4. I don't think that we need to add (line 192) that we mean "the<= br> phenomena in the +real+ world". We could also mean the phenomena in the world of ideas, or=C2=A0 some fictional world. Either way, this is
unobvious from the philosophical point of view ;]

=
I didn't change this? But looking at it I'd say ". = . . Internalizing a definition is not always a
pleasant task, bec= ause it requires the intellectual effort of focusing and remembering."= (the instead of an)
=C2=A0

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.

Changed= it to =C2=A0". . . Because of their familiar narrative specificity, w= e typically absorb stories almost effortlessly."
=C2=A0
<= /div>

(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&quo= t;-style book.

Sometimes I wonder. On one hand, our community could benefit if Guil= e
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 mor= e tedious
than, say, pip or ruby gems. And while some implementations of Scheme
provide nice solutions with this regard (most notably Chicken's eggs),<= br> I think that -- similarly to Erlangers -- we mostly need to rely on
the fact that=C2=A0 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 foo= l with a
> new programming language when there's Matlab/Mathematica/etc.?&quo= t;

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<= br> 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 someth= ing
> similar which shamelessly puts coding (in Scheme) together with high s= chool
> math. Two things I want to avoid is 1) having other "blub" l= anguages fill
> this yawning gap (read Python), and 2) helping cushion the computer sc= ience
> wall where hot-shot high-school coders go to college, major in comp-sc= i . .
> . 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&qu= ot;.
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<= br> 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<= br> 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

--089e01182ddc3007cb052b5aab8a--