10 ms·
Facebook’s GraphQL gets its own open-source foundation
- tw1010 8y agoOh great, an ad that covers the entire page on mobile. Guess I'm not reading this article then.
- jmeyer2k 8y agoI don't think they care if you read the article. They just care that you saw the ad.
- deleted 8y ago[deleted]
- ndnxhs 8y agoSums up 90% of news websites. Content gets upvoted because of the title and the few that do click through get attacked by ads.
- cenal 8y agoLet’s make that content useful: https://outline.com/7XDNDL https://outline.com/7XDNDL
- robert_tweed 8y agoBetter link: https://gql.foundation/ https://gql.foundation/
- jen729w 8y agoI didn’t want to start the meta-whine about the reading experience, but as you’ve been so kind, I’ll chip in. I’m an Australian. I’m currently on holiday in Girona, Spain. Holy shit how do you people deal with these cookie notices all day?! Techcrunch covers the entire screen with something you have to click [0], and it’s hardly alone. This is insanity. Who was this meant to benefit? [0]: https://share.icloud.com/photos/0KfvL5LoHln0FNLDqzrbdjRKg https://share.icloud.com/photos/0KfvL5LoHln0FNLDqzrbdjRKg
- jen729w 8y agoAh man, even the Shreveport Times has a special EU domain. This is fucked up. https://eu.shreveporttimes.com/story/sports/outdoors/2015/06/29/top-places-fish-north-louisiana/29494257/ https://eu.shreveporttimes.com/story/sports/outdoors/2015/06...
- xrd 8y agoI remember when I was at RealNetworks a long time ago and Microsoft and Real were competing over the future of multimedia languages (SMIL vs HTML+Time). I was on some of the standardization committees and remember being surprised when some of my colleagues suggested that standardization was used by companies like MS to slow down the innovation process (and catch up to faster starts like RealNetworks had made). I wonder how often open source foundations serve the same purpose, or if these are truly embraced by companies like Facebook? Is there a reason internally Facebook would have fought something like this? Is it all roses?
- k__ 8y agoIt probably isn't all roses, but I have the feeling people today are more prone to "fork" if they feel belittled, because of the omnipresence of the Internet they feel less weak against big companies.
- joshred 8y agoThere's a little of column A, a little of column B. Standards allow the information economy to function... but influential companies want their internal practices to become 'the standard'.
- syn0byte 8y agoGeneralization of Hanlen's razor: Never attribute to malice what can be explained by laziness/greed/stupidity. FB has GraphQL stable and doing exactly what they want it to do. Now they can pass it off to a foundation for maintenance and blame without having to pay out of pocket.
- superflyguy 8y ago"Generalization of Hanlen's razor: Never attribute to malice what can be explained by laziness/greed/stupidity." I think OP was going for greed.
- karmakaze 8y agoThat seems an over-generalization--greed should counts as malice in spirit. [nit: Hanlon's Razor]
- mohsen1 8y agoBoth Swagger (Open API Spec) and GraphQL are now part of the Linux Foundation! That's cool!
- degyves 8y agoGreat. Another solution for an already-solved, already-standardized query API language (SPARQL).
- lsh 8y agoFellow curmudgeon, I give you an upvote. SPARQL is a more elegant tool from a more civilised time.
- rboyd 8y agothat's awesome -- y'all are like the tech version of the Mad Max War Boys. sacrificed yourselves betting on the wrong tech. witness me!
- lsh 8y ago... ?
- degyves 8y agoCan you elaborate why SPARQL is the wrong tech?
- exogen 8y agoAs someone who used to write SPARQL queries for a living with some of the most established players in the Semantic Web game, the idea of SPARQL and GraphQL serving the same purpose is pure misconception (usually by folks who haven't yet taken the dive into GraphQL). GraphQL allows the backend to say "here's the data I offer and how it's structured, pick which fields you want from that" and the frontend query just specifies the "what." It's like picking from a menu (although fields can have parameters), and the results you get back are structured objects with nesting. On the other hand, the data offered by a SPARQL endpoint has no inherent structure, the query is what gives the data structure. You not only ask what you want (the projection) but how to resolve the fields using (often complex) relational logic. It's orders of magnitude more powerful, which is awesome, but also more work and more confusing. Its biggest downside is that, like SQL, the results are row-oriented. For anything other than completely simplistic queries, the resulting data often needs to go through a transform/reducer step instead of being used directly, because real-world needs aren't always row-oriented (especially on the frontend). If you want to request information about both entities and the "children" of those entities, the projection is going to be (1) incredibly messy and (2) full of duplicate data, or you're making multiple queries. I wouldn't want my frontend communicating with a raw SPARQL endpoint for the same reason I wouldn't want to expose a raw SQL endpoint (and basically nobody does). GraphQL puts the frontend "on rails" so to speak and lets the backend worry about the "how." That can be a positive or a negative depending on what you want to do, but in the frontend world (where REST is the norm), folks consider that a positive and it's the direction they've generally chosen.
- orta 8y agoAs someone who knows a few of the folks involved in this foundation, I think this is a real net positive for everyone who builds GraphQL APIs and is involved in improving the ecosystem.
- beders 8y agoN+1
- leddt 8y agoDataLoader
- mlevental 8y agoabandoned
- andrewingram 8y agoIt's a pretty simple library, does it need commits every month to prove that you should still use it?
- mlevental 8y agocode rot is a thing
- andrewingram 8y agoIt is, but it’s not a universal rule. In the 2+ years I actively used Dataloader (not using GraphQL-JS right now), I had one feature request which got implemented, but other than that it was perfectly stable and fit for use.
- nikhilsimha 8y agoAbout time.
- burtonator 8y agoI did a huge heads down on GraphQL vs AppSync vs Firebase for an app I'm building around document collaboration, annotation and sync for people working with PDFs and web content (https://getpolarized.io/ https://getpolarized.io/) - it's kind of like an offline web browser.... anyway. GraphQL is super awesome at what it does but it's definitely not designed for rapid prototyping applications. The thing about GraphQL is that it's middleware. It's designed to act as really nice glue between multiple backends. It solves a lot of nice problems like over-fetching too much data, calling too many APIs, etc. The problem is that you really don't need these to get an app shipped immediately. The REAL sweet spot for GraphQL is for a company like Netflix or Facebook where you have 1500 APIs and tons of problems with data over-fetch and you have the time to sit down and do things right. I think I'm going to end up going with Firebase just because you can bang something out FAST and get it shipped. It's not going to be perfect but you can ship an MVP and start making revenue and/or grow your user base while you figure things out.
- adamnemecek 8y agoI think it’s dope if you are fundamentally querying a graph. Doing it manually is repetitive.
- alwaysreading 8y agoTotally agree. GraphQL makes perfect sense for a large app with many endpoints but there isn’t a lot of benefit for smaller apps. I’m involved in an app now that “has to use GraphQL” but could easily be done with a restful api without the additional overhead of what is essentially middleware.
- baby 8y agoAgree with you, for small apps it looks like this is a lot of effort for little benefits. For large companies that deal with huge APIs, maybe it's good.
- jchb 8y ago> tons of problems with data over-fetch What is the GraphGL story on caching and closest point of presence redirection? We build a mobile app that consumes various "enterprisy" HTTP-based APIs. Often, due to how the APIs are designed to support a range of different frontends, we have to either fetch more data than we need, or do a bunch of granular requests where we would prefer to do a single large one. But most of the time that is outweighed by the fact that many responses are cached in CDN (Content Delivery Network). Since our users are spread out globally, going to the origin server for every response would in many cases imply a latency of 100-200 milliseconds, which wouldn't be acceptable.
- LeicaLatte 8y agoAre there good alternatives to Apollo at all?
- andridk 8y agohttps://github.com/prisma/graphql-request https://github.com/prisma/graphql-request
- mxstbr 8y agoThere's lots of alternatives, but whether they are good or not depends on your use case: - Relay by Facebook, it's own GraphQL client: https://facebook.github.io/relay/ https://facebook.github.io/relay/ - Urql by FormidableLabs, an effort to build a simple React GraphQL client that covers the 80% use case: https://github.com/FormidableLabs/urql https://github.com/FormidableLabs/urql - GraphQL Request by Prisma, a minimal, universal GraphQL client: https://github.com/prisma/graphql-request https://github.com/prisma/graphql-request Plus a variety of smaller ones like Lokka (https://github.com/kadirahq/lokka https://github.com/kadirahq/lokka), FetchQL (https://github.com/gucheen/fetchql https://github.com/gucheen/fetchql) and micro-graphql-react (https://github.com/arackaf/micro-graphql-react https://github.com/arackaf/micro-graphql-react). It's all about the tradeoffs you want to make: if you're building a React app your can't go wrong with Relay or Urql, if you're writing one-off (universal) scripts graphql-request is probably your best choice, etc.
- cheapsteak 8y agoI made a chart of the download counts of the alternatives :D https://npmcharts.com/compare/react-apollo,react-relay,urql,graphql-request,lokka,fetchql,micro-graphql-react https://npmcharts.com/compare/react-apollo,react-relay,urql,...
- LeicaLatte 8y agoThanks for the recommendations. I write native iOS and Apollo code generation can be quite hit and miss.
- jondubois 8y agoI'm not a big fan of GraphQL. Its main benefit is for serverless which I am also not a fan of. It shifts all the control to the client and makes the server generic which actually takes away flexibility overall.