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 newsletter!

Error: Please check your email address.
Rocket to Success - Your 10 Tips for Smarter ERP System Selection
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

Most Popular Reviews

Latest Articles

Resources

PCW Evaluation Team

Sarah Ieroianni

Brother QL-820NWB Professional Label Printer

The print quality also does not disappoint, it’s clear, bold, doesn’t smudge and the text is perfectly sized.

Ratchada Dunn

Sharp PN-40TC1 Huddle Board

The Huddle Board’s built in program; Sharp Touch Viewing software allows us to easily manipulate and edit our documents (jpegs and PDFs) all at the same time on the dashboard.

George Khoury

Sharp PN-40TC1 Huddle Board

The biggest perks for me would be that it comes with easy to use and comprehensive programs that make the collaboration process a whole lot more intuitive and organic

David Coyle

Brother PocketJet PJ-773 A4 Portable Thermal Printer

I rate the printer as a 5 out of 5 stars as it has been able to fit seamlessly into my busy and mobile lifestyle.

Kurt Hegetschweiler

Brother PocketJet PJ-773 A4 Portable Thermal Printer

It’s perfect for mobile workers. Just take it out — it’s small enough to sit anywhere — turn it on, load a sheet of paper, and start printing.

Matthew Stivala

HP OfficeJet 250 Mobile Printer

The HP OfficeJet 250 Mobile Printer is a great device that fits perfectly into my fast paced and mobile lifestyle. My first impression of the printer itself was how incredibly compact and sleek the device was.

Featured Content

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?