The Languages And Frameworks You Should Learn In 2016

A lot happened in the software development world in 2015. There were new releases of popular programming languages, new versions of important frameworks and new tools. You will find a short list of the new releases that we think are the most important below, together with suggestions for the things we believe would be a great investment of your time to learn in 2016.

The Trends

Shift from the backend to the frontend

In the last few years, there has been a trend towards shifting the business logic of web apps from the backend to the frontend, with the backend being delegated to a simple API. This makes the choice of a frontend framework that much more important.

Quick browsers releases

Another significant advancement for the web as a platform in 2015 was the release of the Edge web browser. This is the successor of Internet Explorer which has an updated interface and faster performance. What sets it apart from IE is that it adopts the same quick release schedule that Firefox and Chrome follow. This is going to move the JavaScript community forward as updates to JavaScript and web standards will be available in weeks rather than years everywhere.

The death of Flash

It has finally happened! YouTube switched to HTML5 this year, ditching their legacy Flash player. Firefox started blocking the Flash plugin by default. Even the powerful Adobe Flash creation suite was renamed to Adobe Animate and defaults to HTML5 exports. This leaves the doors wide open for the web platform to shine.


languages-and-platforms.jpg

Languages and Platforms

Python 3.5 was released this year with a lot of new features like Asyncio, which gives you a node.js-like event loop, and type hints. As a whole Python 3 is finally gaining popularity and we heavily recommend it over the older Python 2. Nearly all libraries are available for Python 3 and now is a good time to upgrade your legacy code base.

PHP 7 is a major new version that fixes a number of issues and brings new features and speed (see an overview here). PHP 7 is around twice as fast as PHP 5.6, which will have a big impact on large codebases and CMS systems like WordPress and Drupal. We recommend PHP The Right Way, which was updated for version 7. And if you need even more speed and don't mind switching to an alternative runtime, check out HHVM, which Facebook uses and develops to run their website.

JavaScript also saw updates in the form of the ES2015 standard (used to be known as ES6). It brings us exciting new features and additions to the language. Thanks to most browsers adopting quick release schedules, support for ES2015 is great, and there is Babel.js which will help you bring your code to older browsers.

Node.js saw a lot of changes this year, with the community splitting between Node.js and io.js, and then joining forces again. As a result we now have an actively maintained project with lots of contributors and two versions of Node - a solid LTS (long term support) release, which gives stability for long lived projects and large companies, and a non-lts version which is quick to add new JavaScript features.

Swift 2 was released earlier this year. This is Apple's vision for a modern programming language that eases the development of apps on iOS and OS X. As of a few weeks ago, Swift is open source and has already been ported on Linux. This means that it is now possible to build backends and server side software with it.

Go 1.5 was released a few months ago, and brough major architectural changes. In 2015 it has grown in popularity and has been adopted in leading startups and open source projects. The language itself is relatively simple, so learning it will be a weekend well spent.

TypeScript is a staticly typed language which compiles to JavaScript. It is developed by Microsoft and has perfect integration with Visual Studio and the open source Visual Studio Code editors. It will soon be quite popular, as the upcoming Angular 2 is written in it. Static typing benefits large teams and large code bases the most, so if one of these applies to you, or you are just curious, you should give TypeScript a try.

For the adventurous, you can try out one the functional languages like Haskell or Clojure. There are also interesting high performance languages like Rust and Elixir. If you are looking for a programming job, career languages like Java (which has some nice features in its 8th version) and C# (which thanks to Visual Studio Code and .net core can be run and developed cross platform) would be a good investment of your time in 2016.

Learn one or more of these: Python 3, Go, PHP 7, ES2015, Node.js, Swift, TypeScript


javascript.png

JavaScript Frameworks

JavaScript is a very important piece of the web development stack, so we are giving it dedicated section in our overview. There were two new standards this year - Service Workers and Web Assembly, which shape how web apps are developed from now on. There were also a number of new framework releases which we think you should keep a close eye on in 2016:

Angular.js has become the go-to JavaScript framework for enterprises and large companies. It has been known for some time that the next major version of the framework was coming, and earlier this year Angular 2 was released as a development preview. It is a total rewrite of Angular 1 and according to us is a great improvement over it. It is almost guaranteed to become the enterprise framework of choice once it is released, and Angular 2 experience will be a great addition to your CV. Our advice is to wait a few months for the final version to ship before picking it up, but you can read through their quick start guide right now.

React continued its ascend throughout 2015 and has seen new releases throughout the year and new projects adopting it as their library of choice. It shipped new development tools a few months ago. Facebook also released React Native which is a framework for building mobile apps for Android and iOS, which combines a native frontend with React running in a background JavaScript thread. See a quick tutorial about React that we published this year.

