JavaScript front-end frameworks, TypeScript skills in demand in 2017

What's hot in software in 2017? In JavaScript front-end frameworks, its TypeScript and componentized front-end web app development, says Progress expert.

JavaScript, TypeScript and component-oriented front-end web app development skills are in demand in 2017, according to Burke Holland, Progress developer advocate. Most new front-end development will be done in component-oriented JavaScript frameworks like React and AngularJS.

At Progress, an application development tool and services company, Holland spends most of his time working with JavaScript front-end developers. In his daily work with developers, he sees "a heavy trend in JavaScript and web development toward componentizing the way we build applications." 

In this Q&A, Holland talks about component-oriented web app development and the pros, cons and best uses of JavaScript and TypeScript and the JavaScript front-end frameworks, React and Angular. He also fills us in on the up-and-coming front-end web development technologies, Web Components and Polymer. 

What are the differences between the JavaScript front-end frameworks, React and Angular?

Burke Holland: The two most popular JavaScript frameworks, React and Angular, appeal to different environments. React is lightweight and is found mostly in consumer-facing applications like Netflix, Facebook and Instagram. Most often, Angular is the enterprise choice, due largely to its comprehensive nature and roots in the programming language, TypeScript. TypeScript appeals to enterprise developers who require a very structured code base for creation and maintenance of applications.

Will the new, open source JavaScript library, Polymer, catch on with front-end web developers this year?

Burke Holland, director of developer relations, ProgressBurke Holland

Holland: Unfortunately, the Web Components standard is not quite ready to be used across browsers. Polymer, which is backed by Google, will help developers using Web Components to build apps by polyfilling places where Web Components are not fully supported. Web Components [a browser standard for creating components] puts HTML in the native component model playbook. We do not see Web Components [via Polymer] or the native component model being a current trend for 2017. We want it to be, because once there is a common component model for all developers, it is so much easier.

Why is using a native component model desirable in JavaScript front-end development?

Holland: Currently, let's say you find a grid over here or a drop-down list over here, a calendar over here. All these things will work together if they're all created with the same native component model. Now, developers are creating things from jQuery and then React and then Angular. So, you have to sort of pick a side in order to use any of those things, and then you still don't know whether or not they're going to work together. This is the current state of affairs as we kick off 2017.

Why is usage of the TypeScript open source language increasing with developers who use JavaScript and JavaScript front-end frameworks?
 
Holland: TypeScript provides a structured language on top of JavaScript. It makes JavaScript acceptable to a lot of developers who are classically trained in C#, Java, C++ and other structured languages. It makes JavaScript accessible to them because they were not about to ditch decades worth of programming knowledge to use a language that was created in 10 days that has little structure -- which is JavaScript.

Would you say that TypeScript is the gateway to increased usage of component-oriented web development?

Holland: Yes and no. TypeScript brings all the well-known, legacy principles to JavaScript. That includes inheritance, interfaces, types and structures and more. TypeScript opens the door to, literally, millions of developers who did not find it accessible before. These are developers who are already accustomed to componentizing their software so they will expect to do it on the web as well.

JavaScript yields results almost instantly. It's fast, easy to write and it runs virtually everywhere.
Burke Hollanddirector of developer relations, Progress

However, React has pushed the traditional JavaScript community toward a component model as well. Due to the popularity of React and the rise of TypeScript, both traditional JavaScript developers and those developers coming from structured languages are converging on component-oriented web development.

Will TypeScript open the door to wider usage of other JavaScript technologies?

Holland: Because of TypeScript, we may begin to see enterprises adopting NodeJS and writing their middle-tier services in NodeJS, so that they can have even more features and more flexibility with front-end applications which are already JavaScript.

Why do you think JavaScript usage is growing?
 
Holland: One reason is that it is so accessible, so easy to write. One of the things about structured programming languages is that they are discouraging to people that are just getting started, because there are so many constraints in the language itself as that is how typed systems work. They are literally a system of constraints. You spend more energy fighting the language than you do actually building applications.

JavaScript yields results almost instantly. It's fast, easy to write and it runs virtually everywhere. It runs in the browser. It runs on the server with node. It runs on mobile devices with NativeScript. It runs on every operating system. That fact alone makes JavaScript too good to at least consider for every project.

What do you see people complaining about in JavaScript front-end frameworks and development?
 
Holland: Really, a lot of the complaints against JavaScript have trickled off with the new iteration (ES6). JavaScript is not just a scripting language for the web. It's become so much more than that and the ES6 standard has fixed so many of the classic gripes that developers had with the language.

The complaining is still mostly around the fact that JavaScript is asynchronous by nature. That means you have to write a lot of tests as there is no compiler to check errors for you. Of course, you should be writing all those tests anyway, but the compiler gives you a false feeling of confidence that your code is going to work. JavaScript offers no such comfort.

What are some best practices for developers using TypeScript?
 
Holland: If you are working with TypeScript, use the Visual Studio code IDE. Also, if you're learning and/or using TypeScript, you might as well start to learn Angular as well. Angular is written in TypeScript. Be sure to check out solutions like NativeScript because NativeScript is also built on TypeScript. You can use Angular inside of NativeScript.

So, learn TypeScript and Angular, and you can easily build web and native mobile applications, all using the same language. That's really what developers want. We want to learn something once and not have to relearn things every 12 months. It's exhausting. Then again, we don't want to be limited by the fact that we're experts in one specific domain. That's very frustrating.

Next Steps

JavaScript reaches beyond front-end to native mobile app development

Explore the parent-child relationship of JavaScript and Java

How JavaScript front-end framework, AngularJS, streamlines development

Dig Deeper on Development tools for continuous software delivery