Why I chose Node.js for my hobby project?

If you know me, you can easily say I’m Java addict. I prefer to use Java wherever possible. But things change. JS MVC frameworks becomes hipster framework and I’ve already took a deep dive in AngularJS. After worked in AngularJS for past 5 months, I’m completely impressed with what they can do. Leaving all the bad things aside, it is a perfect RAD framework. If not for AngularJS, we wouldn’t have finished our project on time!

So it all started like that! So one day, my long term project, which is supposed to be my personal pet project, was started with Spring MVC + MySQL! It was left as it is because of me, not having enough time to spend it, and I’m incredibly lazy to write all those boilerplate codes! Anyways, fast forward to Feb, I decided to dust it off and start again. Since I’ve been studying/practicing Nodejs for more than a year, I thought I can give it a try. Well, whats wrong gonna happen and there is nothing to lose! So, meh!

It was nothing but simple yeoman like code generator for AngularJS!!(Don’t ask me why I want to do when it’s already there! It’s secret.) So I chose to go with Expressjs for it’s sheer simplicity in setting up and huge community support, better documentation. It was not more than a week and I’m almost at 50%! And I’m not even spending more than a hour a day! It was little tough at beginning, but once dice started rolling, things went smooth! I liked how the Nodejs community matured within such short time and npm is such a bad-ass! I’m not an pro in Nodejs and calling it THE BEST at this point will be over-doing it, but for now, it seems to best bet for all my pet projects, freelancing ones too! So the moment I put Angularjs with Nodejs, things never was this simpler.

But not all is well. Where it sucks is, when it comes to hosting the app.With PHP/Java, I will setup the server and get app running within an hour, but that’s not the case with Nodejs. It is just not noob-friendly. But once you understand the nuances and terminology, it just hits you right in the face.

So you might ask, what is this post about? It is about, things I liked/dis-liked in one the most touted buzz-word framework Node.js. So here for you!

Likes

  1. Ease of use and setup! Server configuration in local, just 2 secs! Yes, that easy.
  2. Huge community support. I mean huge. And Node.js have LTS now, which is a big relief when devs going in for critical applications where support is crucials.
  3. NPM! Enuff said. Nothing can beat this, not even close.
  4. Awesome plugins. Almost anything, you can find. Never have I felt so relaxed in my 7 years of developer life. Before doing something, I just check npm to see if a plugin already exists and so far it is the case!
  5. Simple, modular code structure.
  6. Very very very very less, learning curve.

Dis-likes

  1. Few plugins I want to use, is either not maintained properly or author simply left it there hanging. I can see many such one, with lot of PRs hanging around. I mean, I’m little concerned about using it. What if something breaks after some time, who I’m gonna ask for help?
  2. Infrastructure is big PITA! This thing is harder than setting up J2EE Server! This coming from Java guy. I mean, yes, heroku is great, but not as great as I thought. If a noob cant configure it, then it is indeed not great. It needs proper, setup guide for noob like us.
  3. Callback! Yeah I know it sounds dumb, because I know there was callback, but this is serious. For first few weeks, it’s fine. No, it’s great. But when code base is expanding, things get real ugly. But there are ways but still, I wish Node.js could have come up with some slick one instead of fat one!(Don’t tell me promise!)

So, it’s not bad at all as people claim. If planned and written properly, with some research on whether it suits you, this can be the best RAD framework, be it your pet project or anything.