It’s not bad news as Google is rigidly sticking to the semantic versioning process. By upgrading the TypeScript dependency from v1.8 to v2.2, it forces a potentially breaking change to Angular applications – hence the major number version increase. For most apps, it’ll just be a recompile, but that’s not guaranteed.
Since then, the name has just been ‘Angular’ – no ‘.js’. Version number ‘3’ was skipped due to that already having been used on Angular Router and the development team wanted to unify the version number across all official libraries.
React.js from Facebook is one of the best and most popular HTML5 frameworks. It is being adopted by several banks as their strategic UI platform (at least for the foreseeable future – which is 2-3 years in HTML frameworks). Due to the way it uses a virtual Domain Object Model (DOM) to compare with and update against, it doesn't play very well with jQuery – which doesn’t give a stuff as to how you’re controlling your page, it’s going to update the DOM directly, so there. Hence, React can throw a strop when you do things behind its back.
It’s very easy to end up with a dependency on jQuery without realising as it’s used as the foundation to many third-party widget/CSS frameworks, such as Bootstrap. So don’t use it yourself unless you really need to and visit youmightnotneedjquery.com first. This elegant site shows how and what jQuery does and how it is possible to keep its functionality without using it directly.
TypeScript and Flow
Facebook’s Flow is slightly different; it just deals with the strong typing aspect. By attaching data types to objects and variables, you will save yourself from null exceptions and invalid assignments. It only works on files that are specified, so it can be adopted piecemeal. It works extremely well with React, requiring a BabelJS plugin. It’s not a compiler as such; unlike TypeScript, it doesn’t support new language features like Interfaces, it’s just a type checker so the Babel plugin just removes the types.
Both of these approaches are going to become more popular in financial enterprises – perhaps even mandatory as they greatly facilitate refactoring, code handover, confidence in the codebase and readability… things that banks crave.
The FinJS conference in London in December 2016 was attended by the great and the good in web technologies and finance. A number of interesting points were made:
- Node.js hasn’t made it into production in many, if any, financial services institutions yet.
- Incumbent technologies have a long tail and can take a long time to replace.
- No one feels as though they have the testing and tool set right.
Atom, Electron and Muon
This sounds and works well up to a point, but financial institutions are unhappy with the security model – or lack thereof – in Electron. The Atom development team ripped out a lot of the security features that the banking industry loved in order to make development easier.