4 ms·
just trying to understand - you guys think moving a Python2 monolith to Python 3 is too painful, and so you are going to port all the code from Python2 to a com
by plinkplonk 7y ago
just trying to understand - you guys think moving a Python2 monolith to Python 3 is too painful, and so you are going to port all the code from Python2 to a completely new language (Go), change the architecture (monolith -> microservices) and move the HTTP API to React + GraphQL, all in one year?
2020 is going to be in an interesting year at Khan Academy ;-)
- CGamesPlay 7y agoThe move from Python 2 to 3 would likely have also involved changing the architecture so they could migrate components incrementally. Since they were going to do that regardless, and if they already wanted to change the interfaces from HTTP to GraphQL, this is a natural time to do it. Though, this migration has nothing to do with React--they were already and will continue to be using it.
- deleted 7y ago[deleted]
- conradfr 7y agoAt least the article makes it seem it's not a decision taken on a whim and they did some kind of POC and planned the transition. Of course the obvious thing missing in the article is how they expect to deliver new business features while recoding everything in a new language. It's fun to read this and the Etsy thread currently on the frontpage as well.
- dangoor 7y ago> Of course the obvious thing missing in the article is how they expect to deliver new business features while recoding everything in a new language. For new features, the new parts of the GraphQL schema for those features will be written in Go as part of the new services. Our frontend is already in large part a single page app in React which requests data via GraphQL, so the frontend for the features will look just the same as it would on our monolith.
- dangoor 7y ago2020 is absolutely going to be an interesting year. One thing that might not have come across clearly in the blog post: we're already well on the path to using React everywhere (we started using React a week after it became public… 6 years ago?). We made the decision to move to GraphQL in 2017, so we've already got a lot in our GraphQL schema. Finishing those switchovers will make our move to Go happen more quickly.
- zmmmmm 7y agoThat isn't what they said. They carefully explained that they could migrate to Python3 but that the benefit of doing so was small so they looked at the performance benefits of using other languages and decided that the performance benefit was large. The performance benefits of using Go (or Kotlin) were the deciding factor. My guess is that the framework for them thinking about this is that they have already been thinking about migrating languages to get better performance and the Python3 migration seems like completely wasted effort if you then throw it all away to go to another language shortly after.