There are many of these threads popping up these days, so I’d like to weigh-in on what I think the overall problem, and also a solution.
Problem: Cheese Keeps Moving
In my opinion, quite a few of these these threads boil down to “Who moved my cheese?”. If you have never heard or read this book, here’s a video that explains the idea. In a nutshell, the cheese that makes everyone happy (for different reasons) keeps moving. Sniff & Scurry quickly adapt, while Hem & Haw resist the change.
At a time when the JavaScript world is going through a [Cambrian explosion]
(https://en.wikipedia.org/wiki/Cambrian_explosion), the cheese moving idea is more applicable than ever! So how do you survive in the JS-Cambrian explosion? By adapting and evolving.
Here are couple of quotes from Marc Benioff (CEO of Salesforce) that allude to the same point:
the only constant in the technology industry is change.
and
You must always be able to predict what’s next and then have the flexibility to evolve.
Solution: Focus on Agility
If you, your company and your code are going to survive the change, then you, your company and your code need to be adaptable so that you can evolve.
Writing adaptable code is hard, regardless of the framework you use. It’s easy to hack away and make stuff work, but it’s harder to read a ton of information, apply it, and become a better developer. That stuff takes investing time and mental energy.
To me, a major aspect of creating adaptable (maintainable) code, is creating a great separation of concerns. For example, If you separate your domain from your view properly, it will be a lot easier to transition from one technology to another. However if you write a ton of logic in your views, well then you’re screwed - and not just if the view layer technology you’re using changes / is deprecated.
Another big factor is surviving change is automated testing. If you have good automated testing which also respects the separation of concerns, you can refactor your entire view layer knowing it still works.
The above is applicable to more than just the view layer, it is applicable to software development in general. So rather than target frustration at Meteor and the MDG…