three_software_development_trends_to_follow_in_2016

3
3 Software Development Trends to Follow in 2016 Quadion seeks innovation in all areas of its activity. In this case, we are dedicated to exploring the main trends of activities in the Software Development point of view. by Maria Ines Parnisari, Software Developer at Quadion.

Upload: quadion-technologies

Post on 23-Jan-2017

256 views

Category:

Documents


0 download

TRANSCRIPT

3 Software Development Trends to Follow in 2016Quadion seeks innovation in all areas of its activity.In this case, we are dedicated to exploring the main trends of activities in the Software Development point of view.

by Maria Ines Parnisari, Software Developer at Quadion.

Coming Soon: Full Support for ES6

JavaScript is one of the most widely used programming languages in the world, because it runs in all web browsers. At first, it was used in the front end of web applications, but since the appearance of Node.js, it can be used to develop full-stack web applications, and later on, it became possible to write mobile and desktop applications with it.

However, JavaScript can be a very confusing language, and has its share of design errors. Because of this, several languages appeared as supersets of JavaScript, including CoffeeScript (in 2009) and TypeScript (in 2012). These were built to overcome the design problems of JavaScript while still being 100% compatible with it, and they also added support for the features proposed in the ECMAScript 6 standard (ES6), to which JavaScript adheres.

Currently, web browsers support all features in the ECMAScript 5 standard (ES5). In June 2015, the newer version of the standard, ES6, was officially approved. ES6 adds new functionality to JavaScript, like classes and arrow functions. While it is still not fully supported by any of the browsers, this is changing by the week, and there are some tools like Babel that are able to transpile ES6 to ES5.

Whether or not we plan on writing ES6-compliant JavaScript right away, it is important to understand what it offers so that we’re prepared for the new JavaScript.

BaaS for Scalability

There are certain areas of functionality in software applications that can be found in almost all of them: user management, cloud storage, push notifications, integration with social networks...

In the past, developers used to build custom solutions, tailored for their applications, and probably for multiple platforms (desktop, web or mobile). This was a maintenance nightmare and implied wasting time by solving the same problems again and again. However, in the last couple of years we have seen a huge rise of Backend-as-a-Service (BaaS), which are services that offer from cloud-stored databases and virtual machines, to services that allow us to perform big data analysis.

A BaaS provides the connectivity and easy scalability that comes with all cloud-based services, like Amazon AWS, Microsoft Azure and Parse. They do all the heavy lifting for us and provide us with well-designed APIs and SDKs that we can consume in our applications to interact with their services, like OneLogin does to centralise identity management.

Although integrating a BaaS solution into a legacy application might be an interesting challenge, the benefits provided are undeniable and its hard to imagine a large scale application that doesn't utilise these services in their backends.

ReactJS, The New Kid In The Block

What web developer isn't fatigued by the sheer amount of front-end frameworks available today? Ember.js, Backbone.js, AngularJS... the list is endless.

There's yet another framework out there and it is gaining popularity by its proven ability to perform a lot faster than existing frameworks. It is ReactJS and it was developed by Facebook, and it is already being used in large websites, like Netflix and Airbnb.

Component-based UI is the future of web development, and React is based on reusable components. But you don't need to throw away your existing code and rebuild everything with React, because it can be used in conjunction with frameworks like AngularJS and Backbone.js. But, unlike these, instead of adopting the "put the JS in the HTML" rule, React is a framework that implements the "put the HTML in the JS" idea. This gives us all the benefits of writing JavaScript code, since we get syntax highlighting, navigation and code completion when using the right IDEs.

How does React achieve unprecedented levels of speed? We as developers create a virtual DOM, and when we need to update it, we let React's fast diff algorithm take over and determine what needs to change in the real DOM in as few steps as possible. This means that all the components can be re-rendered individually without the need for the whole page to be redrawn.

And how does it achieve ease of understanding and maintainability? By deviating from the traditional two-day data binding, which may cause cascading updates difficult to understand and debug, and implementing instead one-way data flows: the views dispatch actions, our code responds to actions, and finish by emitting "change" events, which the views respond to.

Widespread adoption of ReactJS might still be far in the future, but it is gaining popularity every day and presents a different approach to front-end development that is worth reading about.

ASP.NET Goes Open Source with Core 1.0 and .NET Core 1.0

First it was ASP.NET 5. Then it was ASP.NET vNext. Finally, a few days ago, Microsoft announced the "new name" of a new version of the world-famous ASP.NET technology: ASP.NET Core 1.0. Although it hasn't been released yet (there is no RTM version), a release candidate version exists and its official release date has been planned for the first quarter of 2016.

ASP.NET Core 1.0 is a "fork" of the latest, time proof version of the ASP.NET Framework, which is 4.6. It is an open-source project and, currently, it only offers a subset of features: Web API, MVC and Entity Framework as a new version as well. However, and this is a major advantage, it has been optimised to run in the cloud and it can be run either with IIS or in a standalone process.

This new web development framework will utilise .NET Core 1.0, which is a newly built version of the .NET framework, but with a significant difference: it is cross-platform. .NET Core is the open source implementation of the Common Language Infraestructre (CLI) and it consists of CoreFX and CoreCLR. Put simply: it is a new version of the runtime environment and a new implementa-tion of the core libraries (the famous System.* DLLs), ported to the different operating systems.

(C) Quadion 2016. All rights reserved.