How TypeScript Will Reshape the Enterprise Developer

By Rob Lauer, senior manager of developer relations at Progress, for CodeGuru

JavaScript is ubiquitous. From JavaScript's birth in the browser, to a rebirth on the server, to powering native mobile app development and IoT devices, it is becoming increasingly difficult to argue against the importance of JavaScript. As the most recent Stack Overflow survey attests, the popularity of JavaScript among rank-and-file developers has held steady for four years running. In fact, two of the other "most popular technologies" in the poll are based on JavaScript (Angular and Node).

However, one place in which JavaScript has only just started to make a dent is the "enterprise." Today, your typical enterprise developer is focused on the .NET or Java stacks. This is because they are typically dealing with large ERP systems that expose APIs most easily consumable by these languages and frameworks.

What makes us think anything is going to change in 2017? Why would enterprise developers start to abandon their language of choice for an unfamiliar and <gasp> weakly typed alternative?

The answer may be TypeScript.

What Is TypeScript?

TypeScript is a superset of JavaScript. This is a fancy way of saying that TypeScript extends JavaScript and provides static typing, classes, and interfaces. One of the primary benefits of TypeScript is the ability for modern IDEs to provide an environment for features like autocompletion (a.k.a. IntelliSense) for JavaScript-based projects. This significantly increases developer productivity by reducing syntax mistakes and runtime code errors.

TypeScript is an open source project developed and maintained by Microsoft. Adoption of TypeScript is taking off dramatically:

Total downloads for TypeScript on npm have increased from approximately 50K in January 2015 to over 2.4 million in December 2016
Figure 1: Total downloads for TypeScript on npm have increased from approximately 50K in January 2015 to over 2.4 million in December 2016

Although there is no denying TypeScript's popularity, it is fair to question the place TypeScript has in the enterprise. How could TypeScript/JavaScript start to displace C# or Java in the workplace? Let's look at some advantages of adopting JavaScript and the reasons the enterprise may need to move.

Non-Traditional Device Access

JavaScript is already available for non-traditional "computers" such as Arduino and the Raspberry Pi. Internet of Things (IoT) devices such as sensors, home automation tools, and fitness trackers already provide JavaScript APIs. We are seeing an explosion in non-desktop devices, and the lowest common denominator for programmatic access tends to be JavaScript.

What about mobile? For years now, developers have been focused on Objective-C and/or Java for creating native iOS and Android apps. Today, though, "native JavaScript" frameworks like NativeScript exist to let developers re-use these skills.

If the developer can re-use his or her skills moving from platform to platform, or device to device, doesn't it make sense to standardize on one language?

Client and Server Development

No other language than JavaScript better addresses both client-side and server-side development. JavaScript is most widely thought of as a scripting language for Web browsers. Even though that 90's-era view of JavaScript is not inaccurate, in the last decade we have seen a dramatic expansion of JavaScript as a legitimate language on the server as well. Node.js came about in 2009 as the preeminent server-side runtime for JavaScript. This opened up numerous doors for server-side Web and networking-focused development. With the advent of Node's long term support (LTS) plan, Node is poised to continue its meteoric rise in the enterprise in 2017.

Even large ERP vendors such as Salesforce recognize this trend and offer a JavaScript API for both client- and server-side development. Amazon's AWS, Microsoft Azure, SAP, and PeopleSoft are just a handful of vendors that offer a JavaScript interface for their systems.

Tooling and Language Considerations

TypeScript will never succeed in the enterprise unless developers only have to change a minimum amount of tooling. The fact that TypeScript has been included in Visual Studio since 2012 is one small step. A plugin exists for using TypeScript in Eclipse. Tool re-use is becoming a non-issue.

What about more fundamental roadblocks like language constructs? C# and Java developers have both gotten used to generics, for instance. In the JavaScript world, there is no such thing as a generic—until TypeScript came along. TypeScript adds support for modern language constructs such as generics, arrow functions, modules, classes, and interfaces. It helps to make JavaScript more like the object-oriented language you've been using all these years and less like the dynamic scripting language you used to think of.

TypeScript Equals Enterprise JavaScript

When you adopt TypeScript (and, by virtue, adopt JavaScript), you are opening your enterprise to countless possibilities and future-proofing your business. Looking ahead to the new breed of engineers—younger developers who are in general more familiar with modern JavaScript development—that will invade the enterprise, the reliance on today's skillset will diminish for new, greenfield application development. Make no mistake; C# and Java aren't going anywhere—there is plenty of legacy app maintenance that will be needed. However, just as .NET and Java replaced COBOL and Fortran, JavaScript may be on its way to replacing today's stalwarts.

About the Author

Rob Lauer is Senior Manager of Developer Relations at Progress and has a passion for mobile app development and the open web. In his other life, he raises two kids, plays Ultimate Frisbee, and (for better or worse) is an avid Wisconsin Badger fan. Rob is @RobLauer on Twitter.



Related Articles

Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: May 16, 2017 Developers who use popular JavaScript frameworks like React to build user interfaces often have to create components to build the interface. Building components is time consuming, has integration and maintenance risks, and worst of all, distracts them from the task at hand — actually building the app. Watch this webinar to see how to quickly and easily add more than 115 professionally supported and tested components from Sencha to your React apps. In this …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date