Be warned that this is a technical article but we think it may interest some people here since our users are quite technology-oriented.
When we started Translation.io, we used AngularJS for the most complex parts of the frontend, like the translation interface. AngularJS was great but some things were counterintuitive:
- Why were we forced to use
$http.getwhen we just wanted to keep using
- Why did we need to execute
$digest()when some parts of the application were not refreshing automatically?
- Why couldn’t we just use that great jQuery plugin that we loved so much without using that directive someone created to do exactly the same? (and needed to update for each new version of the plugin).
Don’t misunderstand us, using AngularJS was a nice experience and much more enjoyable than a spaghetti code of jQuery bindings and callbacks. But it was also way too big and “enterprise-oriented” for our needs. Our impression was that we needed to be 100% committed to AngularJS to benefit the most from it. We also found it difficult to fragment our code into small logical parts without doing some extra work.
So we gave ReactJS a chance after all the buzz around it. You need to know that ReactJS is not entirely comparable with AngularJS since it has a smaller scope. It’s more a library than a framework. And for us, it’s already a benefit.
Long story short, we loved it so much that we slowly moved all our code from AngularJS to ReactJS. And we have the feeling that our code is much more readable, modular and faster than before. So, starting today, you wouldn’t be able to find any AngularJS code in Translation.io. And our features are exactly the same as before.
We went from “oh no, I need to remember how everything works in this AngularJS god class” to “I know exactly where to put this component to improve this feature”. And that feels great!