robert-strandh / CLOS-MOP-HTML

HTML rendering of chapters 5 and 6 of "The Art of the Metaobject Protocol".
18 stars 8 forks source link

My modern public domain CLOS MOP version (initially derived from yours) is now published! #4

Open Hexstream opened 7 years ago

Hexstream commented 7 years ago

Hello, (somewhat continued from #2),

https://clos-mop.hexstreamsoft.com/ is now ready for public consumption!

It's not quite at the level of immaculate perfection I was aiming for, but it's still by far the best version of the CLOS MOP specification right now (I might say)!

Thanks so much for the initial conversion to HTML! Doing the cleanup was actually a VERY daunting task and if I had known how damn hard that would be (especially for my sanity), I might have tried to just manually convert the book to HTML myself, it's unclear if that would have been less work or even more work, but in any case, your initial conversion definitely inspired me to start working on this project much earlier than I would otherwise have...

I hope you'll find this suitable! Let me know what you think!

Hexstream commented 7 years ago

Hope this is not too spammy but see this thread for a few more details:

https://twitter.com/HexstreamSoft/status/919623972408487936

Hexstream commented 7 years ago

So it's been 16 days... I know you're pretty busy and I wanted to be a bit more patient than that but... is this thing 100% irrelevant and uninteresting or something?

Are you waiting for extensive reviews and recommendations from others before you have a look at this? Because I don't think that would be forthcoming.

I hope you'll excuse my tone but I'm a bit tired of the "Hexstream is 100% irrelevant even when he does relevant work" trope. (Or does someone want to argue that nobody ever cared about the MOP?)

Hexstream commented 7 years ago

@robert-strandh So it's been a freaking MONTH... Anybody home??

robert-strandh commented 7 years ago

I don't understand what you want from me.

Hexstream commented 7 years ago

@robert-strandh Geez. Alright then, let me bring you up to speed. I hope you're ready to pull some G's... (Nevermind that most of this should have been obvious to someone as clued in as yourself... and probably largely is.)

Importance of the CLOS MOP (and thus of the CLOS MOP specification, and thus of my project)

It has been my deep belief for some time that the CLOS MOP is one of the "crown jewels" of the Common Lisp community. I think that anyone who would challenge this notion really doesn't know anything about Common Lisp. Or worse. (It really seems that the MOP was much more important right up until 15 october 2017, now why might that be??) I don't really want to get into a detailed treatise about the crucial importance of the MOP on a technical level here, notably 1. because I don't think I could properly do it justice (especially given my current resource constraints and priorities), 2. because it wouldn't much help answer your question and 3. because I think you're already quite informed on this matter, as might notably be inferred from the fact that you bothered to make an initial public domain conversion to HTML.

I'll still cite some compelling statistics.

  1. closer-mop (the de-facto standard compatibility library for actually using the MOP) was in the TOP 3 most downloaded quicklisp libraries (by raw numbers, which includes direct and indirect users) for all 3 months for which such download statistics were made available this year (from 1 january to 19 november). #2 with 7797 downloads in June 2017, #3 with 8521 downloads in July 2017 and #2 with 15213 downloads in October 2017.

  2. According to this, closer-mop has 97 reverse dependencies in Quicklisp. From what I understand of this, there are currently 1608 projects in Quicklisp. So 6% of libraries in Quicklisp DIRECTLY depend on the MOP. That may not sound like much to some, but as far as I'm aware, VERY few Common Lisp libraries have anywhere close to this many direct reverse dependencies. (I haven't bothered checking what the number of indirect dependencies is, I'm sure it's very high, if someone could provide that number it would be great!)

Additionally, "MOP" (case-insensitive) has been DIRECTLY mentioned HUNDREDS of times in freenode #lisp, this year alone (since 1 January 2017): https://irclog.tymoon.eu/freenode/%23lisp?from=2017-01-01T00%3A43%3A43&to=2017-11-09T12%3A43%3A43&search=MOP&by# (I checked and surprisingly enough there seems to be only about a dozen false positives, 6 of which are "primop".) Of course, this does not count any MOP-related discussions each of these messages may be a part of.

I think at this point we're all on the same page concerning the inherent, demonstrable usefulness and relevance of the CLOS MOP, and thus of the CLOS MOP specification, and thus, presumably, of my modern CLOS MOP project. (I don't care to write a detailed explanation of how relevance transfers in details, since that seems too blindingly obvious.) With me so far?...

Your demonstrated interest for my project BEFORE the first release on 15 october 2017

I was repeatedly led to believe you had significant interest in my project, up until the point where I released it. To wit:

On 5 march 2017, at https://github.com/robert-strandh/CLOS-MOP-HTML/issues/1#issuecomment-284234393 you said (emphasis mine):

