Home > Architecture, Programming > JavaScript Frameworks, Libraries oh my goodness

JavaScript Frameworks, Libraries oh my goodness

This post is part of a series of posts on Client-Side Web Application Development using JavaScript.

Stealing from your employer / client

Jeremy Miller once wrote this quote on his blog about How to design your data connectivity strategy 

If you’re writing ADO.Net code by hand, you’re stealing from your employer or client.

I believe that applies to the JavaScript land today. If you are an application developer you have no business doing infrastructure development, especially when someone else has already solved the infrastructure concerns for you. This is counter-productive for the following reasons

  • Application development and Infrastructure development are two different skillsets. Not everyone is equipped with the skills for writing generic frameworks.
  • Even when you have those kind of ‘alpha’ developers, It is still not recommended because it either
    • Increases your go to market time for your product if you work on infrastructure concerns rather than adding business value to your customer
    • Results in a buggier product, due to shortened development cycles. Since you have used up those development cycles in developing the infrastructure concerns.
    • If you build the infrastructure first and build an application on top of it later, you may end up with an infrastructure that is not adequate to build your application.
    • More than anything I don’t know about you, But I am extremely lazy developer. I do not like reinventing the wheel. Someone has already solved these problems and you have battle tested solutions.

    I hope I have convinced you not to steal from your employer / client Smile.

    Death by Choice

    The moment you start shopping for these Frameworks / Libraries you might feel overwhelmed. It may be very tempting to go back to the ‘Build Your Own Technology’ mindset again rather than evaluating the innumerable options available. Someone jokingly tweeted

    "There are more JavaScript frameworks than the JavaScript apps using them"

    We need to take a structured approach towards learning & evaluating these JavaScript frameworks.

    Classification / Categorization & Meta-Learning

    The first one that can help is classification / categorization coupled with meta-learning. Simply put instead of learning these frameworks learn them as abstract concepts. You may already know from your server-side experience – For example you might have used a Template Engine on the server side. I am a .NET developer and I am familiar with ASP.NET MVC calls them view engines. So instead of learning the libraries as handlebars, mustache, dustjs individually, learn them as an abstract concept – A Template Engine.

Social Learning

The pace at which technology is evolving it is difficult for any sane “Husband/Wife, Father/Mother, Programmer” to stay on top of everything. So leverage your social network. Frequently share and use information from people who you trust in your network. I will quote from Ayende’s  blog entry which has this in better words than mine

No one can really keep track on all the things that are going on in the industry, and I have come to rely more & more on the opinions of the people in my social network to evaluate and consider alternatives in areas that aren’t offering acute pain. That allows me to be on top of things and learn what is going on at an “executive brief” level.

The Evaluation Spectrum

On one side of the spectrum is people who choose frameworks / libraries by popularity.

  • I heard about this framework library in the conference.
  • I heard about this framework as it comes up often in my twitter feed.
    On the other side of the spectrum is where you can afford a team of 10 developers and each one can pick a framework / library to evaluate. You can do this exercise for a month to a couple of months depending on how much money you can burn as an organization. At the end of the exercise you can summarize your results in complex subjective spreadsheets / presentations.
    The reality is somewhere in between. I hope that by using a reasonable classification method and listing a reasonable set of parameters we can find a reasonable midway in the spectrum that works well for us.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: