“Meteor Gotchas”

09 Mar 2017

Software developers usually encounter tasks ranging from firmware development to web development as there are many tools available to make application development more streamlined, efficient, and generally painless. Specifically, when designing web applications, there are two methods: coding from scratch with raw HTML/CSS or using a framework. Typically, frameworks will enable you to speed up development through pre-loaded features which take care of the pixels and margins thus enabling you to work on implementing features instead. One popular web framework is Meteor which is an open source platform for web, mobile, and desktop users. But as always, when learning a new framework or programming language, there are learning curves.

Initially, when developing with Meteor, the general method and project structure of the framework may baffle first time users. Meteor is based on JavaScript as it comes with its own database and functionality to deploy your app for free. In contrast to other frameworks such as Django, Meteor’s project structure was especially confusing due to its three versions of accepted project structures. In addition, the framework stresses the use of package import and export. Moreover, code can be further divided into client and server side specific actions which generally increases the complexity and beginner-friendly nature of the framework. Initially, when creating projects, I attempted to navigate around this heavily enforced structure to improve understanding and speed up development. But through frustrations, I was eventually forced to conform to the complex structure. From there, development and productivity increased. This initial experience with Meteor was confusing as it was a slope in the learning curve.

Another problem commonly encountered while using Meteor involves the dispersed variable names and references across many files. Files must be linked within each subdirectory and linked again within the main client and server files. In addition, the utilization of handlebar syntax to dynamically display content through the use of helper functions and template control can definitely stump a first time user. Personally, the only method through this obstacle was to manually trace through each variable and conform to the framework’s unique syntax. Although, syntax confusion is present when learning any new framework, the guaranteed method of learning is by putting the time into the project as there are no shortcuts to instantly learning this new syntax. Through frustrations, confusion, and repeated thoughts of switching to a new framework, learning Meteor was worthwhile in the end.

For software developers, web frameworks are a blessing as they take care of the backend complexities and enables rapid development. Although there are initial learning curves, putting the time into learning frameworks can dramatically improve development in the long run. Thus the Meteor web framework can serve as another essential tool in a programmer’s arsenal.