Why I'll Only Use Basic Frameworks In The Future
FeathersJS, MeteorJS, SuperHeroJS, SailsJS, Horizon, KeystoneJS. These are just a few of the now hundreds of Node frameworks alone, before you start looking at Ruby, Go, Java, and other languages. Of the list there are only a small few I'd ever use again. Why? I lose too much control.
I started my career in Node development with MeteorJS and it has spoiled me. While it has so many awesome features it is usually either overkill, or not scalable in a way I like. Meteor is the prototype to medium scale application framework of choice and this is what has really caused me heartache. Now working much closer to the industrial sector there are a number of things I am looking for in a framework:
- easily scalable
- full control
If you know Meteor you'll know you can get it that way, but there are downfalls. In my application's case there was the fact we needed to connect to many, many different data sources, and it needed to be convertable to not rely on Mongo being there in the future. What was our first framework to use to try and solve the issue of needing some real time data but mostly it just sitting in the backgound? Well we used FeathersJS, and now we are dumping it.
Why dump Feathers? Well in using Feathers we've found it difficult to build the API we want. We have to adhere to their style of API endpoints, a method that isn't the standard RESTful way. We also found it VERY hard to work with the Feathers services style. We have yet to get services to work properly for us and because of these things we are moving to Koa soontm. In this change over we will move to managing our own websockets to push data, and we will have the opportunity to break out a few microservices which will be a small but powerful performance boost to our application.
So why am I now anti-"full stack" framework? Well as I said we lost too much control. Having to adhere to someone elses API standard, and not really knowing what is going on under the hood is a bit much to ask. Meteor has some VERY good documentation on how the underlying packages work and have been moving to cut down on pre-bundling everything and making Meteor even more modular than it already is. This makes it the only "full stack" framework that I know of that is actually trying to minimize it's role other than the more baseline frameworks like Express, Koa, and RESTify. "Magic" is great, but at some point it gets in the way. Meteor sees this and is working to make sure it doesn't while giving users a ton of options. Feathers is the opposite, there are a number of packages that allow you to connect to other packages, but they are all pretty well black boxes, leaving you, the developer, looking through code to figurer out what it's doing and trying to solve issues that should be simple to impliment.
Starting next week, I will be looking to write here more often, so you can likely expect more like this. Simple things that likely need to be said by someone to try and start a discussion. I'm hoping to do smaller pieces and every now and then I'll get the idea to do a big one.
Keep checking back.
Enjoyed this post? Let me know on twitter or grab some RSS.