Microsoft takes the wraps off TypeScript, a superset of JavaScript

Microsoft takes the wraps off TypeScript, a superset of JavaScript

Summary: Microsoft is launching a preview of a new programming language known as TypeScript, which aims to make JavaScript development scale beyond the client.

SHARE:

As of today, we now know more about the formerly secret Microsoft JavaScript effort upon which Technical Fellow and father of C# Anders Hejlsberg has been working.

typescriptlogo

On October 1, Microsoft took the wraps off TypeScript, a new programming language that is aimed at making JavaScript development scale beyond the client.

Microsoft has made available to those interested via its CodePlex site a preview of the TypeScript bits; the TypeScript language specification; and the source code for the TypeScript compiler. TypeScript is available under an Apache 2.0 open-source license. In addition to the new TypeScript language and compiler, Microsoft also plans to make available a TypeScript for Visual Studio 2012 plug-in, providing JavaScript developers with Visual Studio features like code navigation, refactoring, static error messages and IntelliSense.

A Microsoft Channel 9 video of Hejlsberg discussing TypeScript is available on Microsoft's Web site:

Soma Somasegar, Corporate Vice President of Microsoft' Developer Division, outlined the problem space that Microsoft believes it can solve with TypeScript in an October 1 blog post:

"With HTML5, the standards web platform has become significantly more compelling for delivering rich user experiences. At the same time, the reach of JavaScript has continued to expand, going beyond the browser to include native device apps (e.g. Windows Store apps for Windows 8), applications in the cloud (e.g., node.js running on Windows Azure), and more. With these developments, we’re starting to see applications of unprecedented size written with JavaScript, despite the fact that creating large-scale JavaScript applications is hard. TypeScript makes it easier."

Microsoft is building the TypeScript "superset" of JavaScript to provide the "syntactic sugar" needed to build large applications and support large teams, Somasegar blogged. TypeScript will provide better JavaScript tooling to users writing client-side apps or server/cloud-side ones, Somasegar said. The kinds of tools that typically have been available only for statically-typed languages will be available for JavaScript via TypeScript, he said.

I got a couple of tips about Hejlsberg & Co.'s JavaScript effort leading up to today's announcement. One of them posited that that Microsoft's new JavaScript project (which this person said was codenamed "Strada" internally -- a name upon which Microsoft officials wouldn't comment) -- was yet another example of Microsoft's good old "embrace and extend" philosophy. (Update: Looks like the codename for TypeScript was, indeed, Strada. Thanks, Felix9!)

Hejlsberg and the others working on TypeScript disagreed with that characterization. Microsoft is building TypeScript so that JavaScript code already developed can easily be brought into the TypeScript world because, as Somasegar claimed on his blog, "all JavaScript code is already TypeScript code."

Microsoft's official site for TypeScript is http://www.typescriptlang.org/.

What are your initial thoughts on what the Softies are doing, any of you developer-readers out there?

Update: In spite of the Somasegar quote above regarding the Windows Store -- if you still were unsure whether you can build Windows Store apps for Windows 8 and Windows RT using TypeScript, the answer is yes.

Topics: Software Development, Microsoft

About

Mary Jo has covered the tech industry for 30 years for a variety of publications and Web sites, and is a frequent guest on radio, TV and podcasts, speaking about all things Microsoft-related. She is the author of Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008).

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

