From mboxrd@z Thu Jan 1 00:00:00 1970 From: Catonano Subject: Re: my latest blog post Date: Sat, 9 Jun 2018 09:00:11 +0200 Message-ID: References: <87bmcmzfyz.fsf@netris.org> <87lgbpp31h.fsf@netris.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000005423a9056e301113" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33873) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRXrD-0005iG-7z for guix-devel@gnu.org; Sat, 09 Jun 2018 03:00:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRXrA-0000hD-UX for guix-devel@gnu.org; Sat, 09 Jun 2018 03:00:15 -0400 Received: from mail-yb0-x22c.google.com ([2607:f8b0:4002:c09::22c]:39015) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fRXrA-0000gY-Mo for guix-devel@gnu.org; Sat, 09 Jun 2018 03:00:12 -0400 Received: by mail-yb0-x22c.google.com with SMTP id m137-v6so5119302ybm.6 for ; Sat, 09 Jun 2018 00:00:12 -0700 (PDT) In-Reply-To: <87lgbpp31h.fsf@netris.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Mark H Weaver Cc: guix-devel --0000000000005423a9056e301113 Content-Type: text/plain; charset="UTF-8" Mark, thank you again for your remarks 2018-06-08 20:05 GMT+02:00 Mark H Weaver : > 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 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, , > 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 ? --0000000000005423a9056e301113 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Mark,

thank you again for your remarks

2018-06-08 20:05 GMT+02:00 Mark H Weaver = <mhw@netris.org&= gt;:
Hi Catonano,

Thank you for your email.=C2=A0 I don't have time to make a proper resp= onse
yet, but for now I will respond to just one point:

Catonano <catona= no@gmail.com> writes:
> On my side, I was a bit adversary because I feel that a macro stepper<= br> > 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 ma= cro
stepper for hygienic macros.=C2=A0 Do you know of any others?

Admittedly, no
=C2=A0
So, I strongly disagree that a macro stepper is a "fundamental feature=
of a scheme system".=C2=A0 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/racke= t/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 !=
=C2=A0
> I understand that implementing it is too much work

It's not that it's too much work; it just hasn't yet bee= n done.

> But I think that the manual should at least mention macro stepping as<= br> > 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.=C2=A0 However, as far as I know, Racket is the only Scheme
implementation that has a macro stepper.=C2=A0 So, this is not a feature th= at
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.=C2=A0 In you= r
case, you noticed that Guile lacks Racket's macro stepper, but there ar= e
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.=C2=A0 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.=C2=A0 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.=C2=A0 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&#= 39;s not that I don't see your point. Documenting Racet features as mis= sing 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 fundamenta= l feature of any scheme system

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

But that says somet= hing of why scheme is a niche language, albeit being so elegant and powerfu= l

Tooling is not optional and it shouldn't be an afte= rthought

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

The maturity= of tooling is one of the ranks used to evaluate the viability of programmi= ng environments

I have been playing with Clojurescript be= fore approaching Guix and in the beginnings the clourescript tooling was so= rely lacking many features and lagging in many ways

But t= hat was acnowledged as a problem or at least as a legitimate whish list iss= ue

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

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

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

But I won't ack= nowledge that this is ok

It's not

S= o 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 alo= ng the lines of

"
a tool that should go along wit= h 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 inforrmat= ion hidden deep in the guts of a paragraph about something else is plainly = unfair to users

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

Guile is not a research project or a doctorat= e thesis

Guile is supposed to be a liberating and empower= ing 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 u= ndertsand that it's not a consumer product either

Nei= ther Clojure is, by the way.

But, jeez, you can't req= uire 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 universiti= es and corporations only !

Or did I misinterpet this too = ?

The first computer in my adult life was an A= pple Macintosh (a Performa 6200)

In the Apple world the s= oftware 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 fro= wned upon.

And here I am required to read academic articl= es !!

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 t= hem today

While Guile is on the verge of complete irrelev= ance

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

I honestly thhin that th= he Guile communty should do an effort to step out of its comfort zone.
<= /div>

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

The monad accessing the daemon, how would I delve in it ? <= br>
Is it supposed to be an artifact in support of an academi= c article and once published there's nothing more to be done/said about= it ?

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

Now, again, Mark, this is not personal
I know you're in good faith.

I understan= d where you're coming from.

And I also undertsand tha= t 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,=C2=A0 here, believe it or not, is impro= ving Guile.

And the improvement that Guile needs is not t= echnological. It's cultural.

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

Or would you refuse to merge it ?
<= /div>
--0000000000005423a9056e301113--