Contrary to previous HTML versions, [my version] **respects the desire of the authors of the AMOP, which is that any derived material be made available according to the same conditions as the original specification, i.e., "public domain".** In fact, this is the reason I felt I had to create this project in the first place. I was not allowed to modify the existing HTML version, because the authors did not respect this desire.

[...]

I strongly suspect that phoe will at some point include some **more modern-looking derivative** in his Common Lisp UltraSpec project.

On 27 may 2017, at https://github.com/robert-strandh/CLOS-MOP-HTML/issues/2, when I showed you some screenshots of my upcoming project, you said:

It looks like you did a fantastic job. [...] As far as I can tell, what you did is way more spiffy.

[...]

For example, **the bot "specbot" in the #lisp IRC channel** is able to show links to the pages in what I did, when given the (full or abbreviated) name of a function or a class in the IRC channel. Someone would have to figure out how to do the equivalent for your version.

[...]

I will be happy to host your version as soon as it is ready. [As I said later I'm not interested in hosting help, but clearly you had an interest if you wanted to host it...]

[...]

I am happy to see that my work could be used as a basis for something even better.

[...]

it would be great if you and phoe could keep communicating, so that one day we can hopefully have extensive and modern-looking documentation for Common Lisp and related things.

Now, let's see some of the things you've said in freenode #lisp:

On 15 may 2017, at https://irclog.tymoon.eu/freenode/%23lisp?around=1494871170#1494871170 you said:

easye: Notice that the copyright of the mop.lisp.se site is totally contrary to the wishes of the authors of the book: "This HyperText version is copyright 1997 by Elwood Corporation, and permission is granted to use it and reference it as a normal HTML document, and to make and distribute copies provided the copies are complete and unmodified."

easye: That is why I felt obliged to start from the TeX source of the book to make a better version.

On 20 may 2017, at https://irclog.tymoon.eu/freenode/%23lisp?around=1495338297#1495338297, here's some of the things that were said:

3:44:57 beach GAH!: https://github.com/robert-strandh/CLOS-MOP-HTML/issues/2
3:45:24 beach Jean-Philippe Paradis (not here on IRC I think) improved my MOP markups considerably.
3:46:38 beach He wants to know whether I would "adopt" his version.  I need to know what that means.  I certainly had not planned on any extensive maintenance work on mine.
3:50:29 Lord_Nightmare maybe replace yours with his, but host yours as another branch on that same project?
3:50:53 beach Yeah, something like that.
3:53:16 fiddlerwoaroof I wonder if it would be relevant to phoe and the CLUS project
3:53:26 beach Very much so.
3:53:33 beach I need to talk it over with him.
3:54:07 beach It is a bit sad that Jean-Philippe does not hang out here, or they could have coordinated this work.
4:13:55 beach Oh, and to "adopt" it, I would have to make sure it works with specbot.  :(

On 27 may 2017, at https://irclog.tymoon.eu/freenode/%23lisp?around=1495894490#1495894490 you said:

phoe: You might be interested in this issue on the CLOS MOP I did: https://github.com/robert-strandh/CLOS-MOP-HTML/issues/2
[maybe I told you already]

On 29 may 2017, at https://irclog.tymoon.eu/freenode/%23lisp?around=1496071920#1496071920 you said:

Soon to appear: A more modern-looking version of my HTML-ized AMOP site, i.e. http://metamodular.com/CLOS-MOP/  (not my work)
For more, information, see: https://github.com/robert-strandh/CLOS-MOP-HTML/issues/2

Certainly you can understand my surprise and dismay at your sudden and unexplained lack of interest for my project??

Before I released it, you were demonstrably interested about it and wanted to help, and then once I release it suddenly you don't have any enthusiasm for it and don't have anything to say about it and don't in any way understand "what I want from you" or how you can help?? What kind of logic is that??

One might contend that I seem to be confronted with a great mystery.

I might even go so far as to rhetorically ask, might some calamity have recently deranged your cognition in some targetted manner? If so, you'll have understood that I am seeking to break that spell today, if you'll allow it.

In other words, if we could concentrate more on the politics of improving the Common Lisp landscape instead of the politics of pleasing Zach Beane, that would be great.

How you can help

So, to more directly answer your question... (Sorry but my understanding is that "just answering your question" in a few sentences would most likely not have been particularly effective.)

  1. As seen above, you're already aware that specbot integration in freenode #lisp would be worthwhile. I'll be happy to provide the appropriate file of mappings, but I don't run the bot and I'm fairly certain that you'd be far more effective than me in carrying out whatever process is needed to update the bot, or otherwise coordinate with whomever can do it. So, provided that you have any interest in helping me with this, I'll be happy to produce the appropriate file of mappings.

  2. Since you're "done" with your version and my version is much more elaborate and will continue to improve, and since my project was initially derived from yours and is effectively a "superset" of it and I don't think there are any significant downsides, I was hoping that you'd be happy to just use my version instead of yours from now on, and also redirect your version to my version so that I can inherit all your nice google juice, so that my version more quickly gets to the top of search results and can start actually helping people in a significant manner. I expect that https://clos-mop.hexstreamsoft.com/ should be available at that location for perhaps a decade or more, which would be a great improvement over the multiple disparate locations that the older versions have been temporarily available or unavailable from previously. I would be happy to produce the relevant file of Apache redirects.

My understanding is that everyone wins the faster https://clos-mop.hexstreamsoft.com/ spreads, that would certainly benefit me but I think only a very small minority of people would see that as a significant drawback. It seems to me that rewarding relevant work sends all the right signals, while letting it rot in irrelevance does the opposite.

As far as I understand, we in the Common Lisp community have a bit of a Documentation Problemâ„¢, and I thought that people would be interested in seeing that this problem is being addressed head on, and also that our resources are being updated for the modern age, notably mobile-wise.

And by the way my next big project is to make a public domain replacement for the CLHS, derived from dpANS3. That will certainly take more than a year and I would very much like if my obsessive mind did not have to extensively meditate on the fact that my modern CLOS MOP was effectively prohibited from being relevant and actually helping people just because it was made by Hexstream.

Conclusion

I would have thought that you and many other knowledgeable members of the Common Lisp community would have implicitly understood much of the above without it having to be explained, yet I am happy to facilitate your understanding. (Though having to write this is honestly disturbing.)

Given the above considerations, might you please lend me your support in helping spread awareness of this project, in some or all of the aforementioned ways (specbot, redirects), thus furthering the interests of the Common Lisp community?

I think a bit of political courage could do wonders, here. I eagerly await your response, if you don't mind.

(Sorry, this could be better written and structured but I don't really have weeks to spend on this.)

robert-strandh commented 7 years ago

I think we have some communication problems here.

I obviously agree about the importance of the MOP. Otherwise, I would not have done the work I did.

I praised your work for many reasons. For one thing, I want to encourage people to do more work for the Common Lisp community. For another thing, I know many people (especially young people) have a strong preference for more modern looking web sites.

I myself am unfortunately incapable of telling the difference in attractiveness of different web designs. That's why I wrote "As far as I can tell, what you did is way more spiffy". Notice the "As far as I can tell" part. So while I am guessing that phoe (who is a young person) would prefer your version to mine, I myself have no preference. For that reason, I have no immediate plans to change, and I certainly will not delete what I did from my website. However, I don't care if I am the only user of it. It is totally fine with me if everybody else decides that your version is nicer and decides to use it instead.

Also, when I did the work of adding the database to specbot, there was nothing available. Therefore, adding MOP support to specbot was uncontroversial. Replacing that support so that it will point to your site instead would require some kind of consensus from the people in

lisp. I am not interested in obtaining such consensus, and I am not

interested in convincing the database maintainer to change, because to me that just represents a lot of work and a lot of extra time that I do not have. There is no benefit for me in that kind of work. This is work you need to do yourself.

You mention that it will help "so that my version more quickly gets to the top of search results", but I am not at all interested in that kind of stuff; not for myself and not for others.

I have a lot of work to do. I work on a compiler project, a Common Lisp implementation project, and editor project, a graphics toolkit project, two research papers, lots of documentation, etc. As far as I am concerned, my work with the MOP documentation is done. I wrote it because I needed it for one of those projects, and now I can use it when I work on that project. Again, if you want to convince people to use your improved version, that is totally fine with me. But I don't have time to do that for you.

Hexstream commented 7 years ago

Okay. That seems to make more sense than I'd like. If everything you said is true and this isn't just some masterfully crafted bullshit excuse then there isn't much more to say here. Sorry for the bother. (And thanks for not making me wait a fucking month this time.)

("Building a consensus" would be much easier if furthering the interests of the community was deemed more important than furthering the interests of Zach Beane the sociopath, but I certainly understand that very few people can afford to be effectively shadowbanned from the community as I am.)

Hexstream commented 6 years ago

I had closed this in the sense of "nevermind, then", but after seeing #5 I'm actually horrified at the thought that people might work on improving your version while being completely unaware of my much improved version (and after all, you said you deemed your version basically "done"), so I'm guessing it might be worthwhile to leave this issue open so that people about to submit an issue have a chance to see it first, if you don't mind.

(Presumably most people would only see and care about the first message in this thread.)

(edit: Another way to do it would be to make a new issue "announcing" my version, which wouldn't have the subsequent discussion, if you found that to be a more convenient compromise.)

Hexstream commented 6 years ago

I thought I'd go through the motions of letting you know that I went through the motions of submitting my modern CLOS MOP for specbot:

https://github.com/stassats/lisp-bots/pull/6