Meteor - The Good, the Bad, and the Ugly

23 Mar 2017

The Good

One of the best things about Meteor is that it’s full stack and comes with a lot of integration, support, and features by default. This includes database integrations as well as front-end framework. Meteor also allows users to swap out defaults based on their preferences. While we did not have a chance to do this in class, I look forward to being able to experiment with other Javascript frameworks such as React or Angular JS.

Another advantage of Meteor is that it’s fast and reactive. Present day users expect their UIs to be updated quickly and in real time. Meteor is readily able to meet this expectation. This functionality comes from the presence of a local “miniMongo” which is a subset of the MongoDB database. It was also nice to not always have to press refresh in the browser every time I wanted to update my application. I also enjoyed the templating once I understood how it works.

The Bad

Meteor only supports MongoDB and does’nt offer SQL support which makes MongoDB a pro and a con, simultaneously. The JSON syntax is not overwhelmingly hard to pick up, but I do prefer SQL to it. I think by the end of the semester I will have a better idea of what I really think so I’ll be sure to keep an open mind as we proceed with our final project which is required to be done with Meteor.

Another downside of Meteor is that it has a very steep learning curve. For those who have never seen Blaze or Handlebar/Spacebar syntax it is a lot to pick up all at once. The latter also had quite awkward conditional logic that is quite confusing at first. In addition, understanding the flow of the publishing and subscribing data handling was also something I had never seen.

The Ugly

I have a MacBook laptop and a desktop computer running Windows 10 at home. I prefer to do the bulk of my work on the desktop since it is more powerful, has a bigger screen, and has a better keyboard, but I ran into some inexplicable errors that I never experienced on OSX. For instance, sometimes IntelliJ would get stuck indexing and the application would not refresh. This could only be alleviated by clearing the cache or restarting IntelliJ. This was quite frustrating and caused me to stress out more than a few times.

Final Thoughts

Overall, my experiences with Meteor so far could be described as rocky, but I intend to keep an open mind as we start the development of our Meteor final projects. I hope that once finished, I will understand the things that initially confused me and that I will have a completed product that I can be proud of.