WebDev, Technologies, Upgradability
At the company I work in, we have got three main software products. I work on one of them. Before I started working there they decided to choose Ember.js and Node.js as Technology Stack for the product I am working on.
As I was fresh of school, I heard of node and worked with it, but ember was totally new for me. Nothing wrong with that.
I have been at the company now for over five years and I really enjoy working with ember, but there is one large downside. Sadly.
We never really stayed at the latest version of the framework and so it is that we are now a major version behind. Normally ember updates would be every six weeks or so and upgrades could have been done easily.
Now we are sitting with a very old version. Obviously upgrading is almost impossible. We tried several times with several different approaches but none of them led to success.
We talked to our manager to communicate that we need to switch technology, to newer technology. But they didn’t want to upgrade to something different right away as it would mean the stop of development for probably more than a few months.
Anyway, tomorrow we will be having a discussion about what technology we could and should switch to.
The web is a very fast-living space. Almost every day there is some new technology to use. And every other day one dies off.
We agreed that only four frameworks or libraries are going to suit our needs.
While the backend technology stack will stay on node.js, we will switch the frontend to one of the following: Angular, React, Ember or Vue.
Angular catapulted itself already into the off because of its steep learning curve.
React probably also falls off as nobody likes JSX. That leaves Vue and Ember.
Now you could think the only choice would be to use Ember as we already have the expertise on it.
Sadly it is not that easy. Currently, Ember seems to be in a state where nobody really knows in which state it is.
The core team announced Ember Octane last year, basically a cleanup of the whole Framework and more importantly hard work on improving the performance and features.
They claimed that 2018 will be the year of Ember. Well, I don’t think I have to mention it is 2019 now, and it is almost 2020.
Also, they are already working on things they want to achieve next year, even though they aren’t finished with last year’s work, or at least it doesn’t seem like it.
The main problem with all that is that Ember currently has a large lack of communication. Not only what it does and does better than others, but also in the direction they want to go.
There are many features missing which other frameworks or libraries already deliver. Ember is planning to implement these, but as the community isn’t nearly as large as the communities of the competitors, it is probably a race they won’t win anytime soon.
Also, I know we are comparing apples to pears as Ember and Angular are Frameworks and React and Vue are only Libraries. But another problem we’ve got with the not updating of our Ember version was dependencies.
If you don’t update your core you can’t update your dependencies that depend on your core. And after all that time we are now working around workarounds. Bugs are a hassle to track down and the code has a really bad smell at some points.
Because of all that and probably a bunch of other things I have in my mind currently, I can’t vote for Ember tomorrow with a pure conscience. Sadly.
I would like to use Ember the next X years, but as of the state it is now, it isn’t possible.
Sure that can happen the next year to Vue, React or Angular the same way, but: behind Angular is a large Company (Google if you didn’t know), Facebook behind React and a very large community and a bunch of core contributors, who really only work on the core, behind Vue.
I’m not looking forward to tomorrow’s decision, as after working five years with the Ember it is sad and hard to give up on. But it is a decision that needs to be done and luckily I’m not the only one who needs to decide.