Microsoft augments JavaScript for large-scale development

In an extension to JavaScript, Microsoft provides static typing, classes and modularization

Equipping JavaScript to build more complex applications, Microsoft has augmented JavaScript with a set of advanced development capabilities typically found in more mature programming languages, such as C++ and Java. These new capabilities, packaged as a JavaScript superset called TypeScript, offers static typing, classes and modularization.

"Over the last five years we've increasingly heard from customers that writing application-scale JavaScript is just too hard," said Anders Hejlsberg, Microsoft chief architect for Microsoft's C# language. TypeScript should pave the way for new ways to aid JavaScript code development, providing the basis for code prediction, superior debugging, refactoring and easier navigation through the thickets of large sets of program code, he said.

Overall, Microsoft engineers spent over two years developing this functionality, Hejlsberg said. The company released the specification of TypeScript, as well as an open source compiler on the CodePlex repository. The company also developed a TypeScript plug-in for Visual Studio.

TypeScript is not an entirely new language, but rather a superset of JavaScript, Hejlsberg said. Developers code in JavaScript, using the TypeScript parts as needed. They then run the code through the TypeScript compiler, which emits standard JavaScript.

"All JavaScript code is TypeScript code and all JavaScript libraries just work with TypeScript," said Hejlsberg. "TypeScript compiler emits idiomatic JavaScript. The resulting code runs on any browser."

TypeScript was designed to accommodate an increasing number of developers who are interested in using JavaScript to build large-scale Web applications to run in a browser, rather than on the desktop.

"JavaScript was created as a scripting language. It [wasn't designed] to structure medium- to large-scale code bases such as classes or modules, Hejlsberg said. "JavaScript is an entirely dynamic language that has no static typing, and static typing is really the thing that powers today's rich IDEs."

Static typing requires that developers assign a specific data type to each variable they create. JavaScript itself is a dynamically typed language, in which variables do not have to be assigned a data type beforehand, simplifying coding for the less experienced.

With static typing, however, the compiler can provide more detailed reports on coding errors, as well better predict what the program might need, because it can determine the type of data a variable should be assigned. In Visual Studio, for instance, TypeScript will allow IntelliSense to anticipate what coders need when writing JavaScript, to a similar degree that IntelliSense does now with C# and other statically typed languages.

StaticScript's type annotation is flexible as well. Developers can add type annotations only where they want it, to their own code, or to specific libraries.

In addition to static typing, TypeScript also offers modularity and the ability to do class declarations, both following the specifications now being settled on by the developers of the next version of ECMAScript, the standard reference upon which JavaScript is based.

Classes will allow developers to reuse existing functionality in the program. Modularity can help them organize large codebases, as well as make it easy to swap in updates to one part of the code with little impact to other parts of the program.

Microsoft is not the first company to tackle the problem of making JavaScript more robust. Google has also confronted the shortcomings of JavaScript for complex application development, most notably by developing a new language to handle more complex Web applications, called Dart.

TypeScript could be advantageous over Dart in that it does not require developers to learn an entirely new language. Rather they can continue to use JavaScript and just learn the specific rules around the TypeScript language, Hejlsberg said.

Another potential advantage to TypeScript is that no new technology is needed on browsers, given that the finished TypeScript code is compiled into regular JavaScript, which then can be run on any browser. TypeScript carries no additional performance lag on runtime, due to the fact that the TypeScript additions "compile away," said Hejlsberg.

The TypeScript specification is available, at no cost, under the Open Web Foundation OWFa 1.0 Specification Agreement, and Microsoft is seeking community consultation for further development. The compiler is licensed under the Apache 2.0 license.

Joab Jackson covers enterprise software and general technology breaking news for The IDG News Service. Follow Joab on Twitter at @Joab_Jackson. Joab's e-mail address is Joab_Jackson@idg.com

Join the Good Gear Guide newsletter!

Error: Please check your email address.

Our Back to Business guide highlights the best products for you to boost your productivity at home, on the road, at the office, or in the classroom.

Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.

Joab Jackson

IDG News Service
Show Comments

Essentials

Microsoft L5V-00027 Sculpt Ergonomic Keyboard Desktop

Learn more >

Lexar® JumpDrive® S57 USB 3.0 flash drive

Learn more >

Mobile

Lexar® JumpDrive® S45 USB 3.0 flash drive 

Learn more >

Exec

Lexar® Professional 1800x microSDHC™/microSDXC™ UHS-II cards 

Learn more >

Audio-Technica ATH-ANC70 Noise Cancelling Headphones

Learn more >

HD Pan/Tilt Wi-Fi Camera with Night Vision NC450

Learn more >

Lexar® JumpDrive® C20c USB Type-C flash drive 

Learn more >

Budget

Back To Business Guide

Click for more ›

Most Popular Reviews

Latest News Articles

Resources

PCW Evaluation Team

Michael Hargreaves

Windows 10 for Business / Dell XPS 13

I’d happily recommend this touchscreen laptop and Windows 10 as a great way to get serious work done at a desk or on the road.

Aysha Strobbe

Windows 10 / HP Spectre x360

Ultimately, I think the Windows 10 environment is excellent for me as it caters for so many different uses. The inclusion of the Xbox app is also great for when you need some downtime too!

Mark Escubio

Windows 10 / Lenovo Yoga 910

For me, the Xbox Play Anywhere is a great new feature as it allows you to play your current Xbox games with higher resolutions and better graphics without forking out extra cash for another copy. Although available titles are still scarce, but I’m sure it will grow in time.

Kathy Cassidy

STYLISTIC Q702

First impression on unpacking the Q702 test unit was the solid feel and clean, minimalist styling.

Anthony Grifoni

STYLISTIC Q572

For work use, Microsoft Word and Excel programs pre-installed on the device are adequate for preparing short documents.

Featured Content

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?