guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: my latest blog post


From: Catonano
Subject: Re: my latest blog post
Date: Sat, 9 Jun 2018 09:00:11 +0200

Mark,

thank you again for your remarks

2018-06-08 20:05 GMT+02:00 Mark H Weaver <address@hidden>:
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 <address@hidden> 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 ?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]