New Technologies: A How To

Being a web developer is like being Alice on crack. You’re wandering around a strange landscape with a cat called Google and meetups talking about some Angular Dart Firebase disruption project. You finally figure out what everyone’s talking about and head off to do your own thing but every time you look down at your map it becomes outdated and every landmark seems to include a fight with a jabberwocky.

There are some things that we can do to keep from going crazy though. You don’t have to learn every new framework. You don’t have to know every Javascript library. No one in the development world knows them all. I promise you.

Evaluation

You just heard about {{framework}} or {{language}}. You want to know if it’s worth your time to learn, if it will make you more employable or make your life easier. There’s no one way to know if it’s going to be the next best thing. There was no real way to predict the plummet of Perl or the rise of Rails. What we’re trying to do is make an educated guess based on the information we have.

Before we get the to the detailed breakdown, we need to set a baseline. When learning any technology, you have to ask a few questions. Every library, framework, language, even hardware, has to solve a problem. By problem I mean something you’re trying to do.

Examples of problems:

  • I want to make a blog
  • I want to animate my headers for blog posts
  • I need to have user logins and authentications
  • I need to build an online store to sell macaroni art

Now you see this new framework came out and you ask yourself? Is it easy to learn and use? Is it effective at what it does? Does solve what I’m trying to or solve my problem better than what I’m using now? If it doesn’t have feature {{x}} that I need, does it look like they’ll put that in later?

If the answer is yes, we can move on to the next part. If it doesn’t solve any of your problems, right now is not the time to look into it. Why? Because if you start trying to learn ember bindings, angular modules, etc., without having a problem to solve, it’s not going to stick. Half the time if you do learn it but don’t need it for six months, the information in your brain might already be obsolete. Example? Vue.js only hit 0.10.6 and it’s already being re-written from scratch. AngularJS has had multiple breaking changes in almost every release.

The Strategy

Now, we’re past the baseline. We have a problem, and a new technology we’re looking into. Now what? Now, we start looking at all the little cues and buzz to see if this thing has a chance at hitting critical mass. Critical mass means something has gotten popular enough to be considered mainstream. You know when a technology has hit critical mass when you start to see job postings for it. Here are the things to look for in order of importance.

(Note: Yes there are exceptions…Yes there are exceptions. Yes,! There are exceptions)

  1. Documentation - This is one of the key factors in a technology gaining wide acceptance. If it can’t explain what it is and how it solves a problem, it has a low chance of adoption. There are exceptions, like the awful documentation of AngularJS. A great example of documentation is ember.js and bootstrap.

  2. Commits - always look at the repository to see how active the project commits are. If it hasn’t been updated in a while (4+ months), the likelyhood of it becoming the next big thing isn’t high. Need proof? Angular, Ember, Koa, Rails, Django, all have commits within the span of two days.

  3. Backing - If the project has backing from some famous developers or a company, it’s got a good head start. This is one of the reasons Angular is so popular. The one caveat to this is programming languages. Languages released by companies often have a poor track record for all kinds of reasons. This is a blog post in itself.

  4. Meetups - Listen to what people are talking about. Ask people what tech they're using. This works best if you’re in a tech heavy city like SF, NY, Seattle, etc., If developers are using it for personal projects and are giving talks about it, that's good.

  5. Google Trends - A rough way to see what people are searching for/talking about. Take all results with a grain of salt; some things are easier to search for than others. Here’s an example between node.js and Rails.

  6. Praise:hate ratio - a great barometer is Hacker News. If something is universally praised…well that’s never happened but, if it’s highly praised, that’s a good thing. If people are screaming that it’s the worst piece of tech to every grace the earth, that’s a good thing. If it’s in the middle, it’ll probably be forgotten.

  7. Tiobe Index - A very rough approximation used to show how many times a language is searched for. The trick here is to not look at the rankings but the little arrows indicating movement. That’s what you want to look at. Don’t ever base your entire decision on this

  8. Tooling/Workflow - Does it try and solve a general problem in web development? Oftentimes these are adopted quickly. Examples include Grunt, Gulp, Sass.

Some things to consider

There is a difference between hype and critical mass. Differentiating the two is difficult at first but usually clears up in time. One way to tell the difference is the ratio of buzz to completed projects. Example? Famo.us is the first thing that comes to mind. Lots of exciting copy but the demos are lackluster.

It’s also entirely possible that, in the search for new technologies, you lose focus on getting the problem solved. I’ve been guilty of this several times but I’ve come up with a solution. It’s called the “old reliable” and it goes like this: Have a friend who is somewhat opposite of you and is willing to call you a hipster when you get too crazy. Works every time.

There is also learning for learnings sake. To learn something that might just be for fun, to make you think differently. These are great and I highly encourage you do that. Don’t think that you only have to learn something only if it gives you an employable skill.

Using this strategy you should be able to pick up something new and not worry too much about investing time in a lost cause. It will also give you a leg up so by the time it does hit critical mass you aren’t playing catch-up.