Polymer 1.0 was released in May. This marks the first stable and production ready version. Polymer is based around Web Components, which is a standard for packaging HTML, JS and CSS into isolated widgets that can be imported into your web apps. Web Components are only supported in Chrome and Opera at the moment, but Polymer makes them available everywhere.

Ember.js also saw a new release. Ember 2 brings modularity and removes deprecated features and optimizes the codebase. Ember follows semantic versioning and maintainers of the framework are careful to make updating as easy as possible. If you need a framework with stability and easy migration to new versions, you can give Ember a try.

Vue.js is a new library that offers reactive components for building user interfaces. It supports data binding, modular components and composition. It is similar to React, but doesn't use a virtual DOM and works only in the browser. In the short time that it has existed, Vue has gathered a very active community around it and is establishing itself as a pragmatic tool for building web interfaces.

Learn one of these: Angular 2, React, Ember.js, Vue.js, Polymer, Web Components, Service Workers


frontend.jpg

Frontend

Bootstrap has become even more popular in the last year and is turning into a web development standard. Version 4 will come out in the next few months, which brings flexbox support and integrates SASS. It promises a smooth transition from V3 (unlike what we saw with v2 to v3 a couple of years ago), so you can feel confident that what you learn about Bootstrap 3 will be applicable to version 4.

Foundation is another frontend framework that is an alternative to Bootstrap. Version 6 was released earlier this year, which focuses on modularity so that you can include only the pieces that you need for a faster load time.

MDL is an official framework by Google for building material design web apps. It was released earlier this year and has a similar goal to Google's other framework - Polymer, but is much easier to get started with. We have a wonderful overview which compares MDL with Bootstrap.

CSS preprocessors continue improving. Less and SASS are the two most popular at the moment, with mostly comparable feature sets. However, the news that Bootstrap 4 is migrating over to SASS gives it a slight edge over Less as the preprocessor to learn in 2016. Also, there is the newer PostCSS tool that is gaining mind share, but we recommend it only for devs which already have experience with preprocessors.

Learn one or more of these: Bootstrap, MDL, Foundation, SASS, LESS, PostCSS


backend.jpg

Backend

There has been a clear trend in web development over the last few years. More and more of our apps' logic is shifted to the frontend, and the backend is only treated as an API. However there is still room for classic HTML-generating web apps, which is why we think that learning a classic full stack framework is still important.

Depending on which language you prefer, you have plenty of choice. For PHP you have Symfony, Zend, Laravel (and Lumen, its new lightweight alternative for APIs), Slim and more. For Python - Django and Flask. For Ruby - Rails and Sinatra. For Java - Play and Spark. For Node.js you have Express, Hapi and Sails.js, and for Go you have Revel.

AWS Lambda was released last year, but the concept is now established and ready for production. This is a service which eliminates backend servers entirely and is infinitely scaleable. You can define functions which are called on specific conditions or when routes of your API are visited. This means that you can have an entirely serverless backend which you don't have to think about.

Another trend are static site generators like Jekyll and Octopress (see a complete list here). These tools take a number of source files like text and images, and create an entire website with prerendered HTML pages. Developers, who would normally set up a WordPress blog with a database and an admin area, now prefer to generate their HTML pages ahead of time and only upload a static version of their site. This has the benefits of increased security (no backend to hack and database to manage) and fantastic performance. Combined with CDNs like MaxCDN and CloudFlare clients can request a page of the website and receive it from a server nearby, greatly reducing latency.

Learn one of these: A full stack backend framework, AWS Lambda, A static site generator


cms.jpg

CMS

We've included two of the most popular CMS systems here. Both are written in PHP and are easy to deploy and get started with. They enjoy big speedups from the new PHP 7 release.

In recent years WordPress has become much more than a simple blogging platform. It is a fully fledged CMS/Framework with plugins that make it possible to run any kind of website. High quality WordPress themes are a big market, and lots of freelancers make their living by developing for WordPress. With projects like WP-API you can use WordPress as a REST API backend.

Drupal 8 was released this year. It is a full rewrite that focuses on modern development practices. It makes use of Symfony 2 components and Composer packages and the Twig templating engine. Millions of websites run Drupal, and it is a good choice for content heavy portals.


databases.jpg

Databases

This year the web development community lost some of its enthusiasm for NoSQL databases, and instead returned to relational databases like Postgres and MySQL. Notable exceptions to this trend are RethinkDB and Redis which gained mind share, and we recommend that you try them out in 2016.

