The version 16(codenamed ‘Fiber’) which was announced Sep/2017, improved SSR(rewrite of server renderer) and added the support of custom DOM prop and fragment. Also, the render method has been updated to return multiple elements.

Having the similarity as AngularJS, Vue.js can be an attractive alternative for AngularJS users.

This is some how persuasive having the consideration of:

The migration to Angular is not that easy.

Knowing the official support for AngularJS will end.

Evan You, the creator, talked about the similarity with AngularJS.

I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight without all the extra concepts involved? I was also curious as to how its internal implementation worked. I started this experiment just trying to replicate this minimal feature set, like declarative data binding. That was basically how Vue started.

The popular VSCode from MS, also started to support debugging functionality of Vue.js.

These changes makes attractive atmosphere for Vue.js more and more.

Prospectives

The powerful CLI tool vue-cli, which let configure dev environment, will release a new version soon.

On v3.0, the new targeted build option will be added. It’ll allow create easily with the three(App, Lib and Web Componet — and planned to add more w/community collaboration) targets. Also will have the ‘zero configuration’ support.

The current latest of the core is 2.5.x. Next minor release(v2.6), will support native ESM import, improved async error handling, iterator on ‘v-for’ directive and more.

Support of IE will be dropped starting the next version of 2.6(2.6-next or 3.0), having evergreen browser supports only.

Vue 3 is not going to be one of those “big change releases” — the main difference will be that Vue 3 only targets modern “evergreen” browsers (i.e. IE11 & below are out). ‐ Hashnode: AMA with Vue.js Team

Angular Labs

Angular Labs is the idea announced from the ‘AngularMix’ conference on Oct/2017. The main goal is to provide having a clear and balanced communication with the previous releases, about new features and research.

From this, we can infer that the upgrade to Angular doesn’t mean a simple ‘upgrade’ for AngularJS users.

This isn’t just on compatibility issue of Angular with previous 1.x version only. There’s also new learning curves, TypeScript.

Long time ago, the core team promised on supporting multiple languages, but it didn’t happened. This is critical for those can’t give up their comfortable way on developing application(ex. those whom using CoffeeScript, etc.).

Until when the support of AngularJS will be continued?

The new coming minor release v1.7, will be held before the July/2018. After that, starting from the July 1st, v1.2.x and v1.7.x will be enter a Long Term Support period for 3 years.

Web Components and Polymer

2017 was a ‘big impressive’ for Web Components, because the support of browser was expanded.

ESM is supported on all modern browser, so technically the lack support of browsers has been removed!

The recent and 2017 changes

Polymer

With the release of v2.0(May/2017), has been improved the interoperability with other library/framework. Also removed the restriction on using Polymer.dom for DOM handling and ShadyDOM(the ShadowDOM shim) has been splitted as stand alone polyfill.

The way on defining elements via factory method, changed to use more on standard way by ES6 class syntax and custom elements.

Polymer v3.0

The new library called ‘lit-html’(still experimental)will be used on creating custom element. The element created will be called ‘lit-element’.

lit-html was announced on Polymer Summit(2017), which focuses on DOM rendering implementing it by ES6 Tagged Template Literals. Similar as React’s JSX, but it doesn’t require build process, because is standard.

Which one choose?

TypeScript(superset of JavaScript), ReasonML(OCaml) and PureScript(Haskell) approaches as new programming languages and Flow as a tool. This are illustrated by how describes themselves.

- TypeScript: TypeScript is a superset of JavaScript that compiles to clean JavaScript output.- Flow: Flow is a static typechecker for JavaScript.- ReasonML: Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems- PureScript: A strongly-typed language that compiles to Javascript, written in and inspired by Haskell

Take a look on simple example below. The code throws an error, but it’s not shown until runtime.

function square(n) {return n * n;}

square("oops");

As being superset of JavaScript, TypeScript has same syntax we already know. Just adding data types on it, can make to detect errors during compile time.

function square(n: number): number { ... }

Flow, can be done without defining types. Everything can be inferred.

This characteristic provide the adoption of type check without code changes and cost.