5yr Tech Predictions

Earlier I wrote about a post that outlined how to know if a new technology is worth learning. In this post I actually show you some new technologies that I are worth learning now, because in a few years they will be in demand.


NoSQL has gotten wrapped up in a hype machine that has caused countless flame wars, hurt feelings, and sensational claims. No it’s not the messiah. No it won’t solve all of your problems, it’s a goddamn database. That said, I love RethinkDB, It’s the next generation of NoSQL. If you’re planning on using MongoDB, lots of JSON, GeoJSON (map data) or storing data from API’s, take a look at Rethink. It has a beautiful web UI, great query language called ReQL (which can do many things SQL can’t do), and has the ability to do things other NoSQL databases can do like table joins.

What’s so cool about it? RethinkDB now has something called http as a query. Let’s say you want to get a list of github users in Seattle that have Python repos. You can do something like this:


and it will pull down that info directly into your database. Pretty sweet huh? Want to just create a table and add some data?

r.db('test').tableCreate('tv_shows') r.table('tv_shows').insert([{name: 'Fringe', rating: 3.5}, {name: 'The Twilight Zone', rating: 5}])

I’ll probably do a separate post on how to get everything up and running with RethinkDB but this at least gives you an idea. It currently has built-in drivers for Python, Ruby, and Javascript but there’s also several add on drivers for Go, PHP, Java, Haskell, etc. There’s really no reason that you can’t start using it today in your projects. Out of all the new technologies I monitor, this one of the few that really gets me excited. It also works with two other things on this list: Docker and Dart.


  1. Homepage
  2. HTTP as a query
  3. Rethink Tutorial


Ideally when you’re developing an application, you want the environment you’re working on to be as similar as possible to what it’s going to be deployed on. For example, you’re working on a web on your Mac laptop and everything is running peachy. You show it to Bob and he asks you to send over everything and he’ll boot it up on his Windows machine, ok cool. Ten minutes later Bob comes over and says it’s not working. One way to solve this problem is to set up a virtual machine on each persons computer so that everyone has the same environment.

Here’s the downside, virtual machines are heavy. I have three or four on my laptop right now and each one takes up about 4-10 Gigabytes. Why so heavy? Because each VM has to have its own operating system, libraries, and binaries. Instead What Docker does is it enables you to just have “containers” filled with the parts you need to share (like a database) without the extra OS, and binaries. For those into DevOps, it’s similar to an LXC container. Here’s a short video from the founder of Docker, talking about Docker.

Docker can seem confusing but the notion of it is simple. Small re-usable containers that you can share. This technology is DevOps (server-side) so if you’re a Front End Developer and this seems daunting don’t worry, you probably won’t need to know it any time soon. I think all developers should strive for full stack but if not, that’s ok.


  1. Docker
  2. Online Tutorial
  3. The Docker Book


It’s rough around the edges right now but good god, the things you can do! WebGL is one of those technologies that people love to talk about but few actually produce anything. There’s a reason, it’s hard and browser support is lacking. It’s bare metal and you can do things like take up way too much memory and break all sorts of things. But this is an article about things that will pay off in a few years. Three.js is probably the best library out right now for working with WebGL. Sooner, rather than later, something will come along that makes working with WebGL as easy as JQuery. If you spend some time learning it now when its rough and nasty, by the time GQuery comes out, you’ll be able to produce some unique user experiences. Check out some of the resources below, they’re incredible.


  1. Neural Network
  2. Dreams of Black
  3. Gush
  4. The Carp and the Seagull


(this one’s a wildcard) The widespread adoption of Dart will hinge on it’s awesome virtual machine. Why is the VM a big deal? Performance. The Dart VM beat V8 easily across all tested benchmarks. Lars Bak feels that we are hitting the upper limits of Javascript performance and it’s time for something new that can push the web to the next level. Who is Lars Bak? Well you know all of that awesome Javascript stuff that’s now possible, like Node.js, Maps, WebGL, Docs? All of it is possible because of Google’s V8 engine. You know who built it? Lars Bak (he also helped build Java and Smalltalk’s VM). Also on the project is another Java VM and V8 engineer, Kasper Lund. In fact, several of the engineers who built V8 are on the Dart project.

Right now the VM isn’t on any browser except for an experimental Chrome browser called Dartium (it ships with Dart and Dart Editor). Details on Dart getting into the Chrome you and I use everyday is still a bit vague although I’ve spoken to some of the Dart team face to face and they seem optimistic that it will be integrated soon.


  1. Dartlang - This is the best starting place. It has good documentation and code samples
  2. Learning Dart - A good book that dives straight in. Good for those who are already comfortable programming
  3. Dart for Absolute Beginners - A bit too basic for me but if you’re new to programming, this is the one for you. It not only teaches you Dart but most of the fundamentals.