Postgres is a popular relational database engine which sees a lot of development activity and is constantly improved with new features. Version 9.5 is expected soon. It will bring better support for JSONB columns for holding schema-less data (replacing any need for a separate NoSQL database) and the long awaited upsert operation, which simplifies INSERT-or-UPDATE queries. You might want to look into it, once it is released in 2016.

MySQL is the the most popular open source database system and is installed on most hosting providers out there. With version 5.7, MySQL also offers JSON columns for storing schema-less data. If you are just starting out with backend development, you will most likely be looking at connecting to a MySQL database that your hosting provider has set up for you. It is probably going to be an older version, so you might not be able to try out the JSON type. MySQL is included in popular packages like XAMPP and MAMP so it is easy to get started with.

Learn one of these: Redis, RethinkDB, MySQL/MariaDB, PostgreSQL


mobile-apps.jpg

Mobile Apps

Mobile platforms are always evolving and smartphone hardware now rivals low end laptops in performance. This is great news for hybrid mobile frameworks, as mobile apps built using web technologies can now offer a smooth, native-like experience.

We have a nice overview of hybrid mobile frameworks that you might want to check out. You have the popular Ionic framework and Meteor which recently had its 1.0 version and is also suitable for mobile app development. Facebook launched React Native, which runs React components in a background JavaScript thread and updates a native UI, allowing you to have mostly identical code for both iOS and Android.

Learn one of these: Ionic, React Native, Meteor


editors-and-tools.jpg

Editors and Tools

The Atom editor reached version 1.0 this year. It is a free and powerful code editor that is built using web technologies. It has lots of packages available for it and a large community. It offers smart autocompletion and integrates with plugins for code refactoring and linting. Not to mention that it has lots of beautiful themes to chose from, and you can customize it by writing CoffeeScript and CSS. Facebook has used this extensibility and launched the Nuclide editor.

Microsoft surprised everybody when they released their Visual Studio Code editor earlier this year. It is a lightweight IDE that supports a number of languages and runs on Windows, Linux and OS X. It offers the powerful IntelliSense code inspection feature and integrates a debugger for ASP.Net and Node.js.

NPM, the package manager of Node.js, has exploded in popularity and has become the packaging standard for frontend and node developers. This is the easiest way to manage the JavaScript dependencies for your project and getting started with it is easy.

Even for a solo developer Git is a necessity these days. Its serverless model allows you to turn any folder into a version controlled repository, which you can then push to Bitbucket or Github, and sync across computers. If you haven't used Git yet, we recommend that you add it to your list of things to learn in 2016.

Learn one of these: Atom, Visual Studio Code, NPM, Git


making-things.jpg

Making Things

The Raspberry PI foundation delivered an early Christmas present this year, with the release of the Raspberry PI Zero - a $5 computer that is fast and power efficient. It runs Linux, so you can turn it into a server, a home automation device, a smart mirror, or to embed it into a dumb appliance and create that internet enabled coffee brewer you've been dreaming of. 2016 is the year to get a Raspberry.


Onto An Awesome 2016!

We've had a great 2015 and by the looks of it 2016 is going to be even more awesome. What's on your list of things to learn in 2016?

Bootstrap Studio

The revolutionary web design tool for creating responsive websites and apps.

Learn more

Related Articles

Martin Angelov

Thank you for reading our overview! We are web developers here at Tutorialzine, so naturally this article reflects this. We've skipped advancements like Deep Learning and trends like containerization and Docker, but we would love it if you share what you are excited about in the comments.

I think that the release of the Edge browser is a big deal for the web platform. This leaves Safari as the only browser that we will have to use polyfills for, but hopefully it will transition to a quick release schedule as well.

Wow. It's a lucid and informative article which reflects on the current trends. There are other trends as well. Since windows 10, there was a shift from realism to flat design which was carried by MDL for front-end technologies. HTML5 brought many new features such as videos, mp3's, canvas, svg and new semantic tags which were relying heavily on flash and java apis. With this huge jump in web technologies there has been some tremendous changes in technologies.

Martin Angelov

Oh yes, the death of Flash was one other important event this year. I think that the web platform is ready to take its place. The article was updated to include this.

Christopher

You forgot one of the coolest JS libraries ever: Vue.JS

Martin Angelov

Thank you for mentioning this! We've updated the article to include it.

Have you missed codeigniter PHP framework, which got a major update this year and have got a active road map for version 4.

Martin Angelov

Thank you for mentioning CodeIgniter. Also a solid full stack option. We can't include all frameworks in the article, unfortunately.

mentaazul

Thanks for including CI, Kathan, that's still my go-to Framework, it was deemed dead but still very useful, and you say, "back in business" with an actual roadmap. However the article was HIGHLY interesting for people like me who were a little out of touch with new technologies. THANKS!

