portkey-cloud / aws-clj-sdk

Clojure bindings for AWS
103 stars 12 forks source link

Documentation #10

Open cgrand opened 6 years ago

cgrand commented 6 years ago

Provided in json files as HTML snippets. Should be rendered as text (or markdown) for docstring.

Too bad there's no solution yet for docstrings on specs.

mcohen01 commented 6 years ago

At one point early in amazonica's life none other than @cemerick came along and submitted a PR, and tweeted something like he was "smiling like an idiot" at being cited in normal form, presumably when he saw this line. Little did he know that I was "smiling like an idiot" at having Chas Emerick contribute to my little library. I feel the same way now, upon finding you working on the successor to amazonica. That comment citation was meant to be a tiny thank you note for the book. I never read SICP, instead Clojure Programming was my introduction to FP, and reading it I think I had similar sorts of "aha!" moments that people describe going through SICP. It's one of a small handful of profound, meaningful programming books I've read, and forever changed the way I go about programming, in any language. I wrote amazonica, with the first handful of namespaces working, in about 3 weeks as I was going through the second half of the book I think. I didn't really know what I was doing, but I think it's a testament to how good the book was technically that I was able to do that. So, in a real sense, amazonica is yours too. But I'll take credit for all the warts. The documentation, by which I mean the complete lack thereof, might be the most obvious. More than a few people over the years have opened issues after they've been driven to what looks like the brink of insanity. But that was kind of a metaphor for the library, this Faustian bargain, where like 80% of everything works but the other 20% never quite got there. I don't remember if the json IDL was available four years ago when I started (I don't remember ever seeing it, but I thought boto was generated off it quite early on), but that seems like a more correct approach than reflecting against the Java client, which seemed to elicit a bit of nausea in some people. To this day there are still little corners of amazonica that are broken, where the JavaBeans hiercharchy goes deep enough to surface bugs in the recursive reflection code that I just wasn't sharp enough to ever fix. It looked like Hugo Duncan was going to be able to avoid the runtime reflection in Awaze but that project never went anywhere. It would be really nice if the IDL definitions let you provide a pure Clojure client without all of the dirty hacks that leaked through in amazonica. And with actual docs 😄 It's also really interesting that it looks like aws-clj-sdk sort of "fell out" of your work on portkey. portkey looks phenomenal too, especially if you take it in the direction of Zappa, which looks to be the case reading through the slack channel.

lvh commented 6 years ago

I didn't realize a piece of code I messed with had such importance to the project :)

mcohen01 commented 6 years ago

you left the important bits untouched 😄

cemerick commented 6 years ago

@mcohen01 thank you for the kind words. I'm very glad that we were able to help you along in building great things 😁