88 comments
Log in or register to join the discussion
  • Oh no, not again...

    "Embrace and extend" is the same thing as "all JavaScript code is already TypeScript code."

    JavaScript might work in a TypeScript environment, but TypeScript will not work in a JavaScript environment. It's embrace and extend all over again. Just when I thought Microsoft had finally turned a corner and would be focusing on only open standards, they pull this out.

    One can only hope that developers have learned their lesson by now and will ignore the new TypeScript silo.
    bran.e.murray
    • Wrong...

      Bran,

      You are wrong, think of this as CoffeeScript, it compiles to native Javascript code. So it is completely compliant with all existing standards.
      Emalamisura
      • +1

        Yes, this is a complement to the existing standards. This gives muscle to JavaScript to compete with other DLR languages in addition to CLR ones.
        Ram U
        • I like Google Dart better

          Instead of trying to revive the dead Javascript horse, we should start fresh w/ a real programming language.
          LBiege
          • It's ok if Google doesn't follow open standards?

            ??
            kingkong88@...
          • RIGHT!!!!!!!!!!!!

            A new elegant object oriented language in replacement... A Real programming language... This is What we need...

            Java Script is a nightmare!!!
            EricDeBerg
          • End your JS nightmare. This is quite a useful tool for coders.

            This is quite a useful tool for coders. It addresses a lot of issues with JS. Explore and you just might agree!
            PlusOrMinus
      • sadly right

        embrace = can use all JavaScript libraries
        extend = new ways to write the same code
        extinguish = to change code without forking in a way which cannot be amended automatically, you have to use the typescript interface

        Result: You can only contribute to the code via the typescript interface.
        ArneBab
    • Embrace and extend only works with closed source

      Without being side tracked into whether or not closed source is evil, blah blah blah, your attempt at FUD is countered with 1 quote:
      "TypeScript is available under an Apache 2.0 open-source license."
      toddbottom3
    • No you must be thinking of googles DART. The now dead google

      attempt to embrace and extend with proprietary language just a couple years ago.
      Johnny Vegas
    • TypeScript and JavaScript

      Hey Bran,

      This is Jonathan from the TypeScript team.

      The intent of TypeScript is to improve the experience of writing application-scale JavaScript. The emphasis really is on JavaScript from beginning to end. Because TypeScript compiles to efficient JavaScript, there's little that hinders you from interoperating with pure JavaScript.

      If you're interested, check out the codeplex site for the source:
      http://typescript.codeplex.com/

      A good place for some more info:
      http://blogs.technet.com/b/port25/archive/2012/10/01/typescript-an-open-and-interoperable-language.aspx

      Thanks,

      Jonathan
      JonathanTurner
      • Thanks, Jonathan!

        I was concerned that this was another way to "extend" meaning non-standards JavaScript, but I appreciate your clarifications on the matter. :)

        It would have been terrible to see all the work Microsoft is doing for promoting HTML5 compliance get tossed out.
        GoodThings2Life
        • "non–standards JavaScript"?

          "non–standards JavaScript"? That's tautology—there is no JavaScript standard. There is ECMAScript (ECMA-262) and a bunch of W3C DOM standards, with which JavaScript (i.e. Mozilla's implementation of ECMAScript for browsers) may be compliant, but it doesn't have its own standard.
          Fred Fredrickson
          • Hello Mr Pedantic

            Yes ECMAScript is the standard but no one (except for the terminally pedantic) talk about it. Everyone refers to it as JavaScript as this is what ECMAScript was based upon.
            It's an example of a particular brand name being used as a generic term, like hoover for vacuum cleaners in the UK or Kleenex for tissues in the US.
            mog0
      • Thanks Jonathan

        that is very helpful.
        Ram U
      • Will there be a VS 2010 plugin?

        Sounds great, and I'm looking forward to life with JS being easier. However I don't think my company is going to run out and buy VS 2012 when they just put in a purchase order for 2010 (don't ask)! Is there going to be a plugin for 2010 as well?
        dan.austin2@...
        • Gonna start building some cutting edge W7

          apps. Or maybe WP7? :-)
          Johnny Vegas
        • VS2010 Extension

          There is a .vsix that plumbs into both VS 2010 and VS 2012. Please also remember it is open source project! As in the source is there for all to use and abuse..........
          PlusOrMinus
      • to Jonathan

        If it compiles to plain JavaScript, then my fears are allayed. But I was concerned when I saw the word "superset."
        bran.e.murray
        • why the concern?

          superset means all javascript syntax is typescript syntax so you bring all your javascript knowledge and use javascript as you always have but this time you get some additional goodies. these additional goodies have their own syntax is almost the same as the proposed ecmascript 6 standard.

          this is different than coffescript which doesn't use javascript syntax at all.
          MySchizoBuddy