Anders Hejlsberg: Introducing TypeScript

Download this episode

Download Video

Download captions

Download Captions

Description

TypeScript is a programming language that makes it easier to write cross-platform, application scale, JavaScript that runs in any browser or in any host.  Microsoft Technical Fellow Anders Hejlsberg explains how TypeScript, which is a typed superset of JavaScript that compiles to idiomatic (normal) JavaScript, can dramatically improve your productivity by enabling rich tooling experiences, all while maintaining your existing code and continuing to use the same JavaScript libraries you already love.

The TypeScript language specification is available under Open Web Foundation and the compiler implementation is available as Open Source.

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • Scott Koon

      I'll go on record as saying this is almost the dumbest idea ever. We already have a strongly typed language that can compile to idiomatic JavaScript. It's called C#. Or Java. Or Lisp. Or C++.

      I know MS is working on a better VM for JavaScript. I know they are working on making the JS tooling in Visual Studio better. Why are they waiting time with this language? Is Anders just bored at MS?

    • Ekus

      @Scott Koon no need to be rude. As much as I'd love to wake up one day and see js replaced with something/anything in all browsers, I can't deny its popularity. MS already tried with VB script in IE, and it didn't catch on despite massive market share. JS is surprisingly resilient - it won't even accept its official name - ECMAScript.
      Creating new "standards" that are incompatible with each other would be actually much worse. JS can truly be today's interoperable assembly language, and different initiatives like coffe script, script# or the new TypeScript make a lot of sense.

    • Shawn

      IMO you're not making a valid comparison. MS has extended JS to include a type system and compiled it down to plain JS. The translation layer is much more coherent.

    • Derick Bailey

      +1 to what Scott Koon said. This is as bad, or worse, than Dart.

      It would seem that Anders hates languages that aren't statically typed. So I'm not surprised that he's trying to build something on top of JavaScript to make himself comfortable, after having been given the direction of building JavaScript tooling. I'm just very, very sad that Microsoft is still paying him to ruin languages for the sake of tools, when the rest of the world is embracing the ideas of dynamic languages and providing tooling for them - including Microsoft! Visual Studio 2012 has some of the best support for JavaScript I've seen in an IDE, JetBrains builds at least 2 or 3 IDEs that provide great support and tooling, and even Eclipse has good JavScript tooling and support. But Anders claims that you need static typing to get tooling, so he's given free rain to ruin the language and build tooling for that instead? It's really, really sad.

      The only thing he seems to have done right, in this case, is open source.

    • Lars Kemmann

      The question that Microsoft (looking at you, Anders Smiley) needs to be addressing is why we need yet another JS+x language that compiles down to JS.  I'm all for innovation, and I hope that we end up with multiple usable flavors of programming languages for HTMLvNext clients.  But languages need to show clear advantages if they're going to be adopted by the mainstream - so what sets this apart from CoffeeScript, Dart, etc.?

      Another way to phrase the question: is it your intention to make TypeScript into a mainstream language, or to help merge the best traits of TS, CS, etc. into a new standard language down the road?  In the former case, you'll need to explain why you're not effectively fighting against the CoffeeScript community (to impose the One Microsoft Way).  In the latter case, you'll need to explain why early adopters of TypeScript can take the risk that they'll need to do some significant rewriting down the road once "ECMATypedScript" is approved (or once these typing features make it into ECMAScript).

    • Lars Kemmann

      The only thing he seems to have done right, in this case, is open source.

      Here's hoping that this becomes the foundation for something truly positive and open (beyond the sense of source code, to collaborate with the larger web development community). Smiley

    • stacyDraper

      I like it. I'd have preferred type var rather than var: type

    • Sonicflare

      I hate javascript for not having a structure and its something that only mother could love Smiley

      Writing LBA in js is nightmare, the standard OOP is needed in js  (it was even submitted to ACMEscript committee)

    • exoteric

      I like this a lot. It's a very pragmatic approach. If you already know Javascript then you have little new to learn. Now I just want the tools. Smiley

    • contextfree`

      This looks pretty sweet - addressing not only some of my JS gripes but some of my C# gripes as well (structural typing! woo!)

    • Lars Kemmann

      @Derick Bailey,

      It would seem that Anders hates languages that aren't statically typed. ... I'm just very, very sad that Microsoft is still paying him to ruin languages for the sake of tools, when the rest of the world is embracing the ideas of dynamic languages and providing tooling for them - including Microsoft!

      I see why you're concerned (even though I personally like Anders's work).

      In the spirit of innovation, I like the idea of seeing where we can go by adding static typing.  Bear in mind that the most rugged code in the world (silicon-layer logic) is extremely statically typed.  There's a place for that, and in a world increasingly reliant on HTML for cross-platform client applications, we're going to see more and more apps requiring the level of ruggedness and static guarantees (as opposed to the Web 2.0 mantra of fail-fast iteration) that only these techniques can provide.

      So I'm going to wait and see.  But Microsoft definitely needs to acknowledge - up-front - the pioneers in this field (especially those outside of Redmond).

      The last enterprise I worked at was rapidly adopting CoffeeScript, for example; if MS starts to preach TypeScript as the One True Way then they're going to get some unexpected backlash.  If, instead, Anders acknowledges that this is an experiment and that there are going to be changes in the process of developing open standards (possibly even including the abandoning of TypeScript once it's served its purpose) then people are going to have a much warmer response.  It's harder to convince us that our investment won't be a wasted one, but ultimately it's the more honest path and would lead to a better outcome for everyone.

      Put another way, you (Anders) need to explain why this doesn't belong in DevLabs.

    • Shawn

      Would be great to see msft throw support behind Dart rather than creating another offshoot. I don't think CoffeeScript has any notion of types.

      Just because they are adding types doesn't mean they are removing dynamics.

    • Trillian

      I like it as well! I find the syntax and general feel of the language more appealing than CoffeeScript or Dart, and Visual Studio support is a big plus. Your live typescript to javascript playground is very impressive.

    • Brent

      From what I can tell, this goes much further than CoffeeScript and has the advantage of being supported by Visual Studio. Large JS projects can use static typing and the other features that TypeScript provides.

    • Seb

      This is great news.
      This looks like CoffeeScript on steroids.
      In the typed JS space, one project to mention is Opa http://opalang.org which has showed lots of progress recently

    • narucy

      I don't know why They didn't implements Command Language Specification on internet explorer. control DOM and event management with CLS langs looks nice.

    • wsdotnet

      umm...

      WTF, we already have a language.. c#. why reinvent the wheel.

       

    • Ravi

      play with Typescript :)
      http://www.typescriptlang.org/Playground/

    • Stilgar

      Obvious question: How is this better than Dart? / Why not create tooling for Dart?

      Also are there plans to implement C#-style async in TypeScript. It seems like it could be very useful.

    • narucy

      JavaScript is clearly future of programming (... service defining) language. We leaned accessor methods are useless. Json style object frying on the Internet, Json is best data representation object model. (Pretty fit NoSQL style data-store) Mr.Andres known it. We wanna compress source code lines.

    • tivadj

      Is it the 1st of April today? Why not to co-operate on the Dart language?

    • Kofi

      @Scott Koon: Sorry but how do I compile C# to Javascript

    • DeathBy​VisualStudio

      Putting on my favorite fall edition Microsoft Apologist Hat I'd have to say that this is Microsoft providing another option to JS and not trying to herald in "the one true scripting language". It's all about tools and options and not knowing what to trust will be around in a year or two. Wink

    • joeyw

      This is great.

      I'm a heavy CoffeeScript user and would definitely use this.  Couple of suggestions:

      • Line number correlation is important for debugging.  I don't remember what happened to the standard proposal - but some browsers would going to support this is JS.
      • Is there an option to minify?  Now that more information is known I would expect a minifyier could do a better job.
      • What about aync support?  Would like to see something like Iced CoffeeScript.
      • Is there an option to generate interface only .ts files for distributable libraries (essentially just the metadata)?

      Also, would love to see a hosted dev environment for this Wink

       

    • csharpguy

      This is GREAT!!!!!!

      Now I can start using javascript. I have tried JS before, didn't like the experience of waiting till runtime to fix common errors.

      I am a Windows developer, I don't care about open source or such nonsense. Just give me a well documented, productive development/debugging experience.

      The open source guys can stay with coffeescript, teascript, dart or whatever, Windows developers may not care about those (at least I don't).

    • Deactivated User

      Comment removed at user's request.

    • Rob

      To me, this is just great. And since it's open source, I might even try to to cram Lua metamethods into it. Oh the fun.

    • gmurray

      I like it a lot. Very good idea to keep it as aligned with ECMAScript6 as possible. One way of looking at a lot of the functionality is a ECMAScript6 stopgap.

      Some of the handling around "this" seems like it could use some cleanup, perhaps, but I guess that's a work in progress.

    • xdage

      I like it.  It seems like a nature evolution of JS, I'm looking forward to see them in future ECMAScript.

       

    • Viron​Papadopoulos

      Anders, seems to be using a Microsoft Surface Computer mounted on a docking station, and it runs Visual Studio!!! 

       

    • Ron

      This is fantastic. I would estimate that 70% of my large Javascript bugs are wrong data in the wrong variable kind of things. It is really not an issue with smaller Javascript apps, but once you get into a big enough app - and you work on code that was written maybe a month ago - these issues creep all the time.

    • joeyw

      As for the static vs dynamic typing - surely a langauge that allows for both is the best.

      Dynamic typing is really just runtime validation.  If you want to validate code before runtime you should be able to.  Anybody that has written a large scale JavaScript application will know about the problems that TypeScript is trying to solve.

    • JuanZamudio

      Love it

    • Duncanma

      @VironPapadopoulos: actually it looks like a Samsung Series 7, still cool, but not a Surface.

    • ypzgo

      lol ... happening again - MSFT creates yet another pseudo-open "extension" of language then let people use it and then whammo stop using it you'll have to switch to our platform.

      Fool me once, fool me twice...

      NO NO NO NO NO NO NO NO NO NO NO NO

    • Colin Jack

      @Derick
      "Visual Studio 2012 has some of the best support for JavaScript I've seen in an IDE, JetBrains builds at least 2 or 3 IDEs that provide great support and tooling, and even Eclipse has good JavScript tooling and support."

      I love JS and spend as much time as I can writing it but I do think even the best tools for it are not good enough. Even with a good test suite and nicely designed codebase I pine for good refactoring support (which I'm assuming TS will make easier, though maybe I'm wrong).

      Also for me it is not just about tooling and indeed I think the documentation aspect is almost more important. Key here is the fact that optional/structural typing make it possible to use type information where you think it's useful, I think that could lead to much more manageable codebased if used sensibly.

      Slight detour but you mention JetBrains and I do have to say I think some of their tooling is utterly awful. For me Rubymine is slow, terrible UI, buggiest software I've ever used...just awful. I love Resharper but I'd definitely not recommend Rubymine to even my worst enemy.

    • karlprosser

      @Lars Kemmann: while i'm very interested in this space (transcompilers to javascript) i'm underimpressed with typescript so far, but as for value/risk for early adopters. Since it produces relatively good and clean javascript, i think there is little risk, in that if typescript changes, or goes away you still have maintainable javascript to work with.

    • kenbrubaker

      So when are they porting WinJS to the browser?  Smiley

    • philjay

      it's cool, pretty easy and lightweight it seems. If they put decent tooling in, it might get used by People.

      Though when we're going down the js as an assemblylanguage road, I'd probably choose C# (e.g. Script#) or even cooler, F# (Websharper). or imagine being able to cross-compile your portable class libs down to js.. Smiley

      But what I'm also waiting for is for something Like Google Native Client as a (real) assembly on the web to take over, we can't be stuck with JS as the ONLY language forever.

    • John

      C# to JavaScript Cross-Compiler:
      http://sharpkit.net/

    • mamund

      the rash of "languages" that "compile down to JS" shows a trend; possibly based on a need, but this particular one seems like weak sauce.

      IMO, if the aim is to make devs more productive and less error-prone w/ JS, then let's take this in a whole new direction completely.  why are we still 'writing JS" w/ a few decorators? why not _draw_ our code or visualize it in entirely new ways that bypass the error-prone, confusing, and mundane parts of JS?

      if JS is so horrible, let's start thinking outside the box, eh?

    • contextfree`

      P.S. Now that you've created a nice anonymous structural typing feature here, please port it back to C#. It would come in handy for ViewModels, for example ... Smiley

    • Parmenio

      Very interesting. I like the strong type inference particulary. Still feels like scripting but with the advantages of static typing for tooling (if not performance). Nice lightweight type syntax too, unlike Closure. Be interesting to see how it measures up against Dart, but it's certainly more ambitious than CoffeScript.

    • robertsunds​trom

      Just got reminded about a blog post I read a week ago. It's a tip for those who rather prefer to write code in a .NET language like C#. All of the tools still compile down to JS. Not as elegant as TypeScript though.

      Read the post here http://tirania.org/blog/archive/2012/Sep-06.html

    • Eduardo

      Anyone knows what keyboard is Anders using?

    • AceHack

      I like it, especially all the inference.  Even though I don't like java script very much, this seems pretty nice.

    • Islamath

      JS is becoming not only WebApp lang but also a Desktop/Tab/Mobile (Win8/WP8) App lang!

      Where do we put TypeScript in the Dev Cycle?

      Do we really need a new Language After C# & JS?

    • Moemeka

      Thank you Mr. Hejlsberg, you and your team continue to build tools for those of us who don't believe in unnecessary complexity.  This language is the rational solution to the JavaScript problem.  It can be used in a web application interchangeably with javascript and offers all the important features of c# without creating some bizarre Frankenstein hybrid.

      This is common sense, and it only seems to come from your team these days.  Thank You!!

      PS - can you take over Windows Phone / Windows 8 development story please !!!!!

    • Sam

      This is absolutely great. What some of these commentators seem to have missed is that the problem with most JavaScript "alternatives" (such as Dart) is that they don't interoperate with existing JavaScript libraries. This is a huge problem when so much infrastructure already exists out there in the world written in JavaScript.

      This language fills a huge niche. There are *no* statically typed languages which are supersets of JavaScript currently. CoffeeScript is a great project, but it makes no attempt to introduce any kind of type system.

    • seanfitzg

      Very interesting news that I'd like to read more about and try out.  However, I just wonder whether the criticism from (say) @Derick Bailey and @Scott Koon is a little misplaced.  Surely Typescript is not so much something that will "ruin the language", but rather more of a development tool that's layered over Javascript, and even then only in the context of an IDE.  I think it's fairly clear that Javascript itself remains unaffected.

    • LOVEMOSSNOT

      Another leaky abstraction, why not? : )

      CLIENT=> TYPESCRIPT => JAVASCRIPT => JSON => C# SERVICE/BLL/DAL => SQL

      Let's keep adding layers to that cake.. hmm hmmm hmm
      smells like complexity + money

    • martijn

      Great talk. This looks very promising. Having worked with ScriptSharp and SharpKit I noticed C# sometimes getting in the way of interacting with real js. Can we debug and refactor TypeScript as well?

    • Scott Koon

      @Kofi

      You can use Script#
      http://channel9.msdn.com/Events/MIX/MIX11/HTM16

      or SharpKit
      http://sharpkit.net/

      And, once upon a time, you could use Volta. Although Volta was just a labs project.
      http://en.wikipedia.org/wiki/Microsoft_Live_Labs_Volta

      @seanfitzg - I wouldn't say it's going to ruin JavaScript. Some of the ideas are from the ES6 "Harmony" spec. e.g. classes, some of the modules stuff.
      But the interfaces, optional typing don't really add anything to the language.

    • fabioparra

      @martijn: maybe source maps is the way for debugging http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/

    • Marrickvill​ain

      Is this "embracing and extending" JavaScript?

    • Kastellanos Nikos

      Will there be a line directive like in C? (Probably in a form of comments) In combination with the right tools it would make debugging much easier.

      #line Directive (C/C++)
      http://msdn.microsoft.com/en-us/library/b5w2czay.aspx

      I think what fabioparra propose is similar.

    • DaveWill2

      Another leaky abstraction, why not? : )

      CLIENT=> TYPESCRIPT => JAVASCRIPT => JSON => C# SERVICE/BLL/DAL => SQL

      Let's keep adding layers to that cake.. hmm hmmm hmm
      smells like complexity + money

      TypeScript compiles to JavaScript.

      CLIENT=> JAVASCRIPT =>

       

    • Adam Anderly

      I have to disagree with most of the negative sentiments here. I've been very impressed with the developer tools Microsoft has put out in recent years (in tools like Visual Studio compared to say Eclipse). As such, I've always thought that Microsoft could expand Visual Studio's reach to include other languages and improve it for existing languages like javascript. They've done this with WebMatrix by adding PHP, node.js and even CoffeeScript support.

      I see this announcement for exactly what Anders said it is - a "development tool" to help write better, maintainable, application-scale javascript applications. It's not a new language per say, it's a superset (although not nearly much as CoffeeScript). Rather, it's another developer tool. Plus, being open source, I'm someone could even write a CoffeeScript extension to TypeScript to allow use of the shorter CoffeeScript syntax with the type features of TypeScript if you'd rather use the CoffeeScript syntax. Who knows, MS might already be working on this). Personally, I love seeing the latest news coming out of Scott Gu's org as it's open-source, relevant and less dogmatic.

      I view TypeScript as another developer tool to help write better javascript at "development time" and prevent more bugs from making it to production...and I believe that is exactly the way it is intended to be used. Neither Dart, nor CoffeeScript make that claim. CoffeeScript's aim for instance, is to strip away the syntax of javascript and essentially allow you to write short-hand javascript, while providing some new idioms (classes, etc.) that don't natively exist.

      Coming from many a c-style language background, I'm fine with curly braces and semi-colons and welcome the TypeScript efforts as having a more practical application to developers vs. CoffeeScript in that it won't simply help me write "less" code, but write "better" code.

      I think the point here is that javascript (like it or not) has become the assembly language of the web and we can either work with it directly or use more expressive languages supersets on top of it depending on our preference. I see TypeScript as a welcome addition.

      Anders and team, keep up the great work!

    • GreatAnubis

      @Ekus:

      Is JS popular because it's so awesome or is it popular just because it's the only game in town? No other Brower supported vbscript except IE which guaranteed it would only be used in an intranet environment. 

    • BorekB

      Best news for JavaScript developers in a long time. For example, TypeScript's jQuery code completion is so much better than what VS2012 offers.

      Looking forward to using it! Thanks team.

    • Ilya

      JS for human beings? Yes, please!
      Thanks you, MS for doing this stuff. I hope, that MVC guys would add support for TS soon, so that, I wouldn't need to endure pain of plain JS ever again.
      Thanks again!

    • good good study

      like it

    • myeaney

      It blows my mind that we are still investing time and energy in tools to make JS "not exist".  The common ubiquity of the language (good or bad) is the whole point. You can literally run pure javascript anywhere (cscript, spidermonky/v8, etc.) - the whole browser thing is just the tip of the iceberg.

      On second thought - never mind. There is a *ton* of money to be made by selling VS2012 licenses, and if the masses ask for it, then there is no reason for MS to not make it. Remember, you don't have to use it, although they'll probably bake it into every project template they can without even asking.

      Anders, et al - **please** think about the long-term implications of this. MS has failed the developer community many times on VS-specific things in the past...take this (potentially) good idea to ECMA, and drive the standard. Good tooling will follow.

    • Daniel Bryars

      Very impressive. This is superb.

    • pbz2

      Guys, TypeScript is like SASS/LESS for JavaScript. If you don't see the value in those tools, you'll probably not see the value in TS.

    • gamoniac

      Excellent work, Anders and team at Microsoft.  This is going to revolutionalize JS much as JQuery has IMO.  Finally, we have some structure to aid in writing good JavaScript, as long as it does not take away JS' dynamic language property.

      I am not sure why some folks compare this to C#... do they have any clue what TrueScript is before commenting?  This tool is awesome!

      I am not sure about the other JS compilers, but as for the comparison of TrueScript to DART...well, DART's goal is to replace JS.  TS does not aim to do that; it does not have a "VM" like DART and it only compiles to JavaScript. 

      I can't wait to get my hands on this.

      Edit: Microosft, to make TypeScript truly awesome, please include a plug-in for VS2010.  That will definitely increase the number of people adopting the tool.

    • WinInsider

      JavaScript = Assembler
      TypeScript/Dart = C
      ???? = C++
      ???? = C#

      Can we fast-forward, and get to C# type language (with .NET Framework set of libraries, and XAML for UI) for building "browser apps". On desktop we already have great developer story.  Kudos to Anders, Cwalina, Abrams, Gossman for making this happen.

      * "browser apps" that is an oxymoron

      Nevertheless, TypeScript does look more elegant; but then again, is hard to do worst then JavaScript.

      Anders, do not stop, keep going... No .NET/C# developer wants to program (think) in "JavaScript" in their lifetime.

    • aecea

      TypeScript will ease the path for the evolution of JS in the near future.

      Thank you!

    • Antonio Alexander Castro

      I like the idea of MS adopting standards that they did not invent. In this case, creating a superset for Javascript. In a way I think this is MS answer to DART. DART is google's implementation/answer to JS and Typescript is MS' answer. Since most companies will not support DART, Typescript might get adopted since in is a superset of JS and compiles down to JS. Being Open-sourced and having great tool support thru VS 2012, it might just be what MS needs.

    • Ben

      I'll admit I haven't watched the video but I did skim the PDF and examples and checked out the repo.

      What I saw looked great.

      80+% comments here are ignorant. I say this as a non-user of MS products (unless required for testing or something), and as someone who has programmed JS a long time. Since before jQuery existed and before AJAX was an acronym.

      I feel bad for some of the folks on this page because they aren't able to evaluate something on its merits. Good luck to you. The rest of us will be taking advantage of useful stuff hopefully far away from you.

    • test

      I download the mp3 file and when I run them in VLC I found a word "Saar Sandesh" in Hindi as cover image.

      Is this conver add from any of my files I have or it's come from your side.


    • rcollette

      @joeyw:First constructive post in a list of mostly uninformed whining.  The notion of async is interesting.    However, he did show the "meta" file you are seeking such as the ones for ECMAScript, jQuery, node.js, etc.  and also showed how the compiler can generate that for you as well.   Minification is a separate responsibility, but included in asp.net 4.5 as pluggable service.

    • jonathansam​pson

      I'm really impressed with what I see. I'm curious what the thinking was behind the pattern chosen for private members though - not making them private ultimately. There are patterns that can accomplish this, such as those that return a object literal from within a function body. This object literal can maintain references to members of the function body outside of the object long after execution.

      ​var myClass = function(){
          var private;
          return {
              setPrivate: function(x){ private = x; },
              getPrivate: function(){ return private; }    
          }    
      };
      
      var foo = new myClass();
      foo.setPrivate(10);
      console.log(foo.getPrivate());

      There's no way to access the private member without going through the methods provided in the returned object. It seems like this would have been (one possible) approach that would be more true to the intent.

      I'm sure you guys had a perfectly legitimate reason for not going with a pattern like this, and instead making the privately declared members publicly accessible (no sarcasm), so I'm curious what - if anything - I'm missing here.

    • BitCrazed

      @VironPapadopoulos: No, Anders is using a Samsung Series 7 slate like those handed out at //BUILD last September or available from MicrosoftStore.com:

      http://www.microsoftstore.com/store/msstore/pd/Samsung-Series-7-Slate-with-3G/productID.247107500/parentCategoryID.44066900/categoryID.54536100/list.true

    • chanmm

      Good idea to move forward.

    • liux0229

      This is truly awesome. I don't understand some of the negative comments above.

      • There are advantages to static typing (and in modern day static typing you tend to type less). Some of the extra complexities you take out from static typing in making a dynamic languages could simply reemerge in other places in your development process.
      • There is virtually no learning curve for the superset if you know JS and some basic OO. Being a framework there is always the risk that if you take a dependency the framework could go out of date someday - this is a more universal problem. The open source nature of the project could probably help here.
      • As already mentioned the advantage of TS compared to Script# is that it interoperates better with existing or new JS libraries. Providing wrappers could quickly go out of sync as the libararies evolve.
    • rcollette

      TS is awesome and the best part is that I believe I can be really productive with it with no more than a few hours of working with it. I can't say exactly why but it just seems to make sense, which is rare when it comes to new web technologies these days.
      Fantastic presentation on this as well. I can't remember the last time someone demo'd something like this and it did not feel rushed, choppy or incomplete.

      Point/Counter Point

      • Aims to sell MS tooling - Not really since it's command line open source. But their tooling does do it well.
      • Aims to replace JS with a proprietary language that locks you into MS tooling - Not really, in fact it generates straight JS that, from this video, appears rather tight and "manually" maintainable.
      • Creates a redundant language that competes with existing OO languages like C# - If you've used any other language to compile to JS, you know that there are all kinds of limitations on that language and the IDE doesn't warn you of those incompatibilities. TS avoids impedance mismatch. I would love to see C# in the browser. Heck, I know Silverlight/C# are far more productive than JS/HTML development. The reality is that the browser standards are only being solidified so hoping for a miracle doesn't help anyone.
      • Creates a redundant language that competes with existing compiled script languages like CoffeeScript - As others have pointed out CoffeeScript doesn't have the notion of types and frankly I find the syntax cryptic (could be just me). TypeScript is closer to the metal in my opinion. I don't see why we should be so dedicated to the first option on the block purely out of loyalty.  This isn't high school sports. Let's recognize an implemented innovation when we see it.
      • Bloats an existing language that is already perfect and deserves no further improvement - You know, you have a point. Enjoy the refactoring support you already love and your co-workers will love you for the self documenting code that you have left behind for them. I am sure you're a winner. Smiley

      I do recognize the effort that Dart has made and that is commendable but I have to say I did not "get it" the way I get TS simply by watching a 1 hour video. To me, this is super easy and at the same time resolves the issues causing .NET developers to loathe JS development. Together I can see this driving adoption in my company.

      I didn't agree with the association someone was making between a strongly typed script languages and architectural complexity but I understood the underlying pain. It takes a ton of time to do:

      UI=>JS=>Service=>BusinessObject=>DataAccessObject=>Stored Procedures

      Note I have not even included all the redundancies like validation nor design time for UI/OO/Data Modeling. I think MS was starting down the path with LightSwitch but then changed gears completely by end of lifeing Silverlight (though I am no fan of Entity Framework).  Perhaps TS combined with LightSwitch will start to reduce the cycle time for applications over the long haul (If there is such a thing for MS).

    • DiryBoy

      The PlayGround editor is impressive, is it also open source?

    • Sentient

      Absolutely Brilliant.

      I spent the last month on a project involving C++, C# and JS. The only thing that didn't went as smooth as I liked was the JS. Mainly due the fact that I cannot keep a whole API in my head. (The 8000 lines Anders is referring too.) As a matter of fact I was using a for me new API, three.js and it was just tedious. Opening files manually, looking for members all over the code etc... And then three.js is a nice structured library.

      So I am off to download this as I've got work to do.

    • PaulS

      I have a really dumb question: Instead of people fixing JavaScript’s flaws by building on top of its shaky foundation, why don’t we all work to fix JavaScript itself?

      Is it that hard to get productive work out of the ECMAScript committee? Given all the work on CofeeScript, Dart, and now TypeScript (and many projects pointed out by others), it seems that the major problems with fixing JavaScript are political, not technical.

      -Paul

    • nekaniic

      ts = js done right

      thanks Anders and the team!

    • VijayVizag

      wow ! thank you Anders and team !

      after a decade of working with c# and asp, I felt out of place with js during 2009-2010;

      jquery in 2010 and typescript now, saved me.

    • VijayVizag

      Actually I was expecting something like this to come out since mary-jo mentioned on zdnet a while ago that anders and team are working on something similar to this

    • Lee_Dale

      I think what alot of people complaining about are missing is the fact that most developers who are stuck within the Microsoft development stack and don't really look beyond it just open up Visual Studio and use whatever Microsoft puts in front of them.

      I don't think this is created to fix or replace Javascript but to allow developers to work on Javascript code and be A) more productive and B) safer in the use of the language i.e. not getting themselves in trouble with dynamically typed languages.

      We forget that there are many many developers out there that just want to build LOB applications the quickest and safest way possible.

      I like the fact that it compiles down to standard Javascript and if developers adopt TypeScript then they are not stuck with alot of code that Microsoft might abandon several years down the line (*cough* Silverlight *cough*).

      Anyway I think it looks cool to me, I personally prefer statically typed languages and adding type safety (at compiler level not runtime) makes me happier.  I work mainly with back end enterprise applications and I see alot of rubbish javascript, I'm not saying Typescript is the answer to this but it might help a little.

      Anyway I don't think this is necessary a bad thing just another way of getting things done within the MS ecosystem.

    • Kevin

      @leeappdaleco​m, I think the best approach for this is to wait for a few years..

      - got burn so bad on silverlight :(

    • zoidberg

      I installed the VS Plugin and now get an error starting VS2012:

      Exception has been thrown by the target of an invocation. Anyone has an idea?

    • RazoRek

      This i great! I've been waiting for it ever since I started using JavaScript for my mobile development. Since JS today is used to build a whole applicationion with HTML5, the devs need to have a greater control over their code. TypeScript allows exactly that, thank you Anders and the team!

    • RazoRek

      What I also love about it is that it's so easy to add TypeScript to your code and it's even easier to remove it - just compile and it's gone. The compiled JS looks very clean and clear. It would be nice if the compiler could optionally include comments in the resulting JS file from the source TS file.

    • pjdv

      @RazoRek: I agree.

       

    • pjdv

      Thanks Anders, this is exactly what JavaScript-developers have been waiting for: structure!

    • FZ14

      How soon we can expect ports of other libraries like jQuery?

      Looks like all that need to to do is describe objects by using interfaces, so it can be done using some code generation or something. Will be there any utils that will help with this process?

    • Qandil

      I guess this is cool, but also Scott Koon got a point there.

    • hansol

      This is the most exciting new tech since C# and .NET came out! JavaScript is near useless for bigger projects, and with this it has suddenly transformed into a beauty.

    • zoidberg

      i agree with you hansol. nice avatar by the way Wink

    • sreesiv

      When I first read the post, and the post that led me to this page, me too was of the opinion that creating a new lang spec for this was sort of an overkill... But after gaining more insights into this and watching the video, my perception actually changed a lot. This is very beautiful. Using Java (GWT) or C# (Script#) and compiling out JS instead of the bytecode OR IL is a nice idea and you get the benefits of using a strongly typed language. But they (the lang we are writing in and the JS output) feel a lot more disjoint, and JS only programmers would not feel so comfortable with the options. And there is a definite loss of fidelity due to the translations and paradigm shift involved. Also as Anders Hejlsberg rightly pointed, the programmers will always be an arms lenght distance away from the latest developments in the Javascript language or libraries or specs or the community...

      This is actually a very good solution and infact is the right direction for enabling not just web programmers but app devs especially the ones writing Modern Win8 apps using HTML5 and Javascript, to write large JS apps.

    • Sebastian

      I think this is good thing. I do a lot of JS and I feel the pain of not having a type system. This is very welcome. Maybe this will encourage ECMA script to bring back optional typing into the dialogue.

      I think it is brilliant how Typescript enhances JS without requiring you to port everything into some other language. The ability to just copy existing JS code and use it is excellent.

      It would be nice if Microsoft would invest some time in building tooling for Linux / Mac in the way of plug-ins for popular editors (e.g. Sublime text), that would encourage a developers like me to try Typescript in real projects.

    • Marcel

      @Sebastian: look here http://blogs.msdn.com/b/interoperability/archive/2012/10/01/sublime-text-vi-emacs-typescript-enabled.aspx

    • frozengnu

      Most developers would prefer a real fix. Like Dart. But the big boys wont play nice so the pragmatic approach, the tight fit, and the derived tooling is clever.

      Godt tænkt, Anders Wink   

    • Edwin Yip

      It's a good idea that TypeScript is being designed as a superset of JavaScript, since that'll let JS programmers transit to it easier, as compared to other compile-to-js languages such as CoffeeScript (actually, in terms of taste and simplification, I like CoffeeScript more, you know, I like Python :).

      I'm glad that I've started my LIVEditor project (live html/css/js code editor for the web with a Firebug-like UI, at http://liveditor.com, in beta soon), look, how flourishing the web development industry is!

    • avijassra

      nice ...

    • Surjit Singh Walia

      It's great concept and I will try to use the tools.

      I thinks their is a need for a correction In this video related to private variables in javascript.

      As stated in this video that their is not notion of private variable in JavaScript, but I we can define private variable and I have used in may of my web projects. Please see below link for more information:
      http://www.crockford.com/javascript/private.html.

      Google for more info on private variables and function.

      The code generated by tools in in accurate.

      Surjit Singh Walia
      PMP, MCSD, MCPD, MCAD, OCA, MCTS, PSD

    • Eljay451

      In TypeScript, I can take my existing JavaScript code, cut-n-paste it into TypeScript source file (foo.ts)... and it works.  TypeScript is a superset of JavaScript.

      In C#, I can take my existing JavaScript code, cut-n-paste it into a C# source file (foo.cs)... and the compiler barfs.  C# is not a superset of JavaScript.

      TypeScript is to JavaScript as C++ is to C.

      And TypeScript introduces some draft ES6 facilities (subject to change!) into modern browsers now.  Which is not re-inventing the wheel at all, but very forward looking.

    • Lex Lavnikov

      Just ported TypeScript RayTracer source code to Silverlight 5.

      Raw C# performance is 12x better than Chakra IE10 and Chrome V8.
      Dynamic languages are still very, very slow :(

    • Mads​Torgersen

      @FZ14: You wish for jQuery to be ported to TypeScript.

      I just want to point out that you don't actually need to port existing libraries to TS in order to get a strongly typed experience consuming them. TS let's you write "declare files" that describe a typed view of existing code, so that you can get IntelliSense and type checking against them when you consume them from TS.

      The TypeScript site contains several examples of this on the "Run it" tab. For instance, the "JQuery Parallax Starfield" sample contains a "jquery.d.ts" file that does this for jQuery. Check it out!

      Our hope is that authors of JS libraries will also author .d.ts files for them. If you write your library in TypeScript, the TypeScript compiler can also generate a .d.ts file for it, along with the JS.

      As a matter of fact I wouldn't be surprised if some JS (not TS) editors would start picking up .d.ts files so that they can offer better tool support even for vanilla JavaScript programs that consume those libraries Smiley.

    • rcollette

      @LexLavnikov - What's the performance on Mac Chrome?   Silverlight is(was) great for intranet development where you have control over the browser platform.  Not so much for the general internet.   Instead of having to constantly update Silverlight for N browsers, they can focus on a standards based development platform and do it one time.   Perhaps my feelings that Silverlight development is quicker will start to diminish when using TS.   UI behaviors are still majorly kludgy and incohesive compared to Silverlight.   JS/TS seems light years ahead of HTML/DOM at this point.

    • evanlarsen

      sweet.. This is really cool stuff.  Compile time checks and easier refactoring in javascript.. the world must be coming to an end soon.

    • Rugby

      TypeScript very similar to Traceur Compiler, JavaScript++ or JSX. Why is Microsoft creating a new language instead of joining one of existing projects?

    • Eric Elliott

      A lot of these features are already planned for ES6. Why is this TypeScript instead of an EcmaScript 6 -> oldskool ES compiler?

    • fanbaby

      A couple of questions for Andres:

      1) When did you decide open sourcing your work is a 'good thing'? Did your views on open source changed in time?

      2) What's your personal take on the fact that Microsoft claims that Linux infringes on many of its patents?

      Thanks, fanbaby

    • zbend

      Does someone know what machine he is using? it looks like a docked 15''+ tablet, I want one

    • CSharpenter

      "if JS is so horrible, let's start thinking outside the box, eh?"

      @mamund: Well Said ...

      Kill the spider, do not clean its web everyday ...

      But then again, even this tool generated so much negative feedback. Not that it can't, but imagine if Microsoft even tries to find a CURE for javascript's problem (as in a total replacement solution) ... wow I can't imagine the feedback of opensource/JS AFICIONADOs would be like MS is attacking Opensource and the rest of the usual accusations like Expressionless (burn the MS witch maybe or sentences including the famous M$). I think we are in a phase of a Javascript political-evolution ... which in the end (hopefully soon) will lead to your "thinking outside the box".

    • Ben Kotvis

      Anyone know why there isn't automatic compilation on build of these TS files? It seems like that would make a lot of sense. Or at lease have a "Run Custom Tool" option in the context menu. I mean there is a lot of generated code from the .net stack and I almost never need to use command line to compile.

      Otherwise this is pretty amazing.

    • Charles

      @zbend: Samsung Series 7 tablet.
      C

    • Maaz

      This is good ... it's a clear step towards cloud based computing where everything is done via internet and remote clouds and making apps that do exactly that

    • P Schlup

      I agree with @stacyDraper. Let's keep "type var" instead of the hideous "var: type".

    • Jason Nelson

      Anders, I absolutely admire ALL of your work. You know I still use Delphi EVERY DAY in addition to C# (Unity on Mono). Thankyou for telling people what they're too chicken to tell themselves... Javascript is a TERRIBLE tool... and it needs to be replaced with something with actual real structure. Good choice on deciding to compile down to JS. That means that it can be compiled on the backend and drive a rich UI on the front. Language syntax is the most important attribute of a programming tool. And everything you've ever built is beyond brilliant. I sincerely hope you're remembered in the history books alongside the greatest of scientists.

    • rcarrillopa​dron

      I just watched the video and love the syntax. No more weired stuff for writting real Javascript.

    • niu tech

      Hi folks! I am pleased to announce the new way of running TypeScripts - just like native JavaScript, without hassle using tsc. It's called TypeScript Compile and it automatically compiles TS into JS on the fly. Please check it out and fork it on GitHub: https://github.com/niutech/typescript-compile

    • Vlad

      Andres,

      I've been using your stuff since Turbo C 1.5, and hugely admire your contribution to the field, but yet another Script#/Dart/GWT? C'mon..

      What you made is Script# without having to create declarations for 3rd party JS libraries first. Otherwise, it is no different: we'd still write program in one language and IDE, and debug in another.

      I spent 2 years writing large app using Script#, WebKit browsers, WebSQL and Sencha Touch, and learned that while these tools make creation of portable RIA enterprise apps possible, they do not make it practical. The whole ecosystem still has a very distinct 1.0 feel - all of this almost 20 years after it has become clear that browser is just another operating system and could use a decent programming language and a tool set.

      The only real solution to the horrible "JS is the only game in town" situation would be if MS, Apple and Google got together all deciding that there will be another language that both WebKit and IE would support, the real language, like C# or Java, strongly typed, with classes, etc. Toss the coin to choose whether it is going to be Java or C# - we won't care, but TypeScript is just yet another too-little-too-late type of incremental improvement that are so typical for the glacier pace of innovation in browser-based RIA. For a moment we hoped that Silverlight would be the one, but then MS didn't find the charisma to lead the industry to wide, cross-platform adoption of it.
      MS, Apple and Google appear to pay only lip service to the idea of portable RIA, while it's pretty clear that portable, easy-to-write RIA will cannibalize each company's proprietary platform so there is not real incentive for them to innovate: just another case of incumbents protecting their turf instead of innovating. When I first saw JS back in 1990's, I found the language so mediocre that I gave it no more than 2 years of life. More than 15 years later JS is still with us and sucks only just a little bit less, but you guys are now legitimizing terrible idea of JS, instead of building an interpreter of a first-class programming language into all browsers.

      This whole state of affairs is very sad, especially that Andres now adds credibility to the patently mediocre idea. I think it's a really poor place for Andres to spend his huge political capital. We need a real programming language in all browsers, and now it looks like there is one less thought leader who could take the industry there.

    • ceilidhboy

      @Scott Koon: "We already have a strongly typed language that can compile to idiomatic JavaScript. It's called C#. Or Java. Or Lisp. Or C++."

      Sorry, but do you even watch the presentation? Within the first two minutes, Anders addresses this point and in fact gives it as one of the reasons for creating TypeScript in the first place.

    • Peter

      You can do typing in ECMAScript already, the browser just dont support it. So what's the point to screw around with the syntax. The 'compiler' does nothing than removing the types...

    • muhammad hussain

      @Ekus, exactly you are right. But one thing is sure in this industry is that you can't rely on a single tool as we have to accept sometimes the dynamical phenomenon.
      But I think Javascript and Jquery is enough till 2020.

    • LuciferSam

      I was ready to write this off immediately because I assumed it would be similar to Dart.

      Just finished watching the whole presentation and was pleasantly surprised. I can't wait to start using this!

    • Nestor Sanchez

      I only hopes Anders is no abandoning innovations in statically-typed vm-based C#, which is the equilibrium between js and C++.

    • Lex Lavnikov

      @rcollette, I don't have a Mac to test it there.

      But about Windows 8, IE10 & Chrome have similar (very slow) performance of JavaScript (using Raytracer demo from TypeScript playground). Using ThreadPool I was able to improve performance of Silverlight 5 C# code being x15 times faster to 29x times faster than JavaScript.

      On my machine, Raytracer with 1000x1000 canvas works about 29 seconds in IE10 Desktop. On Chrome it takes probably even longer, because Chrome displays "Script is frozen" window.

      Silverlight 5 code takes 1.8 seconds to render, in 4 parallel threads - just 1 second.

      I am still not convinced, that JavaScript is the future for mobile devices, being such a CPU hungry beast, burning out the batteries so effectively.

      Don't we all want to recharge our phones once per week like 15 years ago? :)

    • Bart

      This looks really nice. I'll be trying to use it for a small project in the next few weeks. Thank you.

    • napoleonss

      Nice superset so far.

    • danielearwi​cker

      Lots of critics saying "why not just use an existing language"? One thing people seem to be missing about TS is that it already has a BETTER type system than most previous mainstream high-level languages.

      It's structural instead of nominal. In C# and Java you can have an interface IFoo with method Bar, and a class C that has method Bar with exactly the right signature, but C doesn't implement IFoo unless you edit the definition of C accordingly.

      Whereas in TS, C already implements IFoo merely because it has the right structure.

      This is already an excellent improvement, but when they add generics to TS it's going to be a big  improvement on C#. An interface could be used to specify a constraint on a generic parameter, but it doesn't mean that a generic argument has to nominally implement the interface. It just has to have the right structure.

       

    • Demigor

      @danielearwicker: Don't interfaces exist to validate their proper signature in implementations?

      What's a point in occasional implementation of an interface by matching it's signature? Did I actually want to implement the interface, or I just get a "lucky" strike? What happen if I rename/refactor my method? Will somebody tell me that I break an interface?

    • Huangxf

      Actually, the programmers whose major are object oriented languages like C++, Java etc. do not like Javascript very much. Because it's too hard to write it in OO way and it's also very hard to debug. But they have to use Javascript because it's widely spread in Web applications and almost become a standard in front side programming.
      If Microsoft could provide a language which like this video told. I think it's good. More OO style, more easy to control and debug. I don't doubt Microsoft could make this happen. But I really need more time to confirm this new language could become popular in this industry.
      By the way, Google also released a new language called Dart. It also aim to replace Javacript.
      What is going to happen finally? We'll see

    • acsteitz

      I am convinced that some people would complain if you gave them a certified check (i.e. it won't bounce) for $1 million instead of giving them cash because that means they have to go to the bank to cash it.  I'm not saying there is anything wrong with dart or coffeescript but I have never bothered using them because I don't want to HAVE TO learn yet another syntax.  With TypeScript you can use POJ (plain ole javascript) and the environment will just point out potential gotchas.  As you feel the need and comfort level, you can introduce TypeScript specific constructs which create less error prone javascript than manually creating it.  In other words, it makes it harder to shoot yourself in the foot but if you insist (i.e. type straight javascript with hidden gotchas), it will let you.  I'll take that any day over having to learn a whole new syntax (dart and coffeescript.)  BTW, I am NOT an M$ "fan."  I think the DOJ should have ripped them to shreds for the monopolistic practices they used in the 90s to get the market dominance they have.  However, I am also not stubborn enough to say something is bad or a waste of resources just because it comes from Microsoft.

    • Greg Cowin

      My Top 10 reasons why TypeScript will be widely adopted: http://www.pursuitofgreatdesign.com/2012/10/top-10-reasons-why-typescript-will-be.html

    • Xiaoth

      @jonathansampson: I completely agree and I was going to post the same comment. Javascript does have a notion of private properties by using closures, and your sample demonstrated it. The fact that Anders even said "there is no notion of private properties" really made me *facepalm* because he's leading this whole thing as a supposed language guru.

      Also, C# "buries" property getters and setters in the CLR by hiding actual methods named get_MyProperty() and set_MyProperty(..); theoretically, this could be used to support private field access via public access "properties" on ECMAScript 3 clients.

      Perhaps since this project is open sourced you can bring this up in the discussion forum and/or introduce an evil fork of righteousness. Tongue Out

    • Xiaoth

      THANK YOU for not using "that" for "this"! I hate the semantic of "that"! "_this" (underscore suggests a scoped fieldname) is sooo much more appropriate.

    • Benedek​Farkas

      The example starting at 17:00 says:

      Imagine that you have a 200 lines object in the return statement. If you mistype or make an error, JS tells you nothing about it, so you have to stare at the 200 lines of code to find the error. TS will help you find error.

      Yeah, but how? When in the example "add" is mistyped to "addx", the whole return statement (only 3 lines in this case) was underlined indicating an error, not just the specific line containing an error.

      Anyway, TS looks great, I'll definitely try it!

    • cordelllawr​ence

      I was going to add my comments to this list, but I believe that other have sufficiently addressed the concerns and questions raised here. 

      I find it interesting that persons are lashing out at Anders and how MS are are spending their time and pointing out that there are efforts like Dart and CoffeeScript that are suitable ... well, if you read Mary Joe's article, you'd realize that this isn't really Anders' project (http://www.zdnet.com/who-built-microsoft-typescript-and-why-7000005206/) and also, these guys are language designers, day in day out the think about creating better languages. 

      The way I see it is this ... Even Languages/tools like Dart, CoffeeScript and Script# were created because their creators saw deficiencies in the JavaScript language ans sought out to help make developers more productive and their application less error prone. 

      Statically typing and type inferencing  allow for design time verification have clear advantages ... all developers know this. It seems that TypeScript set out to help bring these advantages to developers *today8 while still doing a number of other things correctly ...

      1. Compiling to existing JavaScript - No new runtime needed, plays well with everything that exists today.

      2. They stuck to proposed EcmaScript recommendations so they're sticking to recommendations of a *standard*. You get the best of both worlds .. existing runtime support with future/better language capability* while also ensuring that the typescript code you write today may in fact become the javaScript of tomorrow.

      3. They've Open Sourced the thing .. use it, change it, contribute ... whatever you like. 

      4. They've added awesome tooling support to existing tools like VS that compiles on the fly in the background for users

      The Dart language is not ratified as a standard , but it does compile to JavaScript. It's also pretty cool that on the server, there is a DART specific VM. Dart also seems to vary lexically from javaScript though, which may not be that enticing to existing javaScript devs.

      I'm really happy with what I see so far from TypeScrip. I'm going to continue to use it, get to team to use it and benefit as much as we can the additional productivity that we get from the tools.

    • John

      Invest in Silverlight!

    • gcowin

      My top 10 reasons why TypeScript will be widely adopted: http://www.pursuitofgreatdesign.com/2012/10/top-10-reasons-why-typescript-will-be.html

    • ntheile

      I created this boilerplate app template on github to make it easy to get started with TypeScript https://github.com/ntheile/TypeScript-Backbone-Require-Boilerplate

    • Olandese

      It would be nice to be able to download the sources of the examples, like the battle app

    • Olandese

      Already found it:

      http://www.typescriptlang.org/Samples/#Warship

      Great job!

    • perceval78

      @DaveWill2:Another opportunity should be

      TypeScript VStudio

      Javascript   Node.js

      JSON  Mongodb

      Pc Linux Max Tablet Iphone

       

    • jdkleban

      Amazing!  Really amazing!

      This implementation is so well executed, I have a lot of confidence in Microsoft for this over Google.  The mental barrier to entry to this is so much lower than, say, Google Closure Compiler with this strong tool integration, attention to real-world concerns such as jQuery, etc interoperability, and a better syntax for type annotations.  Well done.

      And my mind is totally blown by the slickness of the Playground code editor.

    • BKiener

      Awesome! This is what I'm waiting for since the last 3 years. For me it brings JavaScript program-ing to a new level. Thanks to MS.

    • HeroNote
    • RoyDu

      @Derick Bailey:you are right...MS still do themself standard far away from others.It's too bad.

       

    • RoyDu

      +1 to what Scott Koon said. This is as bad, or worse, than Dart.

      It would seem that Anders hates languages that aren't statically typed. So I'm not surprised that he's trying to build something on top of JavaScript to make himself comfortable, after having been given the direction of building JavaScript tooling. I'm just very, very sad that Microsoft is still paying him to ruin languages for the sake of tools, when the rest of the world is embracing the ideas of dynamic languages and providing tooling for them - including Microsoft! Visual Studio 2012 has some of the best support for JavaScript I've seen in an IDE, JetBrains builds at least 2 or 3 IDEs that provide great support and tooling, and even Eclipse has good JavScript tooling and support. But Anders claims that you need static typing to get tooling, so he's given free rain to ruin the language and build tooling for that instead? It's really, really sad.

      The only thing he seems to have done right, in this case, is open source.

      the right thing is just what other support it.but the ts have to compile in windows platform.

    • RoyDu

      This is GREAT!!!!!!

      Now I can start using javascript. I have tried JS before, didn't like the experience of waiting till runtime to fix common errors.

      I am a Windows developer, I don't care about open source or such nonsense. Just give me a well documented, productive development/debugging experience.

      The open source guys can stay with coffeescript, teascript, dart or whatever, Windows developers may not care about those (at least I don't).

      if not open source,who will give a better similar tools.

       

    • RoyDu

      Another leaky abstraction, why not? : )

      CLIENT=> TYPESCRIPT => JAVASCRIPT => JSON => C# SERVICE/BLL/DAL => SQL

      Let's keep adding layers to that cake.. hmm hmmm hmm
      smells like complexity + money

      you are right...

       

    • sequoiar

      static type checking is useful to find coding typo. But, in mean time, we are always going to use JavaScript's dynamic type mechanism.

    • Claude Berube

      Looks very promising. Some king of CoffeeScript++ bringing real value to scripting not just hype. TypeScript is already compatible with with Node and NoSQL some of the major trends in the industry. Thumbs up on this one.

    • KVigor

      Anders is brilliant!  I love it.  I'll definitely use TypeScript.  That being said... all you other negative cry-babies, TypeScript "HELPS" you. Unless you desire to spend more time debugging your awfully structured JS.  I'd bet most of you cry-babies are frontend developers and DO NOT appreciate type safety because you're too ignorant to understand how it can make your life easier.

      Cheers TypeScript and thank you MS!

    • Mansyn

      JS is only difficult to debug if you refuse to use anything but IE. Chrome is amazing at it.

      Hey DART and CoffeeScript are really on to something, lets do our version of them and pretend like we invented it.

    • RobTay

      I've been doing a lot of work with javascript recently and it's really hard when you have a lot of code. Javascript needs tools like this if it's to go beyond being a web site helper. TypeScript is C++ to javascript's C. There are many similarities. Early C++ compliers were preprocessors that output C. The main problem with CoffeeScript and the like, is that you write CoffeeScript but debug javascript. The big step is being able to debug in the language you wrote the application in and that's when it moves into mainstream development. TypeScript isn't there yet but I bet it won't be long.

      If you like coding in C then great but if all we had was C then building today's apps would be a monumental task. I for one think this is just the first step on the road and getting the likes of Microsoft involved must be good.

    • JackNova

      Good stuff, very interesting.

    • RAF

      I'm mad as Hell and I'm sick of it all!

      @Microsoft, @Sun, @Oracle, @IBM, @AnyOtherITCompany & @SuperTalentedHighIQHobbyProgrammers out there:

      STOP IT!
      NOW!
      Don't throw another WhatEverScript on the market!

      All your products: Dart, CoffeScript, Typescript, BlahBlahScript.... based-on/compiled-to/replaced by JavaScript is only a workaround and an avocation for everyone!

      The main problems are:

      1. the big holes in JavaScript: JS cannot solve the problems of our time, because it was invented in the 90's for the problems of 90's (childhood of WWW)!

      2. Missing cooperation between big companies, because every one of them wants to dominate the market with his own browser!

      3. Missing "a clear word of action" neither by the US nor by EU governments, to put the Browser-Inventors under pressure. So all browsers would (at least in the US or EU, or even both) be compatible in scripting-engine.

      4. The "holy grale" of backward-compatibillity! Why could not they just also redesign the JS-language and engine with the new HTML-5 specifications? All at once.

      Sometimes something must die, so a new and better one can born.

      Regards!

    • filoteanuad​rian

      Great product! Good work team!

      Unfortunately the quality level of the comments for this presentation makes me very sad.

      Some guys at Microsoft are trying to make your life easier and to give you the needed free time to go home to your family and play with your kids instead of spending hours at work to write JS code and you are not grateful – worst, you despite them.

      No problem my dears, spend your life in front of PC and ignore your child and family. Have a long life like prisoners in a small room writing tone of code lines!!!

      I will use any tool that will give me 1 free hour to live my life.

    • jmcfet

      This is a brilliant tool especially if you are from the OO, type safe world as many of us are. Now these is nothing wrong with pure JS as we have produced some impressive products with it. My latest project was working on a video player where the UI is entirely in pure JS. This effort was made much easier with use of the Module Pattern, RequireJS and Underscore. The point is that JS is a language that was developed in 1994 in 10 days. Good grief Smalltalk took 9 years!  I am sure Typescript development effort is measured in person years. JS  languished for years but in the last 2-3 we seen a remarkable steps forward in the tooling. This is what is really helping as so much time is wasted in JS with things like typos.

      Anders is one of the great minds in this business and I applaud his efforts here. I really like the integration with Visual Studio including Express. It appears that Anders will evolve this product along industry standards and that is critical.

      Like everything this is not a solution for all but for one who has been in the trenches with JS I embrace a tool like this that can help in so many ways.

      I also feel is too bad that people cannot share opinions in a professional manner as I truely believe they do not realize that it diminishes the point they are trying to make.

       

    • Niner943181
      This is cool but honestly it seems like a copy of Google's DART.. Why can't (if this is Open Source anyway) Microsoft get together with Google on stuff like this (I ask this of both sides). It would do the community a whole heck of a lot of good if both companies are indeed committed to web standards.

    Conversation locked

    This conversation has been locked by the site admins. No new comments can be made.