Staying on top of changes in technology is a nearly impossible task. I suspect this is why software engineers are so dogmatic about the tools they’ve chosen: after investing such a great deal of time and effort in learning them, new tools simply make them afraid of the unknown. Regardless, staying current with evolving technological changes is part of the job description.
I didn’t get to toy around with as many new technologies in 2015 than I would have liked. I’m hoping 2016 will be different. Here are some things that have my attention.
1) Elixir and Phoenix
Extreme reliability and scalability are a necessity in large scale software environments today and the foundations of Elixir and Phoenix, the Erlang VM, promise this.
Elixir is a relatively new language based on Ruby and built on the Erlang VM (think what Scala or Clojure are to the Java VM). Built on it is the Phoenix Framework, a web framework that promises “speed and maintainability”.
If you haven’t yet, check out the blog post detailing how they built a basic chat client that easily supported 2 million concurrent connections.
Everything about this technology looks exciting. Erlang is known for being rock solid, and Elixir looks like a fun, small, and powerful language. The combination of Elixir and Phoenix are what I’m most interested in 2016.
vue.js is a new library (framework?) for making reactive components for the web.
<script> tag and calling it a day.
That isn’t sustainable anymore, and investigating vue.js looks like a great way to get on top of building reactive web applications.
3) Postgres 9.5 and 9.6
Postgres is by no means a new technology, but it is simply the best open source database in the world, period. From supporting JSON natively, to recursive common table expressions (CTEs), to it’s rock solid stability and reliability, it simply can’t be beat.
2016 will bring us Postgres 9.5 and possibly 9.6. With 9.5, we finally get the
ON CONFLICT in Postgres) to handle an
UPDATE depending on the presence of a primary key. Postgres was long criticized for not having this feature. However, the Postgres developers preferred to wait to get it right rather than just slap together a feature to stay competitive and call it a day. I am interested to see how ORM developers will integrate this feature into their frameworks.
I am really excited to see what Postgres has to offer in 2016. If you’re starting a new project, I highly recommend you start with Postgres as your relational database.
Awful name aside, Rust looks like a very interesting language. Compiled, server side, multi-core, statically typed languages have really taken off recently (Scala, Java, Go, etc), and I suspect the same will happen for Rust.
It promises thread safety, reliability, and speed. The development of the language has happened at a breakneck pace, and it offers a great view for anyone who wants to see how a language is designed.
Admittedly, I will most likely not have time to use Rust much in 2016, but I suspect it’s impact will be huge.
5) Decentralized User Management
Savvy Internet users want a single decentralized user management system. OpenID and eventually Mozilla Persona were going to be it, but unfortunately both have languished.
As much as I love 1Password, I hate that I have a separate username and password for every site that I visit.
Though there are many for-profit user management systems out there, I would love to see a successful open source (or rather, open protocol) one implemented and sustained.
Ironically enough, the sites that need secure, hardened, and peer reviewed user management (banks, investment firms, hospitals, and government agencies) are the ones least likely to implement it.
6) Back to the Basics
The Web has changed dramatically since it first premiered in 1991, and yet it is still the same. The very first web page still renders fine in all modern browsers, as do millions of other web pages built before 2000.
I’ve found that combination makes for an amazing experience, both for the developer and end user.