Skip to content

Instantly share code, notes, and snippets.

@puredanger
Created August 20, 2016 04:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save puredanger/d2a74a0ccf6fd9e6c31eca75309b00c6 to your computer and use it in GitHub Desktop.
Save puredanger/d2a74a0ccf6fd9e6c31eca75309b00c6 to your computer and use it in GitHub Desktop.
Twitter responses

Hi Brian,

Twitter is terrible for this conversation due to non-threaded replies, the use of embedded images (instead of actual code), and the inability to reply to anything in more than 140 char chunks, so I am putting this in a gist for my own sanity. The ideal place to have this conversation is on the Clojure mailing list, where many people can both contribute to and benefit from a threaded discussion, with a searchable archive. I'd prefer any follow-ups go there.

  1. https://twitter.com/marick/status/766766153712697345 If I reported that the attached worked fine for many versions, but fails in alpha111 what would happen?

included image shows: (ns such.sequences (require [such.wrongess :as !]))

me: Using (require ...) or (import ...) inside an (ns ) call is not now, and has never been, valid syntax. As far as I know there is no reference document, docstring, or tutorial that indicates that it should work. Unfortunately, the implementation of the ns macro did allow this to work (along with many other invalid things). The addition of spec macros for clojure.core (namely for the ns macro) in 1.9.0-alpha11 now causes this code to be (correctly) flagged as invalid at compile time.

  1. https://twitter.com/marick/status/766767080473563136 Obviously I'm being aggressive here, but: How many github issues should I expect to field because of a current obsession?

me: Ignoring the snark, I expect that if your code is invalid, you should have one github issue to fix it. The solution is to change "require" to ":require".

  1. https://twitter.com/marick/status/766768137157152769 In a normal OS project, I'd expect to file an issue saying "Oops: ! doesn't work in alpha11". ...

me: You would be welcome to file an issue with Clojure and that would be another great way to have this conversation where I could explain the things above, certainly a better venue than Twitter.

  1. https://twitter.com/marick/status/766768355390976000 In #clojure, I expect the response to be "Dumbass: you're doing it wrong."

me: I don't really appreciate having words put in my mouth. Presumably I would say the same things in a ticket that I am saying here.

  1. https://twitter.com/marick/status/766770441943916544 If it matters, the Midje issue is: marick/suchwow#5 (comment) … Note that the easy fix is not backwards compatible.

me: The fix is to add a ":", which is fully backwards-compatible, as that has always been the proper syntax.

  1. https://twitter.com/marick/status/766770682252386304 It is in some ways unfair to pick on you. But: you're paid for this. I've never made a dime off Midje.

me: I am happy to respond to questions, issues, and criticisms about Clojure or its development processes. As above, the Clojure mailing list or issue system are better ways to fields questions or reports. One of the areas where people have complained most about Clojure is in checking for and producing errors in response to invalid inputs. This aspect of clojure.spec is very important to the community. It's inevitable however that tightening validation will also uncover latent problems. I spent several days checking dozens of OSS Clojure projects for problems and submitting PRs in advance of this release to find and fix as many of these problems as I could. Unfortunately, I didn't check Midje at that time.

I understand full well the costs of maintaining OSS projects and I sympathize with changes being driven by ongoing development in the language. I do not think that is unique in any way to Clojure though and I think Clojure has far less churn than many other popular languages. I think the choice is up to you as a maintainer whether you support the 1.9 alphas or whether you push that work off till things get closer to release. Users can always fork or submit PRs if they like. If the personal costs are too high, you can always seek a new maintainer. Or funding. There are lots of options.

Thanks, Alex

@puredanger
Copy link
Author

Ooops, meant suchwow rather than midje above.

@marick
Copy link

marick commented Aug 20, 2016

I've made two suggestions for improvement on the mailing list, in a more temperate manner.

As I did on Twitter, I apologize.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment