Twitter | Search | |
Joe Savona
Software engineer at Facebook working on Relay and GraphQL
1,517
Tweets
109
Following
6,672
Followers
Tweets
Joe Savona Feb 14
If you have time, we’d certainly appreciate any extra info you can provide. I went through and found links to a couple issues, but it sounds like you may have encountered more issues than we were aware of.
Reply Retweet Like
Joe Savona Feb 14
Yeah, thanks for the feedback. I can certainly understand it can be frustrating to deal w breaking changes (we try to bump major versions and document, but even then). We’ll think about how we can do better here.
Reply Retweet Like
Joe Savona Feb 14
An optimizing GraphQL compiler is pretty useful even if you aren't using Relay. For example discusses using relay-compiler with Apollo.
Reply Retweet Like
Joe Savona Feb 13
Agreed, this looks promising!
Reply Retweet Like
Joe Savona Feb 13
Replying to @chrisbiscardi
A trend I hope to see continue!
Reply Retweet Like
Joe Savona Feb 13
Yes, we've made compilation O(changeset) in many cases. But even then, changes to common fragments can affect lots of other definitions.
Reply Retweet Like
Joe Savona Feb 13
Yup, these improvements can definitely be made in the reference implementation as well. Our goals for the Rust rewrite are around performance and scalability, these parser improvements are a side benefit.
Reply Retweet Like
Joe Savona Feb 13
Replying to @LegNeato @kassens
For example, compare the error here: vs what you'd get in most other implementations (unexpected character ".")
Reply Retweet Like
Joe Savona Feb 13
Replying to @LegNeato @kassens
That said the compiler is incomplete and the API is unstable (not even on yet) so not ready to be used.
Reply Retweet Like
Joe Savona Feb 13
Replying to @LegNeato @kassens
One thing we've focused on is robust handling of syntax errors. We attempt to accumulate multiple errors (and will continue to improve this), and give useful errors for common mistakes.
Reply Retweet Like
Joe Savona Feb 13
Replying to @LegNeato @kassens
We were all a bit surprised how easy Rust was to pick up for everyone. The error messages are incredibly good, the IDE integration is good enough. It helped that our JS code followed strong conventions: shared data is immutable, mutate only what you own.
Reply Retweet Like
Joe Savona Feb 13
Replying to @LegNeato @kassens
The strategy was: and I had each independently learned Rust to some degree. We set up a lot of the core infrastructure, then the rest of the team dove in porting code. We did a bit of pairing, extensive code review. So far an easy transition.
Reply Retweet Like
Joe Savona Feb 13
Replying to @wezm @read_rust
Hopefully we can share a write up once we make progress
Reply Retweet Like
Joe Savona Feb 13
Replying to @wezm @read_rust
Oh wow thanks for noticing! I read regularly, it’s such a great resource for learning about the language and ecosystem.
Reply Retweet Like
Joe Savona Feb 13
Replying to @leogcrespo
Is there a specific use-case that you’re thinking of?
Reply Retweet Like
Joe Savona Feb 13
Replying to @leogcrespo
We plan to keep a similar level of customization to support how the community uses the compiler today - exact implementations may have to change but we hope to support existing use-cases like different generated file format, output dirs, parsing different input languages, etc
Reply Retweet Like
Joe Savona Feb 12
Reply Retweet Like
Joe Savona Feb 12
Replying to @mattiatoso @renanmav
Not really any specific training, just reading bits of the book, reading some tutorials relevant to the domain, and then just diving in. Some of had more experience and set up the core components, then the rest of the team dove in and started contributing.
Reply Retweet Like
Joe Savona Feb 12
We certainly discussed different language options. We chose Rust for many reasons, including its excellent - and predictable - performance and its safe & ergonomic multi-threading support. Surprisingly few languages meet this criteria.
Reply Retweet Like
Joe Savona Feb 12
Replying to @renanmav
Several of us had already become proficient in Rust, the remainder have picked it up very quickly.
Reply Retweet Like