Manish M

Wondering, why CakePHP could not make it in here...

Martin Angelov

Thanks for bringing it up! CakePHP is another good option for people looking for a full stack framework.

That's an outstanding article!

Alexandre Kieling

The back-end will continue to be a very important part of any app, it just won't be responsible for the interface anymore.

What's wrong with asp.net 5 mvc? it's probably the most powerful web framework out there. 2016 will see it's full release, as it is still in beta.

You need to branch out past .NET. While ASP.NET MVC is a nice platform, it's certainly not the most powerful (whatever that means) or performant.

How so? What can it not do?

Sweet, thanks Martin. Some great finds here. It looks to be an exciting year for coding.

David Pickens

Thank you for this excellent article! Every year about this time I review where I am in terms of development skills and compare this to where the world is going in terms of development trends. And I use this exercise to decide what new things I ought to explore in the next year. You have given me a very interesting list of things to explore. I only wish I had the time to learn them all.

Tim Gordon

Frameworks come and go, it's more important to have the knowledge of the language the framework is based on. Most companies will test for languages when hiring rather than frameworks, see these screening tests for example http://www.testdome.com/Programming-Tests
Once you're competent with the core principles behind it, learning a specific framework isn't that hard.

mentaazul

That's a good point Tim. I think that frameworks can get you lazy too. I've experimented that with Codeigniter, though it's a great timesaver, I'd like to do some full PHP coding just to keep my knowledge alive.

Michile Crawford

What about Magento 2 or Netsuite?
They are outstanding CMS....

I think Aurelia.js (http://aurelia.io/) should be mentioned on the JS frameworks list as well. It's been developed by a team working with Rob Eisenberg (behind Caliburn Micro and Durandal.js) and looks really promising. It's a future focused, modular framework that, if you're looking at Angular/Angular 2 should definitely be on your radar.

You'd be remiss to leave out the very clean and awesome Aurelia framework - beats anything by the Angular folks, IMO!

I'm migrating my stuff from Angular 1.x to Aurelia, not Angular 2.x

I don't know why Aurelia didn't make the Javascript frameworks list. It's awesome and has huge potential going up against Angular/Angular 2.

Bondifrench

I think you missed a few trends, the first one which is that a lof of people try to forgo large JS libraries, and prefer to assemble micro ones that do one thing well, see micro.js or all the modules created by Ponyfoo.com author Nicolas Bevacqua.

The second trend is people moving away from jQuery as Javascript is evolving rapidly and you can achieve a lot of things with plain javascript, without any large dependencies see plainjs.

The third trend is Javascript is being more recognized as a functional language and not Object Oriented or class based. See the success of Javascript allonge by Reginald Braithwaite, Mostly adequate guide by DrBoolean, the success of the Ramda library, even the utilities library Lodash has a functional version called Lodash-fp

The 4th one is the rise of the virtual DOM, libraries like React or my preferred one Mithril.js have changed the paradigm for front-end frameworks so even big frameworks like Angular in version 2 are moving in that direction.

The 5th one is javascript frameworks performance vs native on mobile will improve and a small one like Mithril.js with 7 kb gziped, combined with Cordova will redefine what it means to develop cross platforms (see Lichobile for an example of such combination and its open source code here. Angular or Ember have awful performance mobile wise, even React is not that great, aside from React-native, so, this will encourage the first trend I mentionned, the rise of micro libraries.

K Baidya

Thanks Martin for your rich information on web related technologies. I was looking for exactly this kind of article.

Great article.
I added learning Node.js and Swift on my to do list.

Sherif Muhammad

Is it true people lost interest in NoSQL db's?
I was under thee impression that they are better, performance-wise.

Like all technology NoSQL has it's uses, but it's not a replacement for X technology, namely relational databases. It does gain performance but at the cost of data integrity. It might be great at storing tweets but it's not a viable option for storing financial information.

Just wondering what about Java/JEE which was the predominant technology for so many years.

excellent article, thank you for that!
for the backend, java near languages, you should mention scala, maybe groovy. You btw quoted 2 fw that have drivers in java but were written in scala (play and spark) if I'm not mistaken

Nice article, but why isn't Sublime Text mentioned in the list of editors here?

Hey great article, a friend of mine recommended me to learn Meanstack. What is it and is it worth the time. Also I would like say I'm new to web development and am loving it a lot.

Right on, great article.
My knowledge of Web Development is limited to HTML, PHP and MYSQL which I still am trying to master.
I have been an avid user of Adobe CC but am starting to realise it's limitations.
My plan is to create a website and build an app with the database. Any direction for a plan of attack would be greatly appreciated.
TIA
Tim

Mick Sharpe

Great article -- the most informative that I've read in a long time. As a retired programmer, there's plenty of suggestions in there to pique my interest. Rust looks good. Many thanks.

This article is very awesome, thank you for sharing. NodeJS + AngularJS+Ionic for developing back-end and front-end.

This is a great article to read. I am a front end developer and sometimes it is hard to stay on the right track with what's trending and what to learn. There is so many languages to learn from and to learn the right ones are important in this field. I hope to add a few of these frameworks to my skill set. Thanks again.

amin khoshzahmat

im wondering what Languages And Frameworks i Should Learn In 2020 :| :))
maybe 10 languages and 30 frameworks!
it feels like rockstar

