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 ?