Hi Luke, Thanks for addressing my question, and helping better understand Clojurescript and the community!
On Friday, June 30, 2017 at 2:22:18 PM UTC-6, Luke Burton wrote: > > > > > On Jun 30, 2017, at 10:40 AM, Nick Pavlica <[email protected] > <javascript:>> wrote: > > > > Ok, > > We are at over 40 views, and it seems like no one in the Clojurescript > community is familiar with using GraphQL, or doesn't have the time to give > some good pointers. > > The Clojure community is small and has a different set of values and > expectations. I would consider the possibility that you’re framing your > question in a way that doesn’t resonate very clearly with people who might > have an opinion. > > If I understand it correctly, you’re asking “should I query a GraphQL > backend directly or via a framework?” Since the cost of experimentation in > this language is so low, most people will be thinking “why don’t you just > try both approaches?” > > If you can’t find a framework that does it, chances are it’s so easy to do > in Clojure/ClojureScript that nobody bothers to put an abstraction there. > What happens when you make a GraphQL query yourself? If it’s super easy you > may elect to forego any frameworks even if they exist! > > Another community idiom is that our programs are collections of small, > composable functions. When written this way, the cost of making a framework > choice that turns out to be suboptimal is very low. In writing Clojure I’m > generally much less anxious about upfront framework decisions compared to > other languages - I’m willing and able to change quite fundamental > components if things aren’t working out. This is another reason questions > like “which thing does everyone choose for this?” are often answered with > “pick the one that works for you”. > > Luke. I'm sure my question was unclear, and is certainly poorly constructed for the initiated; sorry about that. The difficulty, is that for someone new to the Clojure* community, it can be a little overwhelming. While Clojure* the language is beautifully decomplected, in many ways the lack of apparent focus by the community makes it hard to get started. For example, there are at-least three runtime implementations, each with their own caveats, and a set of libraries that try to bridge them. There are two popular build tools, multiple repels, and so on, until you start running in circles trying to figure out what best practice is. This breadth is certainly great for those that have been here a while, but it seem to takes away from the depth that other small communities like Elixir are developing by focusing their limited resources behind an primary effort like Phoenix. I've seen this play out in other communities like Ruby On Rails , and many others, that eventually grew into what we view as "mainstream". It's definitely a challenge to come into the Clojure* world from more traditional communities. The idea of baking a cake without a well vetted and thought through recipe really feels foreign. I'm sure that in time that uncomfortable uncertainty just goes away. I almost wonder if more effort should be made by the community to help newbies get over this hurdle. I'm sure experimentation is quite easy once your used to the Clojure* way, but I think that baggage that we carry with us makes it hard to see. For example, When Ember was cool, I spent allot of time learning it, then Angular came along and there was another big learning curve. I think that most people coming to Clojure* would look at trying to learn two frameworks just to experiment with, would wince a little, because it wasn't trivial to switch between other frameworks in the past. With that said, I wonder if this would better have been a little better form of the question. It would still highlight my ignorance of the "Clojure Way", but would maybe have been a little more focused: " All, I'm new to the Clojure* community and would like to build a SPA style web application, and eventually mobile equivalents that needs to work with GraphQL endpoints. I've seen a number of tools, libraries, and frameworks, but I'm unclear which one has the most community support behind it. I've noticed that Om, and Reagent plus Reframe are mentioned the most in presentations and blog posts, but there's limited documentation on each their project pages, and neither have reached 1.0. Ideally, I would like to integrate with the Apollo, or Relay Modern GraphQL client libraries so that I can take advantage of Pagination, Caching, Mutation and other functions that have been tuned specifically for working with a GraphQL server, so I don't have to re-invent the wheel. Without getting into a flame war, are there any inherent advantage to either of these frameworks for this application, or do they essentially achieve the same benefits, just in different ways? Are there any good resources out there that illustrate how to successful use Clojurescript with GraphQL?" However, in Clojure* land, it sounds like you just need to pick one, and hack away until it works :) Thanks again for the feedback and guidance! -- Nick -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/clojurescript.
