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

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

Joab Jackson

IDG News Service

Comments

Comments are now closed.

Latest News Articles

Most Popular Articles

Follow Us

GGG Evaluation Team

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.

Steph Mundell

LIFEBOOK UH574

The Fujitsu LifeBook UH574 allowed for great mobility without being obnoxiously heavy or clunky. Its twelve hours of battery life did not disappoint.

Andrew Mitsi

STYLISTIC Q702

The screen was particularly good. It is bright and visible from most angles, however heat is an issue, particularly around the Windows button on the front, and on the back where the battery housing is located.

Simon Harriott

STYLISTIC Q702

My first impression after unboxing the Q702 is that it is a nice looking unit. Styling is somewhat minimalist but very effective. The tablet part, once detached, has a nice weight, and no buttons or switches are located in awkward or intrusive positions.

Resources

Best Deals on GoodGearGuide

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?