4 ms·
In my company, we recently had a discussion about falcor and graphql. There were benefits to both sides, but at the end of it, Graphql won out. Here are some o
by gamesbrainiac 10y ago
In my company, we recently had a discussion about falcor and graphql. There were benefits to both sides, but at the end of it, Graphql won out.
Here are some of the reasons why:
- Falcor is not a standard or a language, its a large javascript library with conventions for manipulating data.
- GraphQL on the other hand, is a full blown query language, that is _standardized_. This means, that implementations in other languages (other than JS) will have to follow standards
- GraphQL has a very high rate of adoption, and has many libraries in other languages.
- GraphQL is backed by FB, which has a track record of releasing only things that have been tried and tested.
- aquilaFiera 10y ago- Falcor is not a language or a standard as much as Relay isn't. JSON Graph is way of writing JSON. That's really it. - Do you want a spec doc of how to write JSON Graph. It's discussed more-or-less exhaustively here: http://netflix.github.io/falcor/documentation/jsongraph.html http://netflix.github.io/falcor/documentation/jsongraph.html - That's because Netflix doesn't put any of resources into evangelizing. However it's still a valid point: if Netflix drops Falcor it's dead. I'd argue that if Facebook drops Relay/GraphQL it'd suffer a pretty sharp decline too. - Falcor is backed by Netflix which has a track record of great open source too. Netflix was using Falcor internally for a long time before it was open sourced: if it can survive at Netflix scale it can survive at your scale too. I'm not terribly concerned at how quickly people adopt Falcor; by all means adopt the one that suits you and your use cases. I just see a lot of bad reasons and misinformation of why not to adopt Falcor. It's a great library that would benefit a lot of users. It's a joy to consume too as a UI developer.
- Cyph0n 10y agoI think your use of the term "standardization" is slightly out of place here. When you say "standard", I think of something like IEEE 802.3 or FIPS 202. But what do you really mean by "standardized" in this context? Is there a known consortium of companies that provides its stamp of approval on correct implementations of GraphQL? If not, what prevents me from implementing GraphQL incorrectly in, say, OCaml?
- foota 10y agoBy standard he means there is a formal document you can point to and say "this is GraphQL"[https://facebook.github.io/graphql/ https://facebook.github.io/graphql/]
- rising-sky 10y agoA standard doesn't `prevent` you from doing anything, it just says this is the accepted criterion, gauge or yardstick of implementing something and by which that implementation will be judged. It can be established by an authority or custom. You can run off and disobey it if you want, your implementation will just be non-standard.
- Cyph0n 10y agoMy whole gripe with OP is that he/she used the existence of a "standard" for GraphQL as an advantage over competing solutions. I can write up a fancy document and call it a "standard", but that doesn't mean shit in the real world unfortunately. This excerpt from Wikipedia might explain it better: "The existence of a published standard does not imply that it is always useful or correct. [...] The people who use the item or service (engineers, trade unions, etc.) or specify it (building codes, government, industry, etc.) have the responsibility to consider the available standards, specify the correct one, enforce compliance, and use the item correctly. Validation of suitability is necessary." In other words, when the GraphQL "standard" is accepted and endorsed by (for instance) Microsoft, Google, and Amazon as well, we can start listing standardization as an advantage that GraphQL has over other competing solutions.
- cel1ne 10y agoYou should checkout Postgrest as well.