unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Catonano <catonano@gmail.com>
To: Mark H Weaver <mhw@netris.org>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: my latest blog post
Date: Sat, 9 Jun 2018 09:00:11 +0200	[thread overview]
Message-ID: <CAJ98PDw5KbXO4G-wXOc7o4q7TuL4VwCfrLMygrpoFyS=JD8afw@mail.gmail.com> (raw)
In-Reply-To: <87lgbpp31h.fsf@netris.org>

[-- Attachment #1: Type: text/plain, Size: 7546 bytes --]

Mark,

thank you again for your remarks

2018-06-08 20:05 GMT+02:00 Mark H Weaver <mhw@netris.org>:

> Hi Catonano,
>
> Thank you for your email.  I don't have time to make a proper response
> yet, but for now I will respond to just one point:
>
> Catonano <catonano@gmail.com> writes:
> > On my side, I was a bit adversary because I feel that a macro stepper
> > is a fundamental feature of a scheme system and in Guile it's less
> > than an afterthought
>
> As far as I know, Racket is the only Scheme implementation with a macro
> stepper for hygienic macros.  Do you know of any others?
>

Admittedly, no


> So, I strongly disagree that a macro stepper is a "fundamental feature
> of a scheme system".  In fact, Scheme first appeared in 1975, and first
> gained hygienic macros in 1986, but it was not until ~2007 that a macro
> stepper for Scheme appeared, for Racket (called PLT Scheme at the time).
> The paper, <https://www2.ccs.neu.edu/racket/pubs/gpce07-cf.pdf>,
> described it as "the first macro stepper for Scheme".
>

Oh wow !
I didn'tnow this article existed, I'll go to print it today !
Thanks for indicating that !


> > I understand that implementing it is too much work
>
> It's not that it's too much work; it just hasn't yet been done.
>
> > But I think that the manual should at least mention macro stepping as
> > a missing feature,
>
> If it were part of a Scheme standard, or even a very commonly
> implemented extension, then I would agree that we should document its
> absence.  However, as far as I know, Racket is the only Scheme
> implementation that has a macro stepper.  So, this is not a feature that
> users generally expect to have in a Scheme implementation.
>
> I disagree that the Guile manual should specifically call attention to a
> missing feature that almost no other Scheme implementation includes.
>
> Whenever people switch from one Scheme implementation to another, they
> will notice many missing features and APIs, and some new ones.  In your
> case, you noticed that Guile lacks Racket's macro stepper, but there are
> a great many other things in Racket which Guile lacks.
>
> If we were to start documenting all of the features that exist in at
> least one Scheme implementation as missing features, that's quite a
> slippery slope.  I don't want to go down that slope.
>
> If this were a common confusion among our users, then there would be
> some justification for this, but it's not a common confusion.  In the
> decade since the first Scheme macro stepper was invented, you are the
> _only_ person who has reported confusion from the absence of this
> feature in Guile.
>
> That's not to say that you're unreasonable; it's simply due to your
> particular experience of being acquainted with this feature of Racket
> and perhaps being surprised that Guile didn't have it.  This same thing
> could happen with _any_ feature of _any_ Scheme implementation.
>
> Does that make sense?
>

Yes, it does mae sense.

But I respectfully disagree

It's not that I don't see your point. Documenting Racet features as missing
features is not a slope you want to roll along and I wouldn't want either

But I still think a macro stepper is a fundamental feature of any scheme
system

The fact that only Racket provides a macro stepper is quite sad

But that says something of why scheme is a niche language, albeit being so
elegant and powerful

Tooling is not optional and it shouldn't be an afterthought

It shouldn't be, because the experience of the naive programmer _does
matter_

The maturity of tooling is one of the ranks used to evaluate the viability
of programming environments

I have been playing with Clojurescript before approaching Guix and in the
beginnings the clourescript tooling was sorely lacking many features and
lagging in many ways

But that was acnowledged as a problem or at least as a legitimate whish
list issue

In my post I argued that the communities of other programming languages are
way more thriving than the Gule one

I think that your approach to macro stepping is an example of what's wrong
with this culturre, that is in part academic, in part GNU

I acknowledged that this is  a cognitive problem, I acknowledged that
there's a lack of resources

But I won't acknowledge that this is ok

It's not

So I understand that you don't want the manual states macro stepping as a
missing feature

But I think that macro stepping should be explicitly mentioned

Maybe it could be somethiing along the lines of

"
a tool that should go along with hygienic macrro expansion is a macro
stepping facility, in order to allow people to dissect and learn macro
based libraries

Guile has no macro stepper but not all is lost !
...""

and then it would go on in explaining what you explained to me on the
mailing list

Honestly I think that keeping this inforrmation hidden deep in the guts of
a paragraph about something else is plainly unfair to users

Assuming that users read academic articles about programming languages in
order to know your way aroung Guile is not reasonable

Guile is not a research project or a doctorate thesis

Guile is supposed to be a liberating and empowering tool

Isn't it ? Maybe I misinterpreted ?

Assuming that in order to fully take advantage of it you should be an
academic is as elitarist as I can conceive

Now, I undertsand that it's not a consumer product either

Neither Clojure is, by the way.

But, jeez, you can't require reading academic articles and then wonder how
come the community is so small !!

This is exactly what should be done to keep the Guile community as small as
possible !
Academics or academics wannabe only !

This is a self serving prophecy !

The GNU tools should cater to the freedom of _final users_ not universities
and corporations only !

Or did I misinterpet this too ?

The first computer in my adult life was an Apple Macintosh (a Performa 6200)

In the Apple world the software was said to be autoexplicative, if any
software required to read a manual before the use it was considered to be
BAD DESIGN and used to be frowned upon.

And here I am required to read academic articles !!

I know it's unpalatable to you, but Apple did A LOT to popularize computing

Apple DEFINED the desktop as we know it today and then defined the mobile
phones as we now them today

While Guile is on the verge of complete irrelevance

I repeat: THE COMPUTER FOR THE REST OF US is still a lesson !!

I honestly thhin that thhe Guile communty should do an effort to step out
of its comfort zone.

If you offer hygienic macro expansion then you also have to offer the tools
to allow people to play with them !

The monad accessing the daemon, how would I delve in it ?

Is it supposed to be an artifact in support of an academic article and once
published there's nothing more to be done/said about it ?

I mean, you all are competent people. Don't you see the difference in the
spirit of te communities of, say, python, javascript or R ?

Now, again, Mark, this is not personal

I know you're in good faith.

I understand where you're coming from.

And I also undertsand that this tirade of mine will be unpalatable to you.
I'm sorry.

I'd like you to understad also where I AM COMING FROM

What I'm trying to do,  here, believe it or not, is improving Guile.

And the improvement that Guile needs is not technological. It's cultural.

Now, please, tell me: is it worth that I edit the manual to include in a
reasonable way the notions that you provided my with about macro stepping ?

Or would you refuse to merge it ?

[-- Attachment #2: Type: text/html, Size: 9832 bytes --]

  reply	other threads:[~2018-06-09  7:00 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-07 15:25 my latest blog post Catonano
2018-06-07 16:28 ` Joshua Branson
2018-06-08  4:24   ` Christopher Lemmer Webber
2018-06-08  6:18     ` Fis Trivial
2018-06-08 14:02       ` Ricardo Wurmus
2018-06-08  8:25     ` Catonano
2018-06-08 13:51       ` Fis Trivial
2018-06-08 14:25       ` Ricardo Wurmus
2018-06-09  7:47         ` Catonano
2018-06-09 12:24           ` Ricardo Wurmus
2018-06-09 13:07             ` Catonano
2018-06-09 15:29               ` Christopher Lemmer Webber
2018-06-09 13:51             ` Christopher Lemmer Webber
2018-06-07 17:03 ` Mark H Weaver
2018-06-07 19:40   ` Catonano
2018-06-08  9:39     ` Nils Gillmann
2018-06-08  9:45       ` Catonano
2018-06-08 18:05     ` Mark H Weaver
2018-06-09  7:00       ` Catonano [this message]
2018-06-09 10:39         ` Ricardo Wurmus
2018-06-09 10:52           ` Catonano
2018-06-09 12:14             ` Ricardo Wurmus
2018-06-09 13:03               ` Catonano
2018-06-10 10:53         ` Mark H Weaver
2018-06-07 18:11 ` Thorsten Wilms
2018-06-07 21:45 ` Alex Vong
2018-06-08  9:15 ` Julien Lepiller
2018-06-08  9:34   ` Clément Lassieur
2018-06-08  9:45     ` Julien Lepiller
2018-06-08 13:50   ` Widen info Oleg Pykhalov
2018-06-08 13:59     ` Julien Lepiller
2018-06-08 13:49 ` my latest blog post Ludovic Courtès
2018-06-09  5:59   ` Catonano
2018-06-09 22:49 ` myglc2
2018-06-10  0:51   ` Mark H Weaver
2018-06-10  6:55     ` Pjotr Prins
2018-06-10  9:07       ` Catonano
2018-06-10  9:29         ` Ricardo Wurmus
2018-06-10  9:30           ` Catonano
2018-06-10 10:37             ` Ricardo Wurmus
2018-06-10 10:45         ` Mark H Weaver
2018-06-10 12:06         ` Pjotr Prins
2018-06-10  7:58     ` Catonano
2018-06-10  9:26       ` Ricardo Wurmus
2018-06-10  9:27         ` Catonano
2018-06-10 19:13           ` Ludovic Courtès
2018-06-10  8:07   ` Catonano
2018-06-10 19:23     ` Ludovic Courtès
2018-06-10  8:17 ` my latest blog post [everyone, please take a cooldown break] Nils Gillmann
2018-06-10 13:33   ` Christopher Lemmer Webber
2018-06-10 14:18     ` Gábor Boskovits
2018-06-10 14:37       ` Kei Kebreau
2018-06-11  6:01         ` swedebugia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJ98PDw5KbXO4G-wXOc7o4q7TuL4VwCfrLMygrpoFyS=JD8afw@mail.gmail.com' \
    --to=catonano@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=mhw@netris.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).