You have heard of the hot new thing Meteor, right? Well, whatever people tell you about it: don’t use it! Why? I will tell you ten reasons why you should reconsider right now and back off from it immediately:
- Out of the box Meteor is so limited, it can only be used to create web applications. Seriously. Plus you need to tell all your users to install a web browser on their computers in order to be able to access it!
- Meteor can be learned in hours. I guess that should already be clear enough! If not, let me spell it out for you: Any framework that doesn’t take years or at least months to understand cannot be powerful enough and should therefore not be used in production.
- When starting with Meteor you will not reuse your existing infrastructure. It is impossible to keep using your Tomcat! In fact Meteor quietly ignores all the machines you requested from the IT department and runs a full development stack right from the command line! On the development machine! It doesn’t even ask you to configure any options like paths and ports for the server or database, it simply assumes some values and you can change them without touching any config files just by using the command line! What the h*?
- Instead of bundling all functionality in Meteor’s core you use packages to extend an application. If you want to use Bootstrap 3 or Highcharts you need to add it yourself! Using the command line!!! Also you will need to look up the proper names, you can’t just guess them!
- Internally Meteor also uses packages, which makes it even more confusing as you can just take a subset of functionality and substitute it with something else. Like having an Angular frontend using a Meteor backend. Or running Meteor against a Java backend. Now,how stupid is that?
- Before you send a Meteor application into production you actually have to make it secure, so not everybody can access your database from the browser. Hel-lo? What’s the point in having a less secure development environment where you can quickly bootstrap an application and speed up development? For the go live you need to remove 2 (as in two, not one!) packages from your application, namely autopublish and insecure.
- Still not convinced? By using its magical reactiveness Meteor is sure to frustrate your users! Any changes made by other users, like adding comments, may be automatically pushed to all connected clients. It just works – pretty much out of the box without developers creating specific code. Without explicitly clicking the reload button in the browser!! I see this as maybe the biggest security flaw of all, because in the end users should never lose control over when they want to reload data. Web sites must never change once they are fully loaded (you know who I’m talking to!).
- And where’s the separation of concerns? With Meteor, most of the application runs inside the browser. Developing code becomes sooo confusing. Imagine performing a validation of a credit card number! Everybody knows that initially you need to do it in the client, and again validation has to be done on the server. How do you tell the code apart? Meteor makes you reuse existing code between front and back and therefore sacrifices verbosity.
- In the end of the day, Meteor is nothing more than a collection of software. You can build it all by yourself! You simply need to pick a frontend framework, a rendering library, a build tool accompanied by a server framework, WebSockets library, then you choose a database, create your own format to exchance messages between server and client, define a REST api, and you’re almost good to go! So what is the advantage of using Meteor over your custom selection of components based on days of careful analysis and research? Exactly!
On a more serious note: It is scary how much FUD people start spreading these days. Best start learning the truth about Meteor today – it is certainly not going away anytime soon and it might just be perfect for you!
Update: Let me tell you 10 reasons why you should start using Meteor today!