This is not surprising: Apollo only recently added support for data masking and fragment colocation, but it has been a feature of Relay for eternity.
See https://www.youtube.com/watch?v=lhVGdErZuN4 for the benefits of this approach:
- you can make changes to subcomponents without worrying about affecting the behavior of any other subcomponent,
- the query is auto-generated based on the fragment, so you don't have to worry that removing a field (if you stop using it one subcomponent) will accidentally break another subcomponent
In the author's case, they (either) don't care about overfetching (i.e. they avoid removing fields from the GraphQL query), or they're at a scale where only a small number of engineers touch the codebase. (But imagine a shared component, like a user avatar. Imagine it stopped using the email field. How many BFFs would have to be modified to stop fetching the email field? And how much research must go into determining whether any other reachable subcomponent used that email field?)
If moving fast without overhead isn't a priority (or you're not at the scale where it is a problem), or you're not using a tool that leverages GraphQL to enable this speed, then indeed, GraphQL seems like a bad investment! Because it is!
The ecosystem in general appears to be a problem.
Passing laws that affect all of us because you are too lazy and ineffectual to raise your children properly is unacceptable.
If you just disdain children in general, you can go ahead and say that instead.
If anything it seems inefficiencies tend to occur when people interfere with the government funding things, like CA high speed rail having their federal funding appear and disappear erratically depending on who's in power, throwing off all the construction plans.
Dead Comment
So for everyone saying that homeschooled kids aren't well adjusted or have bad social skills, I'll offer the counterpoint that they might appear unadjusted at first, but humans can usually adapt to new environments, so homeschooled kids have a pretty good chance at acting "normal" a short time after leaving homeschool. Don't judge someone's awkwardness the first time you meet them, let them adjust a bit and see if they can assimilate.
My frontend developers had their minds blown when they realized that because we’re using Hasura internally, the only backend work generally needed is to design the db schema and permissioning, and then once that’s done frontend developers aren’t ever blocked by anything (which is not a freedom that I would want to give to untrusted developers, hence emphasis on internal usage of GQL)
(Unfortunately Hasura has shifted entirely into this VC-induced DDN thing that seems to be a hard break from the original product, so I can’t recommend that anymore… postgraphile is probably the way)