Susanth K

You missed two projects
http://stylus-lang.com (css pre processor)
http://coffeescript.org (Github uses coffee more than plain js, atom editor is an example)

Could you explain why there is shift of logic from backend to frontend and what it means? I am new to programming (Rails).

G Wilson

Great article indeed! It really saves me a lot of time, time who would have been spent in searching for the newest trending languages and frameworks to master.

Ali ElZein

This page is the best page i have ever seen in my life thank you so much for simplifying it for me

Arun Koushik

Great article outlining the trends in a concise form!

Waqas Ahmad

The article of the year! Thank you for sharing.

Mike Rodent

Just a question more than an observation (I'm not an IT professional, just a dabbler of many years' standing):

I've seen suggestions that Node.js, attractive though it may appear due to Javascript now being considered super-hot (O irony) and of course guaranteed to be in use for decades as THE browser language, suffers to a degree from not having a central authority, i.e. unlike other major languages such as Java, Python, JS itself (in its different browser dialects).

I've heard people complaining that Node.js code which used to work last week now breaks, and that thing like dependency management are a nightmare, making the language rather fragile and the experience of coding with it rather stressful... any views?

@MikeRodent - this is a risk with NodeJS and using NPM to blindly install plugins. I encourage engineers to code their own simple functions instead of lazily relying on plugins to reduce this risk and control performance, but when including 3rd-party plugins you can do two things:

1) Pin the version in your package configuration (so 'npm install' will grab a specific version each install/deploy)
2) Commit your /node_modules/ folder to source control and deploy your app with its dependencies

If you first consider coding simple features yourself, then if deciding on a library performing one or both of these, you should be fine.

Great - very helpful article - also for folks who need to catch up on the latest tech for frontend and backend. Kudos!

While you guys are spending all of your time learning frameworks, I will be busy developing real production applications with Java Servlets that send/receive JSON and talk to an Oracle database, all while coding very responsive single page front ends with jQuery/jQuery UI. Call me a dinosaur, and I'll tell you to ask my clients if I'm a dinosaur (especially after they had to throw out a half dozen framework obsessed developers).

All of this framework p0rn is a great laugh. Anyone who has the time to learn more than a half dozen of these frameworks is clearly not delivering applications that make it to production and have hundreds/thousands of users and capturing hundreds of thousands (and into the millions) of transactions. It is simply a matter of massaging ones ego/fattening a resume.

Looking forward for 2017

Useful article, i appreciate your work.

But wondering, why Cygnite PHP Framework - The new cool kid! not here.. Another powerful light weight framework. I could also see, which have got a active road map for [v3.0] (https://github.com/sanjoydesk/framework/tree/php7/)

Zuhayer Tahir

Nice article, lots of power in a little punch :)

Great article, surprised you didn't include a noSQL database like MongoDB (part of the MEAN stack).

I think we need a deeper debate on Java developers and frontend frameworks. I am a MacGyver:-) at my company focused on Java application development. We have a dozen or so large enterprise Java applications using various front-end technologies, especially extjs. The issue is, the architects here years ago needed custom components Sencha didn't have so they decided to download and extensively modify the source code. Some of it is good but it also makes it impossible to getting assistance from Sencha and you can't upgrade extjs without going through the entire source code to locate all of the changes. So the extjs 4.1 we are using now really needs an upgrade. No matter what, it will require extensive rewriting even to extjs 6.x.

So I'm looking at other frameworks like Angular, Ember, Struts 2.x, and Vaadin. The crucial component really is the developer. We are now few and need to hire for the future and finding competent Javascript developers is difficult and they need some Java knowledge to interact with the backend. So, my CTO has said forget the Javascript frameworks and use a framework Java developers would know, JSF, Vaadin, Struts, etc.

I know the last few years have focused on front-end development but most companies can't afford to hire a frontend-only developer and a backend-only developer. They need to be Polyglot-centric, they need to do both.