Web development is a broad term for the work involved in developing a web site for the Internet (World Wide Web) or an intranet (a private network). Web development can range from developing the simplest static single page of plain text to the most complex web-based internet applications, electronic businesses, and social network services. (Source: Wikipedia)
A lot happened in the web development world in 2016. There were new releases of popular programming languages, new versions of important frameworks, new tools including system design methodologies.
Here I am, to shed some light on the technologies that changed the world of development, especially web development.
So here are some serious Web development trends that the year 2016 saw:
1. Shift from backend to frontend: 2016 saw a major shift of business logic for 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 much more important. This move makes sure that the backend will serve as an appropriate data provider and, major processing and presentation logic can be managed by frontend code (Majorly JavaScript and JavaScript based frameworks). This made a lot of sense, as now Personal Computers are quick enough to share task that were previously handled by Web or App Servers.
2. Browser makers have gone more serious: Browser makers, especially Microsoft, speeded up their assembly lines and made some serious changes to delivery time lines. With “EDGE” browser replacing “IE”, they made significant advances in rendering html & CSS and a better support for JavaScript Community. Firefox and Mozilla were already on the track since long. This has moved the JavaScript community forward, as updates to JavaScript and web standards will be available in weeks rather than years everywhere.
3. At last “Flash” Died: Finally! 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.
Language and Platform Trends for 2016
1. Python: Python is gaining an all-round of acceptance. Be it from “Application Development”, “Scientific & Numeric”, “Education”, “GUI Development” or “Web Development”. The release of Python 3.5 added features like Asyncio, which is like Event Loop in Node.js. Now that’s a major step taken by Python in current world’s web development. Apart from this, “Django”, “Pyramid”, “Flask” are some of the tools that give developers a lot of power and fun while developing Web Based Applications.
2. PHP 7: Don’t forget the age old “PHP” which once powered websites like “Facebook”, “Zynga”, “Accenture”, “Rackspace”, “Tesla”,” Nokia” and the list goes on. PHP 7 is a major new version that fixes a number of issues and brings new features and speed. 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. And if you need even more speed and don’t mind switching to an alternative runtime, check out HHVM, which is used and developed by Facebook to run their website.
3. 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.
4. 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.
5. 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 few weeks ago, Swift has been an open source and has already been ported on Linux. This means that it is now possible to build backend and server side software with it.
6. Go 1.5 was released a few months ago, and brought major architectural changes. In 2016, 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.
Learning a couple of these is highly advised: Python 3, Go, PHP 7, ES2015, Node.js, Swift, TypeScript.
Awesome JavaScript Frameworks: JavaScript has been the past, present and future of Web Development. Year 2016 saw a lot of people in the community accepting the JavaScript and JavaScript Based Frameworks.
JavaScript is such an integral part of the web development stack, so we are having a section in our overview. There were two new standards released this year – Service Workers and Web Assembly, which will shape how web apps are developed from now on. There were also a number of new framework releases/updates which we think you should keep a close eye on in 2017:
Angular.js: Google and Microsoft partnered up for developing the Angular 2 framework, or more specifically Angular 2 will be built with TypeScript, which was developed by Microsoft to make JavaScript a more manageable language. What does this mean? Large (mostly non-tech) enterprises may be interested in looking into Angular 2, especially ones that use Microsoft’s .NET framework. Microsoft has also been pushing .NET pretty hard since last year as it open-sourced many things and strive to make its tools more accessible to developers.
With the rewrite into Angular2, the team hopes to fix all the scaling issues with Angular 1 apps, and performance has been impressive so far. Moreover, other than being capable of sever-rendering, Angular 2 will support web components, which Google believes to be the future of web development. WHAT’S NEXT “Angular 4” or Just “Angular”. Let’s SEE in 2017.
React: Continued it’s ascend throughout 2016 and has seen new releases throughout the year and new projects are 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, it combines a native frontend with React running in a background JavaScript thread.
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.
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.
CSS pre-processors 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 2017. Also, there is the newer PostCSS tool that is gaining mindshare, but we recommend it only for developers who already have experience with preprocessors.
Backend
As the trend of shifting logic from backend to frontend has been prominent, and the backend is only treated as an API Provider, 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 what language you choose, you have an array of “Frameworks” to ease your life.
a. PHP: Symfony, Zend, Laravel, CodeIgniter, Slim and a number of others.
b. Python: Django & Flask is what gets accepted majorly.
c. Ruby: You have Rails and Sinatra.
d. Java: Choose between “Play” and “Spark”.
e. Node.JS: Express, Happi, Sails.js were the once most whispered.
f. Go: Revel is coming up
Another trend is static site generators like Jekyll and Octopress. These tools take a number of source files like text and images, and create an entire website with pre-rendered 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.
CMS
We have included two major CMS (Content Management Systems) Wordpress, Drupal both developed in PHP and were major choices by developers when they had to choose one.
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:
PostgreSQL is a popular relational database engine which sees a lot of development activity and is constantly improved with new features. 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 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.
NOSQL Databases had a mixed response, but some notable once are: Mongo, Cassandra, ReThinkDB & Redis which gained community support.
WELCOMING 2K17
With 2017 round the corner here are few tools, technologies, platforms that we suggest you should look into.
Languages: Python 3, Go, PHP 7, ES2015, Node.js, Swift
Javascript: Angular 2, React, Ember.js
Frontend: Bootstrap, MDL, Foundation, SASS, LESS, PostCSS.
Backend: A full stack backend framework (May it be PHP, Python etc .. etc ..)
Database: Redis, RethinkDB, MySQL/MariaDB, PostgreSQL